xss-level 6-10
level 6
先使用 '">来判断出前面标签是什么闭合,然后 使用正常的<script>alert('1')</script>,此时查看源码,可以知道需要闭合标签,接着输入"><script>alert('1')</script> ----失败

查看网页源码:

此时发现<script>变成了<scr_ipt>
尝试使用HTML事件,"oninput="alert('是') -----失败

此时发现oninput 变成了 o_ninput
接着使用触发事件 'onclick='window.alert() -----失败
三种都不行,就尝试使用伪链接
由于前面可知,需要将部分字母换成大写尝试:
"><a hRef=javascript:alert('yes')>链接</a>
点击链接即可,这关和level5操作基本相同

level 7
操作和level 6相同,输入"><script>alert('1')</script> ,查看源码

发现script传参时被后台过滤掉了
尝试使用HTML事件,"oninput="alert('是') -----on被过滤掉了

这里我们可以对标签的书写做一些处理,让后台过滤后仍然可以执行我们的脚本!
在上面的被过滤字符中都插入一段过滤字符,当插入的字符被过滤后,过滤结果仍然可以组合成为脚本语句:
"><scrscriptipt>alert("yes")</scrscriptipt>

level 8
使用以上的方法都不行,此时可以考虑换一种编码方式进行绕过。例:将p转码
javascript:alert() ---html编码
添加友情链接后,点击链接即可

level 9
使用以上的方法都不行,此时标签和事件属性都不能用 , 猜测是对url进行了匹配,所以在编码后添加http://www.baidu.com,为了不影响javascript代码,在url前加javascript的单行注释符//,即//http://www.baidu.com,便于javascript代码正常执行。
javascript:alert(1)//http://www.baidu.com

查看PHP源码,发现先对关键字进行了过滤改写,

之后检查字符串中是否存在“http://”,如不存在,则输出链接不合法的提示

less 10
过滤了尖括号 > < , 并且隐藏了输入框 , 使用事件绕过,并使输入框取消隐藏
这是自己搭建的靶场可以看源码,但是当到实战就看不到源码了
此时遇到这种类型的题需要 插入点击事件 , 左侧第一个双引号用来闭合 value属性的左双引号,代码确实添加了点击事件 , 但输入框被隐藏 , 点击不了,这时需要再追加一个 type属性 , 使输入框显示出来 , payload:
"onclick=alert(1) type=text
查看网页源码,可以发现有以下3个参数

修改前面keyword为t_sort(三个参数都试了,只有t_sort是对的)


浙公网安备 33010602011771号