写在开头
不谦虚,真的菜,如有错误请在评论区给出大佬高见,还请诸位轻点骂。
CSRF(Cross-site request forgery)
CSRF到底是个啥
CSRF有个生动形象的名字,是为跨站请求伪造。跨站请求为造最核心的就是攻击者偷偷使用受害人已经成功成功的的身份认证(偷你的身份冒充你干坏事)。
为啥会产生CSRF
- 一方面是开发者不够谨慎,编写的Web应用程序存在漏洞导致恶意利用;
- 另一方面因为Web浏览器对于Cookie和HTTP身份验证的回话信息的处理存在一定的缺陷;
- 服务器对于浏览器过于信任,相信从该浏览器发出的请求都是正确的,却没有区分这是用户主动发送的请求,还是模拟用户行为发出来的。
CSRF常见的防护方法
- 使用Referer验证,容易被抓包修改Referer来绕过 。
- 使用随机token,并验证。
- 关键请求使用验证码。
SSRF(服务端请求伪造):Server-Side Request Forgery
目标特点:从外网无法直接访问内网
原因:服务端提供了从其他服务器应用获取数据的功能,但是对目标地址没有做过滤与限制。
SSRF怎么挖
从WEB功能上找
- 分享:通过URL地址分享网页内容
- 在线翻译:通过URL地址把翻译对应文本的内容。如:百度、有道等。
- 图片加载与下载:通过URL地址加载与下载图片。
- 图片、文章收藏功能。
- 转码服务:通过URL地址将原地址的网页内容调优时期适合手机屏幕浏览。
- 未公开的api实现以及其他调用URL的功能。
从URL关键字中寻找
SSRF能干点啥
- 可以对外网、服务器所在内网、本地进行端口扫描,获取一些服务的 banner 信息。(Banner信息,欢迎语,在banner信息中可以得到软件开发商,软件名称、版本、服务类型等信息,通过这些信息可以使用某些工具直接去使用相对应的exp去攻击。)
- 攻击运行在内网或本地的应用程序(比如溢出)
- 对内网 WEB 应用进行指纹识别,通过访问默认文件实现
- 攻击内外网的 web 应用,主要是使用 GET 参数就可以实现的攻击(比如 Struts2,sqli 等)
- 利用 file 协议读取本地文件等
参考:https://cloud.tencent.com/developer/article/1586099