(转载翻译)XSS的应用+靶场

nicky   ·   发表于 2020-03-28 21:56:24   ·   技术文章投稿区

当测试反射型和储存型XSS的时候,要考虑一下XSS的上下情况:
响应中,攻击者是否可以控制数据出现的地方
应用程序是否对正在执行数据的输入有验证或者其它处理

HTML标记属性中的XSS

有时,XSS文本会进入到HTML一种标记属性当中,该属性本身可以创造或编写一个文本出来。在这里,你可以执行Javascript脚本,而无需终止属性值。例如,如果XSS文本当中有href的属性,就可以使用javascript伪协议来执行脚本,最经典的就是:
<a href="javascript:alert(document.domain)">

XSS转化为Javascript

当XSS文本里面包含一些Javascript的回应以后,会出现各种各样的情况,可以采用不同的技术来成功执行漏洞利用并终止现有的脚本。

最简单的情况下可以简单的关闭包围现有Javascript的script标签,并引入新的HTML标签头来触发Javascript的执行,假如XSS文本如下:

<script>

var input = ‘controllable data here’;

</script>

那么可以使用以下payload来执行自己的Javascript:
</a>script><img src=1 onerror=alert(document.domain)>

之所以会起作用是因为浏览器会先执行HTML解析来识别包括脚本部分的页面元素,然后才执行Javascript解析来理解并执行嵌入式脚本。上面的payload可以让原始脚本被破坏,并带有危险字符串文字。不过这并不能阻止后续脚本以正常的方式解析和运行。

然后这里提供了一个靶场练习,首先这里出现了一个搜索框随便输入点东西然后进行抓包

然后把抓到的数据包发送到Repeater进行下一步实验

这里已经可以注意到我们随机输入的字符串已经反映在Javascript的字符串里面了。

接下来输入点其它东西,发现会进行反斜杠转义,防止输入的内容脱离字符串

这种情况下,就可以闭合标签然后进行xss攻击payload为</script><script>alert(1)</script>

最后成功弹窗

突破Javascript字符串

如果XSS文本位于带引号的字符串文字中,则可以通过突破该字符串并直接执行Javascript。必须得在XSS文本之后修复脚本,因为那里任何的语法错误都会阻止整个脚本执行

该payload如下:
‘-alert(document.domain)-‘
‘;alert(document.domain)//

该靶场的方法如下,首先还是在输入框里面随便输入点东西,然后抓包

放到Repeater里面

然后输入上文提及的payload ‘-alert(1)-‘ 发现输入的内容多了点奇怪的东西

打开URL发现弹窗成功

某些应用程序会试图通过使用反斜杠转义任何单引号字符来防止输入中断Javascript字符串。字符前的反斜杠会告诉Javscript解析器这是正常的内容请按照字面意思进行解释,不要歧视把它作为特殊字符。在这种情况下,应用程序经常会犯下一些错误:无法转义反斜杠本身。这也意味着攻击者可以使用自己的反斜杠字符来抵消应用程序添加的反斜杠

比如说支持这种:
‘;alert(document.domain)//
就会变成:
\’;alert(document.domain)//

这样的话可以使用另外一种payload:
\’;alert(document.domain)//
它会转义成:
\‘;alert(document.domain)//

在这里,第一个反斜杠表示第二个反斜杠是按照字面意义解析,而不是作为一个特殊字符。这也意味着引号现在被解析为字符串终结符,因此攻击成功。

进入靶场还是老样子在搜索框随便输入点东西然后进行抓包

然后放到Repeater里面看看回显的包,发现输入的内容可以回显回来

测试一下test’spayload发现转义掉

那么换成test\payload,发现没有转移掉并多添加了一个\那么使用payload \’-alert(1)//

那么使用payload \’-alert(1)//

打开URL发现弹窗成功:

引用:Portswigger 靶场在里面https://portswigger.net/web-security/cross-site-scripting/contexts

用户名金币积分时间理由
奖励系统 100.00 0 2020-10-30 14:02:07 投稿满 10 赞奖励
奖励系统 50.00 0 2020-09-22 14:02:15 投稿满 5 赞奖励

打赏我,让我更有动力~

0 Reply   |  Until 2020-3-28 | 765 View
LoginCan Publish Content
返回顶部 投诉反馈

© 2016 - 2022 掌控者 All Rights Reserved.