CSRF&SSRF
在已有CSRF&SSRF知识上做的一些补充
CSRF
- 黑盒如何判断:
-
看来源(同源策略)
Referer头
如果直接访问目标网址访问成功,即来源为空,则没有同源策略
-
看凭据有无token
-
看关键操作有无验证
-
白盒审计:
直接复现有没有
成功→有漏洞
失败→代码→缺陷过滤(绕过)→有漏洞
失败→代码→完整过滤→没有漏洞
SSRF
- 可能出现的地方
-
社交分享功能:获取超链接的标题等内容进行显示
-
转码服务:通过URL地址把原地址的网页内容调优使其适合手机屏幕浏览
-
在线翻译:给网址翻译对应网页的内容
-
图片加载/下载:例如富文本编辑器中的点击下载图片到本地;通过URL地址加载或下载图片
-
图片/文章收藏功能:主要其会取URL地址中title以及文本的内容作为显示以求一个好的用户体验
-
云服务厂商:它会远程执行一些命令来判断网站是否存活等,所以如果可以捕获相应的信息,就可进行SSRF测试
-
网站采集、网站抓取的地方:一些网站会针对你输入的URL进行一些信息采集工作
-
数据库内置功能:数据库的比如MongoDB的copyDatabase函数
-
邮件系统:比如接收邮件服务器地址
-
编码处理、属性信息处理、文件处理:比如ffmpeg、ImageMagick、docx、PDF、xml处理器等
-
未公开的api实现以及其他拓展调用URL的功能:可以利用Google语法加上这些关键字取寻找SSRF漏洞
一些URL中的关键字:share、wap、url、link、src、source、target、u、3g、display、sourceURL、imageURL、domain……
-
从远程服务器请求资源(upload from url如discuz!;import & expost rss feed如web blog;使用了xml引擎对象的地方,如wordpress xmlrpc.php)
搭配Metasploit打内网
-
SSRF可能出现的地方:
功能点抓包指向代码块审计
功能点函数定位代码块审计
-
修复:
- 禁用跳转
- 禁用不需要的协议
- 固定或限制资源地址
- 错误信息统一信息处理