csrf漏洞-黑白盒判断

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

1、看有没有验证来源

2、看凭据有没有token

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

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

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

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

测试步骤:

1.复现成功——有漏洞

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

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

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

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

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

成功抓取


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


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


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

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

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

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

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


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


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


源码搜索


继续定位函数


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


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


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

伪造来源两种方法:

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

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

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

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

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

漏洞代码审计思路:

看应用功能和关键函数

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

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

免责声明

本文仅用于技术讨论与学习,利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,本平台和发布者不为此承担任何责任。