CSRF

CSRF漏洞解释,原理

CSRF(Cross-site request forgery)跨站请求伪造,也被称为“One Click Attack”或者Session Riding,通常缩写为CSRF或者XSRF,是一种对网站的恶意利用。

原理:

CSRF攻击攻击原理及过程如下:

1
2
3
4
5
6
7
1. 用户打开浏览器,访问受信任银行网站,输入用户名和密码请求登录网站;
2.在用户信息通过验证后,银行网站产生Cookie信息并返回给浏览器,此时用户登录网站成功,可以正常发送请求到网站;
3. 用户未退出银行网站之前,在同一浏览器中,打开一个TAB页访问其他网站B
4. 这时候网站B 已被黑客注入诱导信息,加入是一张图片,图片地址指向
src=”http://bank.example/withdraw?account=bob&amount=1000000&for=黑客
点击之后转账给黑客这个账户
5. 浏览器在接收到这些攻击性代码请求后,根据网站B的请求,在用户不知情的情况下携带Cookie信息,根据用户的Cookie信息以C的权限处理该请求,导致来自黑客请求恶意代码被执行。

这是原理, 攻击者盗用了你的身份,以你的名义发送恶意请求,对服务器来说这个请求是完全合法的,但是却完成了攻击者所期望的一个操作,比如以你的名义发送邮件、发消息,盗取你的账号,添加系统管理员,甚至于购买商品、虚拟货币转账等。

参考:https://www.jianshu.com/p/ffb99fc70646

防御方案

1、当用户发送重要的请求时需要输入原始密码
2、设置随机Token
3、检验 referer 来源,请求时判断请求链接是否为当前管理员正在使用的页面(管理员在编辑文章,黑客发来恶意的修改密码链接,因为修改密码页面管理员并没有在操作,所以攻击失败)
4、设置验证码
5、限制请求方式只能为 POST

随机token

Token是服务端生成的一串字符串,以作客户端进行请求的一个令牌,当第一次登录后,服务器生成一个Token便将此Token返回给客户端,以后客户端只需带上这个Token前来请求数据即可,无需再次带上用户名和密码。

SSRF漏洞解释,原理

参考:https://www.t00ls.net/articles-41070.html

SSRF(Server-Side Request Forgery 服务器请求伪造)
目标:从外网无法访问的内部系统
形成原因:服务端提供了从其他服务器获取信息的功能,但没有对内网目标地址做过滤与限制
挖掘:从web功能上寻找 参考:https://blog.csdn.net/kuiguowei/article/details/79070999
1)分享:通过URL地址分享网页内容
2)转码服务: 通过URL地址把原地址的网页内容调优使其适合手机屏幕浏览 http://101.201.64.215:8088/
3)在线翻译:通过URL地址翻译对应文本的内容。提供此功能的国内公司有百度、有道等
4)图片加载与下载: 通过URL地址加载或下载图片
5)图片、文章收藏功能
6)未公开的api实现以及其他调用URL的功能

私有地址:
10.0.0.0 - 10.255.255.255
172.16.0.0 - 172.31.255.255
192.168.0.0 - 192.168.255.255

上传图片、视频方式

1、本地上传
2、远程上传

利用各种协议进行探针:

http://192.168.80.134/phpmyadmin/
file://C:/www.txt
dict://192.168.80.134:3306/info
ftp://192.168.80.134:21

实验

​ Pikachu-CSRF实验
​ Pikachu-CSRF防御-token测试
​ SSRF漏洞本地靶场演示_HttpFileServer应用测试
​ 参考:https://blog.csdn.net/weixin_30527323/article/details/94862967
http://192.168.80.134:8080/?search==%00{.exec|cmd.exe /c net user test1234 1234 /add.}

涉及资源

https://www.jianshu.com/p/ffb99fc70646 CSRF漏洞原理
https://www.t00ls.net/articles-41070.html SSRF漏洞

本地测试代码:

请输入图片地址: