WebGoat笔记九_跨站脚本攻击(Cross-Site Scripting (XSS))

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

WebGoat学习笔记九

—跨站脚本攻击(Cross-Site Scripting (XSS))

瞿靖东2015/11/10

版本号:WebGoat 5.4

1、使用XSS钓鱼(Phishing with XSS)

技术概念或主题(Concept / T opic T o T each)

在服务端对所有输入进行验证总是不错的做法。当用户输入非法HTTP响应时容易造成XSS。在XSS的帮助下,你可以实现钓鱼工具或向某些官方页面中增加内容。对于受害者来说很难发现该内容是否存在威胁。

技术原理(How It works )

HTML文档内容很容易篡改的,如果你有权限操作页面源代码。

总体目标(General Goals )

创建一个form,要求填写用户名和密码。将数据提交到http://localhost/WebGoat/catcher?PROPERTY=yes&user=catchedUserName&password=catched PasswordNam

操作方法(Solutions)

利用XSS可以在已存在的页面中进一步添加元素。该解决方案包括两部分,你需要结合起来使用:

受害人填写一个表格;

以读取脚本的形式,将收集到的信息发送给攻击者。

一个带用户名和密码输入框的表格如下:




This feature requires account login:



Enter Username:

Enter Password:




搜索这段代码,你就能看到页面中增加了一个表单。

现在你需要一段脚本:

这段代码会读取你在表单上输入的用户名和密码信息,将这些信息发送给捕获这些信息的WebGoat.

最后,就是要将这两段代码合并。最终需要输入的代码如下:




This feature requires account login:



Enter Username:

Enter Password:




需要注意,最终的代码必须进行js压缩(取消缩进)才能生效。

搜索这段代码,你会看到一个要求输入用户名密码的表单,输入用户名密码,点击登录,WebGoat会将你输入的信息捕获并反馈给你。

2、跨站脚本攻击(LAB: Cross Site Scripting)

技术概念或主题(Concept / T opic T o T each)

输入验证是一个很好的方法,尤其是验证那些以后将用做参数的操作系统命令、脚本和数据库查询的输入。尤为重要的是,这些内容将会永久的存放在那里。应当禁止用户创建消息内容。用户的信息被检索时,可能导致其他用户加载一个不良的网页或不良的内容。当一个未经验证的用户的输入作为一个HTTP响应时,XSS攻击也可能会发生。在一个反射式XSS攻击中,攻击者会利用攻击脚本精心制作一个URL并通过将其发送到其他网站、电子邮件、或其他方式骗取受害者点击它。

总体目标(General Goals )

在这个练习中,你将执行存储和反射XSS攻击,你还可以通过在web应用程序中调整代码来防护这种攻击。

Stage 1:存储型XSS ( Stage 1: Stored XSS )

执行存储型跨站脚本攻击;

以“Tom”身份登录网站,修改个人信息。验证用户“Jerry”会受到攻击。每个帐号的密码是用户明名字的小写(如:Tom的密码是tom).

相关文档
最新文档