XML Injection
查看accountID输入框:
当我们输入完6位accountID后,js会发起一个ajax请求:
http://hacker.qq.com:8080/webgoat/attack?Screen=3825&menu=400&from=ajax&accountID=836239 返回包内容为:
然后回调calback()函数
题目的意思是我们可以修改返回包的内容,但是我修改了n次总是没有成功。。。 所以只能通过修改页面代码来达到目的了,方法如下:
安全中心XML注入漏洞(from jima?s ppt)
JSON Injection
这个和上面的XML Injection一样,不过这次服务器返回的是Json串 {
\\\\\\ \\\
{\\\
{\\\ ] }
我们把600改成一个较小的值就可以了
同样是修改Callback函数内的返回值,req.responseText的值还是没修改成功,直接修改了card的值,方法如下
这个XML Injection和JSON Injection漏洞的做的有点牵强,应该要有用户提交数据,然后提交的数据被包装到一个Xml或者Json里面结果,而数据没有过滤就被包装,破坏了预期的Xml或这Json格式,导致页面显示不正常
Silent Transactions Attacks
这个案例里面我们点击”Confirm”之后,JS会校验余额是否足够然后给后台发送转账申请,,如图: 我们的余额是11987.09,而我们需要200000,怎么办呢?
我们跟踪Js到判断余额的地方,将我们的balanceValue修改得比我们的amount大一点就可以了~
另外一种方式就直接抓个包:
http://hacker.qq.com:8080/webgoat/attack?Screen=4075&menu=400&from=ajax&newAccount=1&amount=2000000&confirm=Transferring 修改Amount的值,发送,返回
The Transaction has Completed Successfully.
Dangerous Use of Eval
这个漏洞的威胁在于,回调函数使用了Eval(“返回包内容”),而返回包的内容用户是可以自定义的
点击” Purchase”我们发现会有弹出框,内容为我们填入的number和code,如果我们在number和code里面填入Js会怎样呢? 我们跟踪Purchase按钮的提交事件:
在purchase函数中我们没有发现alert(“”)的地方,继续寻找
终于在makeXHR函数中发现了Eval的踪影~
而我们一直寻找的alert就在这里~ http_request.responseText的内容:
\and access code \\\
了解原理后,我们尝试修改number值,插入js代码运行 如下,返回包中标记红色的就是number的内容
\and access code \\\我们尝试闭合语句,');alert('xss');('
这样子就可以插入任意的Js,来执行我们想要的操作了~
Insecure Client Storage
这个漏洞在于把信息(coupon code)存储到了客户端 查看coupon code的事件,找到验证code的js
在isValidCoupon中发现:
搜索coupons发现在coupon code 存储在Js文件顶部:
这样任何访问页面的用户就可以免费获得这些code了
【WebGoat笔记】之四 --- Cross-Site Scripting (XSS) 主要内容
保存,反射型Xss,CSRF及HttpOnly的特性 Phishing with XSS
LAB: Cross Site Scripting Stage 1: Stored XSS.
Stage 2: Block Stored XSS using Input Validation Stage 3: Stored XSS Revisited
Stage 4: Block Stored XSS using Output Encoding Stage 5: Reflected XSS. Stage 6: Block Reflected XSS. Stored XSS Attacks. Reflected XSS Attacks.
Cross Site Request Forgery (CSRF) CSRF Prompt By-Pass. CSRF Token By-Pass. HTTPOnly Test
Cross Site Tracing (XST) Attacks.
Phishing with XSS
分析
如图所示,我们输入任何内容,点击“Search”后会显示在左下角,