xss-labs

发布时间 2023-12-19 13:15:00作者: itchen-2002

xss-labs

p1.直接绕过

image-20231029092646246

直接在name后面=<script>alert(1)</script>

image-20231029092725500

p2.闭合前面绕过

题目:image-20231029092842552

在链接中插入script代码,如下图所示,并没有成功展示

image-20231029093025516

审查元素,可知一些符号被过滤成&lt;所以没有成功执行

image-20231029093255707

再仔细看script代码其实已经写入在另一个地方,但由于双引号原因没有执行,所以我们只需要把前面的闭合就行了,后面的代码屏蔽不重要,因为这样js代码就可以执行了!

image-20231029093812651

image-20231029094045754

把符号转换为实体化标签,xss经常过滤的情况

P3.onclick绕过

这关与第二关不同,它将<进行了转义,无法正常执行

image-20231029094900209

这样执行,利用onclick点击事件编写语句

image-20231029095420650

查看源代码,看是否拼接成功

image-20231029095532451

最后点击输入框如图所示:

image-20231029095559692

解释:在input输入框中插入了onclick点击事件,于是当你点击输入框的时候,点击事件(alert(1))将会触发,所以就触发了弹框!

p4.onclick绕过

如图所示:输入的符号

image-20231029095948415

这关和上一关一样的解法,使用onlick点击事件完成

image-20231029100348141

image-20231029100355250

image-20231029100409636

p5.aherf属性绕过

以往的方法都无法成功执行,插入的代码都被某种干扰,被检测到关键次on和script,进行了下划线处理,所以无法执行

image-20231029101226625

image-20231029101119562

这一关查看源码发现和第二关是一样的,但是既然存在那么我们就用另外的方法去进行绕过。借助aherf属性,自己创建一个javascript代码

image-20231029101903277

image-20231029102012926

p6.大小写绕过

image-20231029102246335

如图所示,href等一些列关键词也被检测屏蔽了。

我们换一种思路,改变大小写试试,将href改为Href

image-20231029102551030

image-20231029102639373

结果成功了!,这说明我们要转换思维!

p7.无循环过滤

image-20231029102844700

image-20231029102859610

这关的问题是将script,href,on关键词直接去除了,而不是转换为其他字符,并且转换大小写也没有作用!

源代码如下:

image-20231030152822016

这关的解法是:它这种过滤只过滤一次,所以多写一个script就可以执行了!

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

image-20231029103632844

P8.编码绕过

image-20231029104109054

这关检测到关键词,将关键词转换了,并且转换大小写也没有任何作用!

替换为unicode编码:

image-20231029105506053

添加成功:

image-20231029105623322

p9.检测是否有无http://

这关看源代码才知道,需要检测到http://才能正常插入,不然不合法,并且将会把关键词script替换成scr_ipt,所以利用上一关的编码,这样写&#106;&#97;&#118;&#97;&#115;&#99;&#114;&#105;&#112;&#116;&#58;&#97;&#108;&#101;&#114;&#116;&#40;&#49;&#41;//http://

//用来注释掉后面的http://

如下:

image-20231029115909194

p10.暴露隐藏表单

查看源代码,发现有3个隐藏的表单

image-20231030102625713

构造语句尝试突破,看哪个隐藏表单可以暴露出来!

?keyword=&t_link=" type="text"&t_history=" type="text"&t_sort=" type="text"

image-20231030102837569

结果发现,只有t_sort成功暴露!

image-20231030102940876

尝试使用script语句插入,结果<符号被屏蔽,编码也被屏蔽,使用onclick成功绕过

?keyword=&t_sort=" type="text" onclick="alert('xss')

image-20231030102441277

1:说明是接收 t_sort 参数值的。

2:会删除 t_sort 参数值中的 < 和 > 。从这里来看的话这一关就只能是将js代码插入到 标签的属性值中来执行而不能通过闭合 标签引入新的标签来触发xss了。

p11.分析源代码

双引号被编译了,不能通过闭合来完成xss插入,但是通过源代码分析,

image-20231030110458908

这几个属性其中$_SERVER['HTTP_REFERER']这个是检测来源的一个语句,value是接收的.$str11的值这时我们就抓一下数据包在数据包里面加一个属性叫referer,然后这里的value就有值了这个时候我们就写一个语句进去referer: " type="text" onclick="alert('1')"

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

image-20231030111021861

image-20231030111036464

p12.修改User-Agent

image-20231030112023959

$_SERVER['HTTP_USER_AGENT'] 是用来获取当前请求头中的User-Agent

跟上一关是同种类型的,直接抓包,把User-Agent的值改成:

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

p13.修改Cookie

image-20231030113525754

分析源代码,&str00是获取Cookie中的user的值,所以抓包修改Cookie中的user的内容就行了,把onclick语句插入里面

image-20231030113439226