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触发

posted @ 2022-12-01 23:04  橙芒果Ting  阅读(244)  评论(1)    收藏  举报