目录
简述xss
xss第1关
xss第2关
编辑
xss第3关
xss第4关
xss第5关过滤了 on script
xss第6关
xss第7关
xss第8关
xss第9关
xss第10关
xss11关
我把源代码靶场放到了最顶端
简述xss
XSS攻击通常指的是通过利用网页开发时留下的漏洞,通过巧妙的方法注入恶意指令代码到网页,使用户加载并执行攻击者恶意制造的网页程序。这些恶意网页程序通常是JavaScript,但实际上也可以包括Java、 VBScript、ActiveX、 Flash 或者甚至是普通的HTML。攻击成功后,攻击者可能得到包括但不限于更高的权限(如执行一些操作)、私密网页内容、会话和cookie等各种内容。
xss第1关
没有对用户进行get传参过滤
<script>alert(1)</script>
xss第2关
form表单
<form><input></form></form>
通过我们分析源码 得知,也是在<h2></h2>
再将<script>window.alert(1)</script> 写入 (但是结果没有显示 )
htmlspecialchars
php后端 有个过滤函数 htmlspecialchars()
htmlspecialchars — 将特殊字符转换为 HTML 实体
-
htmlspecialchars 字符转义
字符 替换后 &
(& 符号)&; "
(双引号)"
,除非设置了ENT_NOQUOTES
'
(单引号)设置了 ENT_QUOTES
后,'
(如果是ENT_HTML401
) ,或者'
(如果是ENT_XML1
、ENT_XHTML
或ENT_HTML5
)。<
(小于)< >
(大于)>
html又有html实体编码 又会讲转换的转回原来的
所有我们需要逃逸出“> 这样就可以执行我们的代码
第一种
第二种onclick点击触发事件 (window下面的事件 移动事件)
xss第3关
htmlspecialchars 有这个ENT_QUOTES 就会将单引号过滤 转译
这个东西是老师添加的
单引号逃逸
xss第4关
过滤了<>
双引号逃逸 跟第三关一样的解法
xss第5关过滤了 on script
我们可以写一个超链接 通过超链接执行alert(1)
javascript:alert(1) 通过js文件来执行alert1
a">aaa
点击之后就执行
xss第6关
过滤了很多,超链接也被过滤
大小写 就可以
a">aaa
xss第7关
双写绕过
a">aaa
xss第8关
过滤了很多
但我们通过分析源码 发现 送上门的 直接会被弄成超链接
直接写入但是被过滤
直接html实体编码 之后html自己实体解码 转换成javascript:alert(1)
在线Html实体编码解码-HTML Entity Encoding/Decoding (config.net.cn)
xss第9关
必须要有http才可以执行
javascript:alert('http') 将http留着 剩余编码
javascript:alert('http://')
xss第10关
通过源码分析 form的值被隐藏只能在url中传递参数 (t_sort可接受参数)
逃逸单引号 点击事件解决
问题又来了,input被隐藏 (修改类型type=test)
xss11关
通过火狐 浏览器 改变t_ref
需要下载插件hackbar