通用0day挖掘思路

通用0day挖掘思路

迪哥讲事 2024-03-25 21:23

No.0

前言

一直以来都想写一篇挖通用漏洞的文章,但是因为种种原因(懒得很),但是总不能一直不写吧,因为每天都在挖洞,每天都会有新的不同的思路,自己也很努力的在学php、java基础,想为以后学代码审计做准备,但是在此之前,还是想给大家一些不会代码审计怎么挖掘通用漏洞的思路,每挖到一个漏洞都要看看这个漏洞是不是通用的,养成良好的习惯。我之前也不会挖通用漏洞,但是有一天就是开窍了一样,或者就是运气好吧。

No.1

0day和通用漏洞的理解

0day,就是未被公开的安全漏洞,被称为零日漏洞,可能已被攻击者发现并使用了一个小时、一个月,甚至更长时间。

姑且来说0day就像CVE一样,是一个之前未被发现,直到被人提交到CVE平台后才被公开,被大众所知。CVE一般来说比较容易成功提交,审核时间在1周到一个月,可能我提交的漏洞都是比较简单的,也不是什么代码审计审出来的,所以通常审核时间在一周就给我发编号了。像CMS、CVE计划中、开源软件、系统的漏洞。用寻找到的目标,来发现漏洞。

CVE提交流程:

1、提交地址

https://cveform.mitre.org/

选择CVE ID进行申请

2、页面填写规范

在Email处,填写接收CVE官方的通知邮件的收件箱

选择提交的CVE数量,同时确认此漏洞没有被CVE发布编号进行

选择所提交漏洞的类型

一般我都是交反射存储型XSS,因为这种简单的漏洞或者资产少的漏洞,CNVD是不收的,所以我一般是能交CNVD就交CNVD,CNVD不要的,我再交到CVE上来,混一个编号

首先是选择一个漏洞类型,这个大家只要翻译一下,看着选就好了

因为没有那么多的漏洞类型,所以大家选择差不多的就可以了

发现漏洞的平台,可以是github,也可以是CMS或者是电商系统那种的官网

产品的名称一定要了解清楚,同时版本号如果实在是不知道就填null

厂商可以去发邮件告知,也可以在github的源码评论区中发送告知

漏洞复现的类型是看本地复现还是公网复现的

攻击手段有代码执行其他等等,一般选择代码执行就可以了

受影响的组件,比如是评论区呀,收货地址呀,这些都要通过翻译进行填写上去

POC这个不用多说,怎么复现的,怎么写

漏洞描述一下有什么危害,代号写一下

最后两个可以填一样的,就是github上发布跟此漏洞相关的就行

最后就是看清楚验证码进行提交即可,过几分钟CVE就发邮件给你,告知分配下去了

通用漏洞,就是通用型,POC通通都适用,类似于0day的概念。

CNVD平台的收录条件很严,收录标准更是苛刻形容

通用型漏洞得十个网络案例以上

事件型漏洞必须是三大运营商(移动、联通、电信)的高危漏洞,或者党政机关、重要行业单位、科研院所、重要企事业单位(如:中央国有大型企业、部委直属事业单位等)的高危事件型漏洞才会颁发原创漏洞证书。

No.2

通用漏洞的挖掘方法

通用是你自己挖到的从未没公开过或者有细节的漏洞叫通用

我觉得挖掘通用漏洞是从点到面,我都是发现了某个漏洞点,后面发现不对劲,感觉这站点是CMS,或者还有其他网站在用这种感觉。不管是渗透测试还是代码审计还说,都是唯手熟尔。没有捷径可走,都是遇到的问题多了,下次就能记住,并且能成功发掘出来,我觉得技术这种东西就是比昨天多一点,比明天少一点。

真的想挖掘通用漏洞的方法还是要有针对性的目标和漏洞挖掘,首先来给本章定一个基调,那就是挖掘一个通用的漏洞。

首先看这样一个页面,判断为邮箱登录账号密码,本来目的是测试有没有sql注入,万能密码绕过,再不济看看网站有没有弱口令爆破的,没成想测出来反射型的XSS漏洞,而后又因为一些比较明显的特征发现了通用性

已知此处有漏洞,该如何发现是通用漏洞?

三个点:

1、logo,也被称为icon

2、模板,也被称为标识符

3、特定的title

看一下这个页面,可以直接插入payload测试出是否会包含在html页面中

[email protected]<script>alert('XSS')</script>

可以看到在XSS中的单引号转义,这种情况我一般直接去掉单引号

发现还是被上面参数包裹,现在就是要闭合上面的,跳出来进行执行语句

locks未弹窗

"<zzz><script>alert(locks)</script>

数字却弹窗了

"<zzz><script>alert(666)</script>

用document.cookie弹出cookie

分析为什么字符不弹,数字却弹窗了

<input type="text" name="email" value="[email protected]\" <zzz=""><script>alert(666)</script>" class="input-block-level" placeholder="E-Mail address" /&gt;

将payload插入到元素的value属性中。这种情况下,脚本并不会执行,因为value属性的值不会被解释为JavaScript代码。

使用

`<script>alert(locks)</script>

,但浏览器不会将其视为有效的JavaScript代码,因为它被包含在value属性中

使用

<script>alert(666)</script>`,

,同样,浏览器也不会将其视为有效的JavaScript代码,因为它也被包含在value属性中。然而,在某些情况下,浏览器可能会尝试进行一些自动的HTML修复,而且这种行为可能因浏览器而异。这就是为什么它可能触发了警报框的原因。

No.3

通用漏洞案例研究

实际通用漏洞案例分析

看见这个聊天框发送,一开始是想测这个发送到页面是否存在XSS或者SQL注入的

经过测试发现没有

后面转移思路,发现这个可以捕获到IP地址

成功打出XSS,SQL注入不存在

发现漏洞后,进主页看logo和title用hunter或者fofa查就行

No.4

挖掘通用漏洞结论

简单来说就是黑盒测 然后用logo title 关键字上hunter等工具查是不是通用的就行

可以再进一步搜索这个公司乃至这个系统历史漏洞。

参考链接:

https://mp.weixin.qq.com/s/1YZ3NqT3vRjnys8pTcESgQ

如果你是一个长期主义者,欢迎加入我的知识星球,我们一起往前走,每日都会更新,精细化运营,微信识别二维码付费即可加入,如不满意,72 小时内可在 App 内无条件自助退款前面有同学问我有没优惠券,这里发放100张100元的优惠券,用完今年不再发放

往期回顾

dom-xss精选文章

年度精选文章

Nuclei权威指南-如何躺赚

漏洞赏金猎人系列-如何测试设置功能IV

漏洞赏金猎人系列-如何测试注册功能以及相关Tips