旧物 | 以前面试前的一点小总结

Author Avatar
Aryb1n 6月 27, 2018

以前的东西…比较中2…收拾东西的时候翻出来, 发到这里就把本地的删掉了..

逻辑漏洞?

固定会话攻击? 登录之后没有换掉session id
越权, 改别人密码, 验证做的不好?

SQL注入

过滤

过滤关键词, 看能不能大小写啊, 循环(穿插)替换
条件注释, 浮点数, 单引号(在可以出现别名的时候)作为注释
等号没了用like
时间盲住函数没了可以用比较耗时的操作
空格没了用其他空白字符代替, 用注释代替, 用括号代替
等等…
喔, 还有 DNS 带外的

SQLi的危害

拿shell, 提权

XSS

类型, 反射型, 存储型, DOM型

DOM型一般是说不过Server端, 而反射型过Server端

// 反射型
<?php echo $_GET['a']; 

// DOM型
document.write(document.URL)

危害: 打cookie, 钓鱼

CSP怎么过

prefetch系列
a模拟鼠标点击
直接打开新的页面location.href之类的
sourceMap

过滤

编码, 这个其实更复杂的涉及到浏览器的解析规则
使用其他能够触发的标签
使用一些黑科技, 比如某些奇怪的带圈的数字会被转换为数字, 可以用于ip过滤
英文句号没了可以用中文句号
http被过滤了, Linux可以直接用//, windows下//应该是当前协议
单引号被过滤了, 可以fromCharCode, or 使用反引号(es6新技能)
宽字节, 比如%aa, 这个时候通常会看到页面编码是gbk之类的

同源策略

看一下MDN上的资料, 回宿舍再补起来
还有柠檬牛的博客
哎, 感觉事情好多啊

好像是localhost和127.0.0.1都不同源
端口, 协议, 域名, 那path到底算吗(好像不算)

更改domain

document.domain 可以设置为当前域or父域

img等标签

img script style等标签,都允许垮域引用资源,严格说这都是不符合同源要求的。然而,你也只能是引用这些资源而已,并不能读取这些资源的内容
上面的话来源于网络…

ajax - CORS解决跨域

如果不同源的话, 请求能发起, 但不能读到返回的内容, 为什么呢…
这个同源策略是要保护Server还是保护Client
你说保护Server吧…我curl能获取数据, 应该是数据到了浏览器了已经, 只是浏览器在响应头Access-Control-Allow-Origin这一项里没找到自己, 所以不读取内容
你说保护Client吧, 只要在Server加上一个头就行了…

jsonp解决跨域

我上次没答上来
jsonp也是解决跨域的一种方案

PostMessage解决跨域

跨域的一些不理解的地方

其实很多地方不理解, 在MDN上是这样子列的

  • 跨源网络访问, ajax啊之类的
  • 跨源数据存储访问, localhostStorage, IndexedDB

喔, 这样子, 还有提到一点, cookie使用不同的源的定义方式, 就是, 一个页面可以为本域或者任何父域设置cookie, 任何不包括.com之类的, 是至少是b.com, a.b.com
这一点在0ctf 2017里遇到过

一般Web中说的同源策略里是protocal, domain, port
一般Web中说的同源策略里域和他的子域是算不同源的
一般Web中说的同源策略里http和https是不同源的
那么意思是和path无关?

Cookie中同源是不区分端口和协议的, 仅仅以domain 还有 path作为同源限制
这里的domain是子域可以写cookie到父域的向上通配
这里的path是向下通配
所以访问子域的时候还会带上父域的cookie

由于…Web的同源策略不看path, 所以…
常用的iframe读子path的cookie是应该就是这样子一种操作
在父path下本来是读不到子path的cookie的, 这样子一来就解决了
注意: 这里是跨path, 不是跨domain
父子domain之间除非通过设置同样的document.domain, 不然的话是读不到内容的

找到了一篇关于iframe的文章https://segmentfault.com/a/1190000004502619

下载了一份cookie 之困

CSRF

我一直感觉CSRF比较鸡肋…
理论上能借用管理员权限?
POST型的经常通过表单来伪造, 当然应该也可以用ajax?(小声yy)

Mark一下不太常用的跳转方法

<meta http-equiv="refresh" content="0; url=">

Referer

这个东西感觉是浏览器自动带上去的…比如我本地一个网页, 然后点击链接, 浏览器就会带上这样的头部…

Referer: http://www.foo.com/refer.html

可以通过在refer.html里加入这个

<meta name="referrer" content="no-referrer">

来让由refer.html跳转出去的请求不带Referer头, 那能不能设置头等于什么呢…
好像这个不太能

防御

验证码
Csrf Token
Referer验证

SSRF

攻击目标一般是从外网无法直接接近的内部系统
出现地点: 能发起请求的地方
利用效果: 读文件, 信息收集, 打本地应用

IP黑名单绕过

DNS Rebinding

协议绕过

302跳转

和redis组合使用

gophar 和 dict

XXE

最近比较火的
处理外部实体数据的时候, 因为实体调用的时候可以访问本地or远程的内容

RPO

比较新的东西

前端安全的利用感觉就比较困难

前端安全的这些东西一般都很难单独利用, 大多数是组合出现

RCE

基于时间的命令执行

钓鱼

这类的我其实不太关注…其实不怎么了解
比如…点击劫持, 覆盖透明层(iframe), 伪造导航栏..
最基本的要判断UA, 一般只有手机浏览器才会钓鱼, PC就跳到正常界面了, 因为容易被发现
判断 UA 其实不保险, 所以有人判断那个navigator.platform

扫描器

扫描器写过没, 没写过, 相关的要点

浏览器安全

读过两本书..感觉怎么说, 内容不太充实
《白帽子讲浏览器安全》和《黑客攻防技术宝典:浏览器实战篇》

同源策略

浏览器中最重要的安全策略就是同源策略, 如果能有那种交叉引用就好了, 把我上面那个同源策略引入过来…算了, 还是在上面讲吧

渲染引擎

其实比较复杂了感觉, 算二进制的范畴了, 真的是感觉跨越web和pwn的大佬才搞得懂

移动端

移动端伪造比较容易, 控制比较难

FUZZ

漏洞相关

怎么评级

APT

APT是啥?
Advanced Persistent Threat
高级持续性威胁
这玩意的概念…真是…捉摸不透
就复习了一下域环境搭建, 这玩意工具一大堆…等我有时间了研究

发出请求

location.href
xmlhttp.open() // ajax
window.open()
xxx.src
a.href + a.click()
document.write('<meta http-equiv="refresh" content="0; url=">')