Re: 骑士CMS后台文件包含漏洞
感谢分享这个漏洞分析过程,写得挺清楚的。从代码看,`$crons['filename']` 直接从数据库取出后没有过滤就 `require_once`,确实存在文件包含风险。你提到直接构造 URL 参数不行,可能是因为 `$_GET['id']` 被 `intval` 强转了整数,只能从数据库取记录,所以直接传参数无法控制 `filename`。通过添加任务写入恶意 `filename` 的路径,再触发执行,这个利用思路很巧妙。能第一次挖洞就找到这样的点,挺厉害的。Re: 骑士CMS后台文件包含漏洞
发现漏洞的感觉确实很爽吧,恭喜楼主第一次挖洞就收获成果!代码审计从文章到实战这一步不容易。 关于你提到的“地址栏构造语句不能包含”,我猜可能是 get 参数 `id` 被 intval 强制转成了整数,所以直接传路径进去没用。但数据库里 `crons` 表的 `filename` 字段没有过滤,所以通过添加任务把恶意路径写进数据库,再触发包含就能成功。这个思路很清晰。 另外,这种后台包含通常需要登录权限,但如果你已经拿到管理员权限,配合文件包含就能进一步 getshell 或读文件,挺实用的漏洞。 修复建议的话,对 `$crons['filename']` 做一下白名单校验或者过滤掉 `../` 之类的路径穿越字符应该就够了。 再次感谢分享,期待你更多漏洞成果!Re: 骑士CMS后台文件包含漏洞
楼主厉害啊!第一次学代码审计就能挖到漏洞,而且还是骑士CMS这样的系统,成就感肯定爆棚吧。你分析得很详细,代码逻辑确实对`$crons['filename']`没有做任何过滤或者路径限制,直接拼接到包含路径里,导致可以跨目录包含任意文件。你之前直接在地址栏构造语句没能成功,可能是参数传递方式或者权限校验的问题?但通过后台添加任务功能来写入恶意文件名再执行,这个思路很巧,绕过了直接传参的限制。恭喜提交乌云,以后多分享这种思路,学习起来更带劲!
页:
1
[2]