XSS-labs-master闯关1-10 writeup

XSS-labs-master 1-10闯关 Writeup

今天来给大家分享一下Xss challenge1-10,XSS在web安全里面也算是一个比较常见的漏洞。喜欢的小伙伴记得点个赞哦!

xss-level1:
第一关没什么好说的,反射型xss,用常规的xss弹框语句即可。
payload:
XSS-labs-master闯关1-10 writeup_第1张图片
xss-level2:
查看源码
XSS-labs-master闯关1-10 writeup_第2张图片发现搜索框中的输入的特殊字符会被转换为html实体
这里我们查看前端代码,不能直接数据js语句,要闭合前面的标签。
payload:"><"
XSS-labs-master闯关1-10 writeup_第3张图片xss-level3:
查看源码:
XSS-labs-master闯关1-10 writeup_第4张图片发现两处都是使用了htmlspecialchars()函数,将特殊字符转为html实体,无法闭合标签。
所以,这里就需要绕过这个函数。
根据htmlspecialchars()函数,默认不编码单引号,我们在标签里面添加一个属性,使其弹窗。
payload:' onclick=javascript:alert(1) '

这里我使用的是onclick事件,插入代码后,还需点击输入框才可触发弹窗。
XSS-labs-master闯关1-10 writeup_第5张图片xss-level4:
查看源码:
XSS-labs-master闯关1-10 writeup_第6张图片发现使用replace()函数,将"<“和”>"都替换为空,所以不能插入标签弹窗。
我们可以像上一关一样,插入属性来触发弹窗。
payload:" onclick=javascript:alert(123) "
XSS-labs-master闯关1-10 writeup_第7张图片xss-level5:
查看源码:
XSS-labs-master闯关1-10 writeup_第8张图片发现使用replace()函数,将
XSS-labs-master闯关1-10 writeup_第12张图片
xss-level7:
查看源码:
XSS-labs-master闯关1-10 writeup_第13张图片
可以看出使用str_replace()函数将一些字符串替换为空,这里我们可以尝试双写绕过。
payload:">alert(123)
XSS-labs-master闯关1-10 writeup_第14张图片xss-level8:
查看源码:
XSS-labs-master闯关1-10 writeup_第15张图片可以看出,常规的字段都被替换添加了下划线,然后我们输入的字符串会插入a标签里面当作超链接导向。
与前面不同的是这是一个存储型xss
XSS-labs-master闯关1-10 writeup_第16张图片这里的话,可以在a标签的超链接里面引入javascript代码
同时采用%0a(换行符)来绕过常规字段被添加下划线
payload:javascri%0apt:alert(123)
当然也可以采用html实体编码绕过 在线转换
XSS-labs-master闯关1-10 writeup_第17张图片xss-level9:
查看源码:
可以看出,这一关与上一关常规的字段都被替换添加了下划线,不同是需要检测输入的语句中有没有带http://这个协议头
XSS-labs-master闯关1-10 writeup_第18张图片我可以采用注释的方式加入http:// (注释绕过)
payload:javascrip%0at:alert(123)//http://
XSS-labs-master闯关1-10 writeup_第19张图片xss-level10:
查看源码:
XSS-labs-master闯关1-10 writeup_第20张图片可以看出,表格被隐藏了,所以在前端看不见。同时,h2标签依旧是使用 htmlspecialchars()进行转义。从源码我们知道 t_sort可以传递参数,但是过滤了尖括号,那我们就使用javascript伪协议,思路是往标签内添加属性。
payload:&t_sort=click_here" type="button"οnclick="javascript:alert(123)
XSS-labs-master闯关1-10 writeup_第21张图片

你可能感兴趣的:(Web安全,CTF,信息安全)