0Day挖掘浅析

文章来源|MS08067红队手册

本文作者:Hong2x

有学生提问:

对于Web类的漏洞挖掘(包含逻辑类型),有什么更好的挖掘思路?(发现非历史漏洞的新漏洞点,偏0day挖掘方向)

简单理一下逻辑:

1.  0Day Web漏洞挖掘

2.  逻辑漏洞挖掘       

0x01 正文

首先,针对于0Day的Web漏洞挖掘,能够肯定的方向一定是从代码审计开始,因为从黑灰盒角度来说,光是找该CMS框架的站点都已经够呛了;其次也没有获得授权。

那么,其实这个问题就已经有点奇怪了。因为,从代码角度的来说,逻辑漏洞是很难被发现的,逻辑漏洞更多的是使用黑盒测试以发现问题。

所以,代码审计对于我们来说固然重要。那么如何开展代码审计工作呢?

1. 判断CMS类型,根据CMS的类型可以判断其大致功能业务。现在比较多的CMS是电商类的CMS,那可能就会存在较 多的支付模块或者是客服咨询模块。那就可以多针对支付的薅羊毛、支付回调等漏洞进行重点研究。如果是一些类似于网盘、云存储等CMS,就可以针对于文件上传及AK、SK泄露等漏洞进行重点研究。

2. 代码审计:代码审计又分为两个部分,一部分为自动代码审计,一部分为手动代码审计;而由于时间、技术、工期等复杂关系,我们通常会选择使用自动化代码审计工具。

代码审计实战

这里推荐使用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.  验证漏洞是否存在:

—  关于我们 —

江苏刺掌信息科技有限公司成立于2021年,公司旗下MS08067安全实验室,专注于网络安全领域教育、培训、认证产品及服务提供商。近两年,线上培训人数近10万人次,培养网络安全人才近6000名。

公司被认定为国家高新技术企业、镇江市创新性中小企业、江苏省科技型中小企业、江苏省民营科技企业、江苏省软件企业。并荣获机械工业出版社“年度最佳合作伙伴”、电子工业出版社-博文视点“优秀合作伙伴”、镇江市企业发展服务中心优质合作伙伴、镇江市网络安全应急支撑服务单位等荣誉称号。

实验室出版图书:

图片

图片

如果喜欢本文
欢迎 在看丨留言丨分享至朋友圈 三连
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值