CSRF-代码审计+检测绕过

admin 2024年3月19日16:43:23评论5 views字数 888阅读2分57秒阅读模式

csrf漏洞-黑白盒判断

CSRF安全问题黑盒怎么判断:

1、看有没有验证来源

2、看凭据有没有token

3、看关键操作有没有验证

修复:把上述三点变成有即可

CSRF安全问题白盒怎么审计:

同黑盒思路一样,代码中分析上述三看

测试步骤:

1.复现成功——有漏洞

2.复现失败——看代码——缺陷过滤(成功绕过)——有漏洞

3.复现失败——看代码——完美过滤(无法绕过)——没有漏洞

案例一:自动添加管理员用户(无过滤)

测试源码名称:发货100 - 虚拟商品自动发货系统

使用CSRFTester工具抓取添加管理员用户的请求数据包

CSRF-代码审计+检测绕过

成功抓取

CSRF-代码审计+检测绕过

保存数据包为html文件,将文件放到服务器让目标管理员访问。

CSRF-代码审计+检测绕过

目标管理员访问链接,成功创建管理员用户

CSRF-代码审计+检测绕过

使用工具Seay源代码审计系统查看源码添加管理员用户的功能点发现没有进行csrf的相关过滤

CSRF-代码审计+检测绕过

案例二:自动添加管理员用户(有过滤)

测试源码名称:Z-BlogPHP——由Z-Blog社区提供的博客程序

使用CSRFTester工具抓取添加管理员用户的请求数据包

CSRF-代码审计+检测绕过

数据包保存为html文件导出,打开文件删除除了添加管理员用户的其他表单,将文件放到服务器让目标管理员访问

CSRF-代码审计+检测绕过

目标管理员访问链接,提示”非法访问“,并没有添加用户

CSRF-代码审计+检测绕过

进行代码审计,根据请求地址得到代码文件

CSRF-代码审计+检测绕过

源码搜索

CSRF-代码审计+检测绕过

继续定位函数

CSRF-代码审计+检测绕过

再次定位,成功找到过滤代码,检测了请求来源”Referer“。

CSRF-代码审计+检测绕过

检测代码的意思就是:收到请求时检测请求里的referer值是否和Host值相同,不相同就不执行请求。

CSRF-代码审计+检测绕过

那么我们就要伪造来源绕过检测

伪造来源两种方法:

1.伪造——需要在添加管理员用户的请求数据包文件中”固定来源“

2.借目标——在目标网站寻找可上传地方,上传请求数据包,获取目标同域名访问地址。

网站没有上传地方,使用第一种方法,浏览器搜索referer伪造代码,更改对应的值即可。

把伪造来源的php文件放到能让目标访问的服务器上

目标访问链接,成功绕过来源检测创建管理员用户

CSRF-代码审计+检测绕过

漏洞代码审计思路:

看应用功能和关键函数

1.特定漏洞功能——》代码端分析审计

2.特定漏洞函数——》测试对应功能判断

原文始发于微信公众号(小黑子安全):CSRF-代码审计+检测绕过

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年3月19日16:43:23
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   CSRF-代码审计+检测绕过http://cn-sec.com/archives/2580683.html

发表评论

匿名网友 填写信息