WEB漏洞—CSRF及SSRF漏洞案例讲解

WEB漏洞—CSRF及SSRF漏洞案例讲解
Yatming的博客WEB漏洞—CSRF及SSRF漏洞案例讲解
pikachu上的概述
1 | 场景需求: |
CSRF解释、原理:
pikachu靶场演示
CSRF(Cross-site request forgery)跨站请求伪造,由客户端发起,是一种劫持受信任用户向服务器发送非预期请求的攻击方式,与XSS相似,但比XSS更难防范,常与XSS一起配合攻击。
先进行登陆,这里不知道密码,查看数据库,密码是md5加密的,解密之后是:123456
这里修改数据,然后用burp进行抓包
这里构造一个语句,如下
1 | <script src=http://192.168.88.148/pikachu-master/vul/csrf/csrfget/csrf_get_edit.php?sex=boy&phonenum=18888888&add=shanghai&email=hahah%40qq.com&submit=submit></script> |
然后,假设目标访问了你创建的这个文件的话,那么就会发生,下图
和XSS的区别在:XSS是直接盗取管理员的cookie,从而实现登陆后台,但是CSRF的话就是,用了一个外部网站,然后在里面插入恶意代码,只是借用了用户的权限,跟XSS不一样
如何测试网站有没有CSRF的漏洞,使用BURP上的一个模块,如下图所示
可以看到上面这个图上是有一个html的模块的,可以直接复制,也可以点击右下角的 “copy html” ,然后复制到本地,本地搭建一个环境,然后要目标用户去访问这个文件,如果目标用户的信息被修改,那么就说明存在CSRF漏洞
这是我目前的信息,然后我访问CSRF文件
可以看到有一个按钮,当我点击这个按钮的时候,就会自动跳转到目标用户的页面,并且这个信息也进行了对应的修改
可以看信息已经跟那个数据包中的数据进行了对应的修改
还有一个方法就是看数据包中是否有: “token” 这个参数
这个 “token” 有什么用,抓两次包,我修改两次不同的数据,这里的 “token” 是发生了两次变化
可以对比两张图,可以发现这个值发生了明显的变化
原理详解:
攻击者盗用了你的身份信息,以你的名义发送恶意请求,对服务器来说这个请求是你发起的,却完成了攻击者所期望的一个操作
XSS 利用站点内的信任用户,盗取cookie
CSRF通过伪装成受信任用户请求受信任的网站
利用目标用户的合法身份,以目标的名义执行某些非法参数
利用条件:已经登录系统,用户访问URL,已存在的网站中允许用户跳转
防御方案:
1.当用户发送重要的请求时需要输入原始密码
2.设置随机Token
3.检测referer来源,请求时判断请求连接是否为当前管理员正在使用的页面(管理员在编辑文章,黑客发来恶意的修改密码链接,因为修改密码页面管理员并没有在操作,所以攻击失败)
4.设置验证码
5.限制请求方式只能为POST
SSRF
知识点
SSRF漏洞解释,原理等
SSRF漏洞检测,案例,防御等
漏洞攻击:端口扫描,指纹识别,漏洞利用,内网探针等
SSRF危害:
- 扫描内网
- 向内部任意主机的任意端口发送精心构造的Payload
- DOS攻击(请求大文件,始终保持连接Keep-Alive Always)
- 攻击内网的web应用,主要是使用GET参数就可以实现的攻击(比如struts2,sqli等)
- 利用file协议读取本地文件等
各个协议调用探针:http,file,dict,ftp,gopher等
http:192.168.64.144/phpmyadmin/
file:///D:/www.txt
dict://192.168.64.144:3306/info
-
附:常用语言支持的协议
SSRF的防御
- 过滤返回的信息如果web应用是去获取某一种类型的文件。那么在把返回结果展示给用户之前先验证返回的信息是否符合标准。
- 统一错误信息,避免用户可以根据错误信息来判断远程服务器的端口状态。
- 限制请求的端口,比如80,443,8080,8090。
- 禁止不常用的协议,仅仅允许http和https请求。可以防止类似于file:///,gopher:”ftp: 等引起的问题
- 使用DNS缓存或者Host白名单的方式。
CSRF和SSRF的区别
- CSRF是跨站请求伪造,伪造的是客户端,即黑客盗用用户身份
- SSRF是服务器端请求伪造,黑客盗用服务器,一般用于从外网访问内网。
漏洞修复
1 | 1.禁止跳转 |
涉及资源:
https://pan.baidu.com/s/1bp96ECJ
https://www.t00ls.cc/articles-41070.html
https://blog.csdn.net/qq_50854790/article/details/122244662
某CMS案例
先进入这个页面,创建一个会员用户
开启这个工具的拦截
创建成功
然后访问这个文件,网上很多都是让你删除最后面的from,emmm,这里我不推荐删掉,直接访问就可以了
这里需要注意,这里如果你创建的是高级会员就不可以,需要是标准会员
成功
骑士CMS案例
后台地址:http://192.168.88.154/74cms/upload/index.php?m=admin&c=index&a=login
同样是创建用户,然后进行抓包
创建一个用户,然后改包,刷新查看,这里需要注意,不推荐用渗透版火狐,我这里直接用的火狐
看到已经创建成功了
MetinfoCMS案例
同样是创建一个管理员用户,然后进行抓包
可以看到创建成功了
除此之外其实访问那个生成的html的文件,会有一个界面这个就是管理,管理员的增删的界面,是可以直接增删的