xss-labs
p1.直接绕过
直接在name后面=<script>alert(1)</script>
p2.闭合前面绕过
题目:
在链接中插入script代码,如下图所示,并没有成功展示
审查元素,可知一些符号被过滤成<
;所以没有成功执行
再仔细看script代码其实已经写入在另一个地方,但由于双引号原因没有执行,所以我们只需要把前面的闭合就行了,后面的代码屏蔽不重要,因为这样js代码就可以执行了!
把符号转换为实体化标签,xss经常过滤的情况
P3.onclick绕过
这关与第二关不同,它将<
进行了转义,无法正常执行
这样执行,利用onclick点击事件编写语句
查看源代码,看是否拼接成功
最后点击输入框如图所示:
解释:在input输入框中插入了onclick点击事件,于是当你点击输入框的时候,点击事件(alert(1))将会触发,所以就触发了弹框!
p4.onclick绕过
如图所示:输入的符号
这关和上一关一样的解法,使用onlick点击事件完成
p5.aherf属性绕过
以往的方法都无法成功执行,插入的代码都被某种干扰,被检测到关键次on和script,进行了下划线处理,所以无法执行
这一关查看源码发现和第二关是一样的,但是既然存在那么我们就用另外的方法去进行绕过。借助aherf属性,自己创建一个javascript代码
p6.大小写绕过
如图所示,href等一些列关键词也被检测屏蔽了。
我们换一种思路,改变大小写试试,将href改为Href
结果成功了!,这说明我们要转换思维!
p7.无循环过滤
这关的问题是将script,href,on关键词直接去除了,而不是转换为其他字符,并且转换大小写也没有作用!
源代码如下:
这关的解法是:它这种过滤只过滤一次,所以多写一个script就可以执行了!
"><sscriptcript>alert(1)</sscriptcript>
P8.编码绕过
这关检测到关键词,将关键词转换了,并且转换大小写也没有任何作用!
替换为unicode编码:
添加成功:
p9.检测是否有无http://
这关看源代码才知道,需要检测到http://才能正常插入,不然不合法,并且将会把关键词script替换成scr_ipt,所以利用上一关的编码,这样写javascript:alert(1)//http://
//
用来注释掉后面的http://
如下:
p10.暴露隐藏表单
查看源代码,发现有3个隐藏的表单
构造语句尝试突破,看哪个隐藏表单可以暴露出来!
?keyword=&t_link=" type="text"&t_history=" type="text"&t_sort=" type="text"
结果发现,只有t_sort成功暴露!
尝试使用script语句插入,结果<符号被屏蔽,编码也被屏蔽,使用onclick成功绕过
?keyword=&t_sort=" type="text" onclick="alert('xss')
1:说明是接收 t_sort 参数值的。
2:会删除 t_sort 参数值中的 < 和 > 。从这里来看的话这一关就只能是将js代码插入到 标签的属性值中来执行而不能通过闭合 标签引入新的标签来触发xss了。
p11.分析源代码
双引号被编译了,不能通过闭合来完成xss插入,但是通过源代码分析,
这几个属性其中$_SERVER['HTTP_REFERER']这个是检测来源的一个语句,value是接收的.$str11的值这时我们就抓一下数据包在数据包里面加一个属性叫referer,然后这里的value就有值了这个时候我们就写一个语句进去referer: " type="text" onclick="alert('1')"
" type="text" onclick="alert('1')"
p12.修改User-Agent
$_SERVER['HTTP_USER_AGENT']
是用来获取当前请求头中的User-Agent
跟上一关是同种类型的,直接抓包,把User-Agent的值改成:
"type="text" onclick="alert(1)"
p13.修改Cookie
分析源代码,&str00是获取Cookie中的user的值,所以抓包修改Cookie中的user的内容就行了,把onclick语句插入里面
标签:xss,script,text,labs,&#,onclick,源代码 From: https://www.cnblogs.com/itchen-2002/p/xsslabs-uksul.html