阶段性总结

Author Avatar
Aryb1n 7月 20, 2017

注入

整个注入就是通过闭合原来的语句或者去他方式来改变原来的逻辑

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
    • 常常过滤了unionselect
  • 盲注
    • 基于布尔(看页面变化)
    • 基于时间(看响应时间)
  • 堆叠查询
    • 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