xss基础靶机


第一关:没有使用过滤器

xss基础靶机

 

 

 

 

 xss基础靶机

 

 

 

从代码中可以看出,它是将用户以GET的方式提交的参数直接输出,所以用任何方法都可以通过

 

 方法:<a href=”javascript:alert(1)”>aaaaaa</a>

 

第二关:闭合标签

xss基础靶机

 

 xss基础靶机

 

 

从代码中可以看出,它将我们输入的值给了value,然后它再传给了一个htmlspecialchars函数,这个函数是把预定义的字符转换为 HTML 实体,说明把<script>标签吃掉了,可以通过闭合标签,使得<input name=keyword value=”‘.$str.'”>这一句就闭合掉

 

方法:1″ onclick=”alert(1)

 

第三关:单引号闭合

xss基础靶机

 

 xss基础靶机

 

 

看了看源码,发现这里不但对”号做了限制,而这在value这里也加了htmlspecialchars函数,虽然对了双引号做了限制,但是单引号还是可行的,这种情况我们可以通过事件标签触发表单执行。

 

方法:aaaa’ onclick=’alert(1)

 

第四关:双引号闭合

xss基础靶机

 

 xss基础靶机

 

 

直接可以看出,它是把<>过滤掉了,所以很简单,不用<>就行了

 

方法:a “onclick=”alert(1)

 

第五关:javascript伪协议

xss基础靶机

 

 xss基础靶机

 

 它对<script和on的都做了过滤,而且还使用strtolower函数对所有字符串变成小写,单引号也不可用了,但我们还是可以闭合语句,通过双引号加>闭合,但是闭合也不完全行,我们这时候可以使用javascript伪协议以及标签进行注入。

 

 

方法:a”><a href=”javascript:alert(1)”>aaaa</a>

 

第六关 大小写

xss基础靶机

 

 xss基础靶机

 

 可以看出它对<script   on  src  data  href  进行过滤,但是没对大写字母过滤

 

方法:aa” onclick=”alert(1)

 

第七关:重复写

xss基础靶机

 

 xss基础靶机

 

 

这里可以看出它把特殊语义的字符串修改成了空字符串,所以我们可以用重写的方法

 

方法:aa” oonnclick=”alert(1)

 

第八关 字符实体

xss基础靶机

 

 xss基础靶机

 

 

难度一次一次升级,我们这里直接把字符编码转换为HTML的实体编码

 

方法:&#106;&#97;&#118;&#97;&#115;&#99;&#114;&#105;&#112;&#116;&#58;&#97;&#108;&#101;&#114;&#116;&#40;&#49;&#41;

 

第九关 关键字存在

xss基础靶机

 

 xss基础靶机

 

 

这里多了一个strpos函数,这个函数是用来查找指定文本在字符串中第一次出现的位置,这时候我们就不得不在代码里加入http://,但是并没有过滤HTML实体编码,所以我们还是使用编码绕过

 

方法:&#x6a;&#x61;&#x76;&#x61;&#x73;&#x63;&#x72;&#x69;&#x70;&#x74;:alert(1)//http://www.baidu.com

 

第十关 隐藏信息

xss基础靶机

 

 xss基础靶机

 

 

这里由于没有文本框,需要在浏览器后台的<input name=”t_sort” value=”‘.$str33.'” type=”hidden”>这行的type值改成text

然后这里只是过滤掉了<>,可以使用触发事件标签

 

方法:t_sort=”type=”text” onm ouseover=”alert(1)


 

 

原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/277013.html

(0)
上一篇 2022年7月26日
下一篇 2022年7月26日

相关推荐

发表回复

登录后才能评论