标题 | 简介 | 类型 | 公开时间 | ||||||||||
|
|||||||||||||
|
|||||||||||||
详情 | |||||||||||||
[SAFE-ID: JIWO-2025-3518] 作者: ShYLie 发表于: [2025-03-14]
本文共 [0] 位读者顶过
有学生提问: 对于Web类的漏洞挖掘(包含逻辑类型),有什么更好的挖掘思路?(发现非历史漏洞的新漏洞点,偏0day挖掘方向) 简单理一下逻辑: 1. 0Day Web漏洞挖掘 2. 逻辑漏洞挖掘
[出自:jiwo.org] 0x01正文 首先,针对于0Day的Web漏洞挖掘,能够肯定的方向一定是从代码审计开始,因为从黑灰盒角度来说,光是找该CMS框架的站点都已经够呛了;其次也没有获得授权。
那么,其实这个问题就已经有点奇怪了。因为,从代码角度的来说,逻辑漏洞是很难被发现的,逻辑漏洞更多的是使用黑盒测试以发现问题。
代码审计实战
这里推荐使用CodeQL和Fortify,CodeQL偏向于Java代码审计,而Fortify类似于加强版的Seay代码审计工具,它拥有更强大的规则库。
Fortify自动化审计
1. 安装完成后,运行安装目录下的 bin/auditworkbench.cmd,打开Fortify自动化审计工具。(这里我重命名为fortify. cmd,并添加到桌面快捷方式,方便打开)
2.如果已经审计过的项目在,则选择Recent Projects双击打开(跳过3、4步骤);反之,选择Start New Project
3.如果是Java项目,这里我们选择ScanJavaProject;如果是其他项目,选择Advanced Scan,Fortify会自动帮我们识别对应的开发语言(这里我们选择Advanced Scan),然后选择对应的文件夹。
4. 如果规则有更新,会提示是否更新规则(看个人意愿,可以不更新,网上有破解的规则库)
5. 填写本项目代码审计的相关配置
a. 配置对应的输出文件位置(个人习惯放置在项目源码根目录下),然后选择Next
b.选择Scan开始扫描
c.扫描过程中会存在弹窗显示进度,可以将弹窗缩小,选择Run in Background
d.扫描结束后,可以在主页面中查看可能存在的漏洞
e.选择一个比较好攻击的漏洞进行测试
i.左上方(①处)显示的是可能存在的漏洞点
ii.左下方(②处)显示的是该漏洞点对应的利用链
iii.右侧(③处)显示的是具体的源代码细节
f.比如此处,可以根据源代码综合判断:
i.第19行以 $REQUEST['rec'] 的方式获得参数值并赋值给 $rec
ii.第22行将$rec的值赋给assign函数,并传到$smarty类
iii.第111行使用 display函数将 $smarty 中的内容套用对应模板并进行输出
该流程符合XSS利用条件:输入内容并未进行过滤而直接输出在页面上,所以该处可能存在XSS漏洞
g. 验证漏洞是否存在:
|