buu xss lab 1~5
题目在buu basic区 https://buuoj.cn/challenges#XSS-Lab

主页面是这个东西(这表情怎么满脸嚣张),点图片
1. level 1

看name=test。试试能不能用html改改它
试着改一下用户名,加个标题啥类似的

证明确实可以。
xss的这种题之前淇姐讲过应该是在html代码里面调用JavaScript代码,然后放个alert脚本让这个页面弹出来弹窗,弹窗里面一般就是答案(我记得是这样)
所以把这个给它写进去
<script>alert("ok")</script>或者<script>alert("ok");</script

这就完成啦!!tips:上图那个“完成的还不错!”的那个用红框标注的位置,一般在比赛中也是给flag的位置
原理查了一下

看源码,发现URL的name值可以随意输入,所以直接上script方法。
2.level 2

一进去是这么个页面,先看看能不能向刚刚那样用html改一下

事实证明:好事不是次次有的,不行!!!!
还是上网查吧 (这个博客告诉我也不是和html毫无关系)https://blog.csdn.net/weixin_45813388/article/details/115581895
看看源代码

可以看到test是通过GET的方式从文本框输入,并且显示在< h2 >标签中,因此我们注入的点是在value中,但此时我们如果在value中输入script语句的话,会被当成是value的值,所以我们要先用">来过滤value的值,在通过script标签进行alert的输入,因此payload也就很简单了.
"><script>alert("ok")</script>(那个ok的位置放1或者yes啥的基本都行,不要忘了最前面的引号哦)

这个题还有一种写法
注释掉后面的>,JavaScript中注释符为//,闭合前面的
构造playboad?keyword="><script>alert('1');</script> //&submit=搜索也可以完成(其实没啥区别)
3.level 3
点进去的页面,随手一搜

看看源代码

发现我们注入的点还是在value中,是单引号闭合,因此我们不妨试一试level2中的'><script>alert("ysys")</script>,发现不行,看源代码

下面那个引用部分我没看太懂
可以清晰地看到,js的标签被进行了html编码,但是标签肯定都是带有<>的
(也就是发现后台对<>进行了转义,所以弃用<>标签,而onclick按钮可用于html元素中,点击后可触发相关jsp代码)因此这里我们就不能够使用前面的js标签来进行注入,同时我们也看到单引号是没有被注释的,因此我们先通过闭合value的值,再采取事件的方式进行注入,就可以成功进入下一关了
keyword=' onclick='alert(1)&submit=搜索或' onclick='alert(1)弹窗需要再次点击输入框

4.level 4

源码

拿到题目,首先看到后台源码的value值是用双引号包起来的,因此我们先将上一题的payload单引号换成双引号注入一下试试,直接就成功了…,其实我们可以用尖括号先注入一下,发现注入是不成功的,因为尖括号被编码过了。
payload: " onclick="alert(1)****弹窗需要再次点击输入框

5.level 5
参考博客https://blog.csdn.net/weixin_53002381/article/details/126112104?utm_medium=distribute.pc_relevant.none-task-blog-2
先输入<script>alert(1)</script>来试试

发现script标签被_分隔了
再尝试双引号闭合,使用上一题那种点击触发事件,试一下" onclick="alert(1)结果发现它把onclick也过滤了


再尝试使用大写,结果一样

大写也被过滤了,现在试一下a标签,发现a标签可以
"><a href="javascript:alert(1)">aa</a>弹窗需要点击aa触发


浙公网安备 33010602011771号