赞
踩
靶场环境搭建:
链接:https://pan.baidu.com/s/1V_Ij9NfJzRSeYq1alSecew 提取码:3333
开启phpstudy 的apache和mysql,把靶场环境放到www目录下,在浏览器访问127.0.0.1/文件名
第一关:
没有任何防御措施,直接在url中输入,可直接绕过
<script>alert(1)</script>
第二关:
查看源码,发现value="test",因此我们需要使用 "> 进行闭合,使用//注释后边的 ">
输入:
"><script>alert(1)</script>//
第三关:
首先在文本框中输入<script>,然后查看源码
发现value='<script>'可知 "<" ">"被转换为< >
可以知道本关使用了htmlspecialchars()函数进行了字符转换
htmlspecialchars()函数:作用是把预定义的字符转换为HTML实体
我们可以使用<input>标签中的特殊事件,onfocus属性进行绕过
onfocus 属性在元素获取焦点时触发
'onfocus=javascript:alert(1)
点击文本框,即可通过第三关
第四关
输入<script>,可以看到文本框中直接将"<" ">"过滤掉了
查看源码,看到:value="script"
因此我们可以直接使用onfocus属性绕过
输入:
"onfocus=javascript:alert(1) //
与第三关一样点击文本框进行绕过
第五关
输入<script>,可以看到文本框中<scrippt>变成了<scr_ipt>
我们再次输入onfocus,会发现中间也加了一个 "_",可当我们输入href时会发现没有变化
因此我们可以使用<a>标签的href属性进行绕过
<a>标签的href属性:指定超链接目标的URL,href属性的值可以是任何有效文档的相对或者绝对URL,包括片段标识符和JavaScript代码段
输入:
"><a href=javascript:alert(1)> 1</a>
点击文本框旁边的1,可通过第五关
第六关
首先输入上一关的"><a href=javascript:alert(1)> 1</a>,查看源码,
存在value=""><a hr_ef=javascript:alert(1)> 1</a>",将href改为了"hr_ef",在第五关的基础上又添加了hr_ef等防御
在这里我们可以使用大小写绕过方式,通过第六关,将上面使用的onfocus,href,script,三种方式,首字母变为大写,随便一种,即可直接通关
- 1:"><Script>alert(2);</Script>//
- 2:"><a Href=javascript:alert(1)>1</a>//
- 3:"Onfocus=javascript:alert(1)//
第七关
当我们将第六关的三种输入进去,查看源码会发现,第七关将script,href,onfocus全部转为了空,这是我们可以通过嵌套双写绕过尝试,比如:scrscriptipt,输入进去可以看到,文本框中显示的是script,因此第七关,我们是可以通过嵌套来进行绕过防御
输入:
- 1. "><scrscriptipt>alert(1)</scrscriptipt>//
- 2. "oonnfocus=javascrscriptipt:alert(1)//
- 3. "><a hrhrefef=javascrscriptipt:alert(1)>1</a>//
点击文本框通过第七关
第八关
我们通过尝试前几关的方法绕过,会发现这里存在很多中防御
例如:
htmlspecialchars()函数
<scrippt>变成了<scr_ipt>
忽略大小写
将 " 换也成了 &quto,不能将value闭合
这里我们可以通过html实体编码进行绕过,即
html的实体编码v:r——>r
输入:
javascript:alert(1)
点击友情链接即可通关
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。