阶段性总结
注入
整个注入就是通过闭合原来的语句或者去他方式来改变原来的逻辑
XSS注入
主要是窃取管理员cookie,然后盗取身份
同源策略[SOP]
- web SOP
- 端口号
- 协议
- domain
- cookie SOP
- domain
- path
- 跨域
- window.name
- JSONP
- PostMessage
- 同源绕过
- 特定软件比如JAVA,FLASH
bypass WAF
- eval还有的话,String.fromCharCode还是很稳的
- 带src的都可以
- window.location跳转一波
bypass CSP
- link prefetch(跨域) + ajax(需要unsafe inline)
- sourceMapUrl(跨域)
bypass sandbox
- 用iframe的函数
小trick
- 获取其他路径下的cookie,通过一个iframe
还有蠕虫
SQL注入
分类
- 报错注入
- 常用xpath
- union
- 常常过滤了
union
和select
- 常常过滤了
- 盲注
- 基于布尔(看页面变化)
- 基于时间(看响应时间)
- 堆叠查询
- mysql+php比较少见
bypass WAF
逗号
- limit => limit 1 offset 4
- union => union select * from xxx join yyy
- mid/substr => mid(user() from 1 for 1)
空格
- 注释
- 数字,科学计数法,小数点,运算符
- NULL
- 圆括号,花括号,反引号
单引号
- 十六进制
字段名
- select 1,2,3,4 union select * from vuln;
小trick
- 反引号在能放置别名的地方做注释
- select * from xxx into @a,@b,….临时变量出字段数代替order by
- 临时变量还有其他的用
其他
- 不开启
strict_all_table
,可能导致用户名超长截断 - 二次注入,过引号,逻辑上的回显
- 宽字节注入
命令执行
通过结束原来的命令来执行一条新的命令
HTTP请求头注入
CR/LF攻击
文件上传
php伪协议
- 读源码
- zip/phar小马
一堆截断方式,%00,./这些在新版本里都不能用了
CSRF
加入csrf_token
加入Referer
的验证
CSRF一般是构造表单
然后自动提交
<script>
function csrf_attack() {
document.getElementById('csrf_submit').click();
}
window.onload = csrf_attack;
</script>
在添加点样式啥的比如display:none
CSRF 和 XSS区别
XSS漏洞通过xss代码获取受害者Cookie,之后通过设置Cookie可以冒充受害者,比如管理员
CSRF漏洞只受害者浏览了恶意网站相当于自己触动了操作
CSRF结合XSS
SSRF
bypass
- 10进制,十六进制,8进制
- 限制了协议,用302跳转以支持gopher和其他协议
- DNS rebinding
- redis
- dict
- gopher
会话固定攻击
在登录前后应该换不同的cookie