#Author: Ting丶
#该文章只做教学使用,请大家在授权情况下做测试
SRC分类
公益SRC/企业SRC
SRC挖掘
公益SRC挖掘
补天/漏洞盒子/CNVD
补天漏洞门槛要高一些审核较快
漏洞盒子什么洞都收,包括反射XSS,审核很慢
CNVD事件型漏洞工作日第二天基本就审了,很快,范围也大
怎么刷分?
找1day/nday,配合nuclei通杀
POC 网上有现成的,转换成nuclei对应的yaml格式
POC在哪找?
公众号/知识星球/CSDN/漏洞文库/漏洞公布平台
https://vuldb.com/?submit
这里会看到有github的链接,里面就会有具体的漏洞详情
进入链接,就可以看到数据包了 也就是漏洞详情
不会转换怎么办?
https://github.com/projectdiscovery/nuclei-ai-extension
如果是老CVE,可以自动生成CVE对应的yaml,如果是较新的CVE可以通过数据包来生成
自己挖通杀(下面讲)
EDUSRC挖掘
通杀
org: “China Education and Research Network”
去找通用系统直接挖,icon大于多少的系统
举例:若依弱口令、springboot配合SpringBoot-Scan工具、thinkphp-RCE
favicon: "0488faca4c19046b94d07c3ee83cf9d6" or app: "SpringBoot框架"
推荐工具:https://github.com/AabyssZG/SpringBoot-Scan
端口通杀?
org: “China Education and Research Network” AND service: “mysql” port:“3306”
(如果搜端口,可能3306不一定是mysql,mysql也不一定在3306,所以直接搜服务)
3306弱口令、ssh弱口令(少)、1433弱口令、6379未授权/弱口令、ActiveMQ、Rabbitmq、docker未授权…
Active MQ 未授权访问
Atlassian Crowd 未授权访问
CouchDB 未授权访问
Docker 未授权访问
Dubbo 未授权访问
Druid 未授权访问
Elasticsearch 未授权访问
FTP 未授权访问
Hadoop 未授权访问
JBoss 未授权访问
Jenkins 未授权访问
Jupyter Notebook 未授权访问
Kibana 未授权访问
Kubernetes Api Server 未授权访问
LDAP 未授权访问
MongoDB 未授权访问
Memcached 未授权访问
NFS 未授权访问
Rsync 未授权访问
Redis 未授权访问
RabbitMQ 未授权访问
Solr 未授权访问
Spring Boot Actuator 未授权访问
Spark 未授权访问
VNC 未授权访问
Weblogic 未授权访问
ZooKeeper 未授权访问
Zabbix 未授权访问
NOCOS 未授权
........
mysql弱口令
推荐工具:https://github.com/lz520520/railgun/releases
超级弱口令:https://github.com/shack2/SNETCracker/releases/tag/1.0.20190715
redis没数据不收?
大概率留有后门 提交EDU威胁情报
推荐使用redisplus来看,更齐全,更方便,还能看到是哪个服务器在连接使用该redis
别人刷过了还刷?
学校肯定会上新的系统,就会有新的redis,mysql…,就会有新的rank
前台很难出洞?
代码审计
源码怎么获得?
github,开源中国,gitee…
听说有的师傅是…
怎么快速从源码找到漏洞?
使用了shiro,就找shiro的key,刷shiro反序列化
看配置文件、可能数据库密码是通用,刷数据库弱口令、还有redis密码
组件历史漏洞,log4j、fastjson、一些框架漏洞
seay-快速找SQL注入…
黑盒供应商系统
一个系统多个漏洞,通杀刷几遍
例如:前台万能密码、后台SQL注入、测试未授权、通用弱口令
供应商的某个系统,存放大量学校系统的账号密码,弱口令刷一遍
案例
点击忘记密码
账号system
密保答案都是1(默认答案)
案例
刷elasticsearch未授权
案例
刷mysql默认密码
案例
刷弱口令
刷未授权
案例
刷万能密码
刷弱口令
语法
#建议打中小学资产
QUAKE语法
((((title:"中等专业学校" OR title:"职业技术" or title:"小学" OR title:"初中" OR title:"高中" OR title:"附属中学" OR title:"一中" OR title:"二中" OR title:"中学" OR title:"中等专业学校") AND (title:"系统" OR title:"登录" OR title:"Login" OR title:"平台" OR title:"管理" OR title:"后台" OR title:"教育局"OR title:"物联网"OR title:"大数据"OR title:"监测")) AND country_cn: "中国") AND NOT province_cn: "台湾省"
FOFA语法
(title="中等专业学校" || title="职业技术" || title="小学" || title="初中" || title="高中" || title="附属中学" || title="一中" || title="二中" || title="中学" || title="中等专业学校") && country="CN" && region!="HK" && (title="系统" || title="登录" || title="Login" || title="平台" || title="管理" || title="后台" || title="教育部" || title="教育局" || title="物联网" || title="监测" || title="采集" || title="大数据")
老实挖
测前台
第一步弱口令,有则有,无则无,能爆破可以实时爆破,包括爆破密码、爆破用户名、登陆SQL注入,测注册的逻辑、测修改密码的逻辑
案例
1=1是显示密码不正确 说明admin是存在的sql语句返回了true
1=2的时候显示账号不存在说明返回了false
如果密码加密怎么爆破?
如果能够逆向出来可以配合burp插件BurpCrypto,自己写加密算法
首先分析js获取加密算法,加密算法是
function calc(pass) {
return md5("username"+md5(pass).toLowerCase()).toLowerCase();
}
配置爆破插件
推荐工具:https://github.com/whwlsfb/BurpCrypto
第二步目录扫描(也可以是第一步),有自己的字典checklist最好,如果一开始是空白页面,也可能能扫出该站点的其他应用来打
第三步找接口、测接口
接口怎么找?
FIndsomething、jsfinder、分析js、js.map还原
restore-source-tree abcd.js.map
第四步JS分析
测后台
测SQL,找desc/asc/ordeyby
推荐工具:https://gitcode.com/smxiazi/xia_sql/overview
案例
测未授权/越权
推荐工具:https://gitcode.com/smxiazi/xia_Yue/tree/main
测逻辑
将类似id,phone,username修改为其他平级用户的,让后端认为是在对其他用户进行操作
案例
案例
将以上类似参数(还有role)修改为管理员的 role=1 id=0或1 username=admin
案例
修改返回包
修改为YES
如果数据包加密?
需要js逆向了,抓发包的一瞬间,查看调用栈,找到调用接口的位置,在参数加密之前,使用浏览器控制台修改参数
再讲springboot
https://github.com/LandGrey/SpringBootVulExploit
使用spring框架的系统很多
水分的姿势很多
env泄露 1rank
heapdump泄露 2rank
有数据库密码,可连接 4rank+
有AK/SK且有效 接管后有服务器 高危6rank+
有shiro密钥 能getshell 高危6rank+
httptrace泄露 有泄露敏感信息 1rank
如果泄露了有效token cookie 可以构造数据包获得数据 2-3rank+
spring cloud gateway RCE(env里可以看到)
.........
案例
案例
尝试连接
连接成功
案例
案例
获得token:
使用有效的token构造数据包 如下
案例
可以看到有gateway
创建路由
refresh…后访问 返回命令执行的结果
被动递归目录扫描BP插件
发现为常规路径的druid/swagger/actuator
推荐工具:https://github.com/F6JO/RouteVulScan
企业SRC挖掘
不放过任何功能点
不放过任何返回包
不放过任何参数
针对业务挖掘
当文件上传处 文件名字或者文件路径可控 可以造成任意文件删除
burp全局搜索 =http eyJ0 token
接口与参数绑定关系,这个接口是30,那个接口是100,把100的货号放30的接口
注册时,用户名枚举
优惠价重复使用 在生成订单 时记录该订单界面 点击返回 界面 导致优惠卷退回 在回到刚才订单界面 不消耗优惠卷
将limit或者size调大,实现越权
账号绑定时,替换手机号或者用户名 实现接管
有手机号的地方双写手机号,同时获取到验证码实现接管
phone=13333333333&phone=18888888888
phone=13333333333,&phone=18888888888
凭证过早返回,还没登陆时候就返回了可以找接口试试
收藏点赞并发,取消收藏点赞并发
签约漏洞,第一次签约后取消签约,再去充值。
在低价签约的页面,停留,两个设备,在低价充值
创建多个订单,锁定库存,让用户无法购买商品
size等参数 造成DDOS
越过审核,将相关状态码参数改为2,3(1为待审核)
将二维码,转url,可能里面有url=,造成url跳转
..................................
如果能进一个系统,就逮着一个系统hao
SRC挖掘的思路很多,多看一些报告,多动手挖掘,多分析功能业务逻辑。
思路太多、说不完…
证书挖掘
EDU证书挖掘
有VPN
直接进VPN,测各种系统,思路同上
有认识的同学,可以远程,连校园网、直接打内网
学校二手群/闲鱼…
有的师傅是社工…
VPN密码有规律可以爆破
无VPN
常规思路挖掘
云/供应商
怎么收集云/供应商的资产?推荐使用国内Hunter
(web.title="xx大学" or web.body="xx大学") and (icp.name!="xx大学") and (web.title="系统" or web.title="平台" or web.title="管理" or web.title="后台") and ip.country=="CN"
国外Hunter 能搜到意想不到的资产
https://hunter.how/
结果
CNVD证书挖掘
事件型
Hunter语法搜偏远资产 容易驳回
(web.title="运营商" or web.body="运营商") and (icp.name!="运营商") and (web.title="系统" or web.title="平台" or web.title="管理" or web.title="后台") and ip.country=="CN"
(icp.name="运营商") and (web.title="系统" or web.title="平台" or web.title="管理" or web.title="后台") and ip.country=="CN"
通用型
找硬件设备例如路由器,可交通用弱口令(web是不收的)
设备的命令执行
怎么找设备?
针对一个销售设备的公司,通常其产品都是相同ICON,就去搜icon,找通用系统/设备直接刷
去公司官网找他的产品
#可以自己完善语法 抛砖引玉
title:"路由器" or title="打印机"
如果有的系统icon换了怎么办?
如果要刷不同型号的设备,但是不同型号icon都一样怎么区分?
加上body:“型号”
为什么有的师傅能够一口气“出20本CNVD”?
…
正常代码审计
源码获取方式同上
关注国外一些漏洞
CVE挖掘
#必须是通用型 不收弱口令
找通用系统,交了CNVD之后交CVE,可以同时获取CNVD和CVE
代码审计重复的CNVD漏洞拿去交CVE
网上公布的CNVD通用漏洞,但是没交过CVE的,可以…(不道德但…)
学习漏洞挖掘的正确顺序
当然,学习漏洞挖掘之前,需要掌握以下几个方面的内容:
编程语言和计算机基础知识
在漏洞挖掘过程中,挖掘者需要编写代码来验证和利用漏洞,因此需要至少掌握一种编程语言,如 C、Python、Java 等。同时,还需要了解计算机的基础知识,例如计算机系统的组成结构、操作系统的原理、计算机网络的基本概念、数据库的工作原理等。如果没有这方面的基础知识,就很难理解漏洞挖掘中所需要的各种技术和工具。
安全基础知识
漏洞挖掘是一项安全工作,因此需要掌握一些安全基础知识,例如 Web 安全、网络安全、应用程序安全、二进制安全等。建议挖掘者先学习一些基础的安全知识,例如 OWASP Top 10 漏洞、常见的网络攻击技术和漏洞类型等,这可以帮助挖掘者更好地理解漏洞挖掘中所面临的问题和挑战。
漏洞挖掘工具
学习漏洞挖掘需要掌握一些常用的漏洞挖掘工具,例如 Burp Suite、Metasploit、Nmap、Wireshark、IDA 等。这些工具可以帮助挖掘者加速漏洞挖掘的过程,同时也能帮助挖掘者深入理解漏洞的原理和产生的原因。例如,Burp Suite 可以帮助挖掘者拦截和修改 HTTP 请求,Metasploit 可以帮助挖掘者构造攻击载荷等。
学习漏洞挖掘技巧和方法
学习漏洞挖掘需要了解一些常用的技巧和方法,如 Fuzzing、代码审计、反向工程、漏洞利用等。这些技巧和方法能够帮助挖掘者更快速地发现漏洞,并且深入理解漏洞的原理和利用方式。例如,Fuzzing 可以帮助挖掘者通过自动生成大量的输入数据,来测试程序是否存在漏洞,代码审计可以帮助挖掘者通过分析代码来发现漏洞等。
总的来说,学习漏洞挖掘需要综合掌握多方面的知识,包括编程、计算机基础知识、安全基础知识、漏洞挖掘工具以及漏洞挖掘技巧和方法。建议先从基础知识入手,逐步深入学习,不断实践,并在实践中发现和解决问题,才能逐渐成为一名优秀的漏洞挖掘者
五. 写在最后
希望这篇文章在可以帮助你解开一些对于漏洞挖掘的谜团。在学习和研究漏洞挖掘的过程中遇到困难并感到不知所措是很正常的。不过学习的过程就是这样,只有不断的去尝试才会进步。祝你在漏洞挖掘的路上走的越来越远。
《网络安全/黑客技术学习资源包》全套学习资料免费分享,需要有扫码领取哦!