文章来源|MS08067 红队培训班 第5期
本文作者:山(红队培训班5期学员)
目录
步骤一 获取源码
1. F12-开发者工具
2. 源码网站
3. 网站找盗版源码
4. 简单粗暴法
5. 家里有矿
6. dirsearch
步骤二 快速审计
1. 傻瓜式工具
2. 组件入手
步骤一 获取源码
1. F12-开发者工具
1.1 思路一
看是不是一个CMS。
1.2 思路二
js代码里面可能有些注释直接标注了username和password,或者账号密码配对是在前端验证而不是后端验证,也就是说直接能在js里看到if username=xxx, password=xxx:
1.3 思路三
title在FOFA搜,有很多结果就说明搜出了对的CMS名称,搜索格式:body:"XXX" XXX就是js代码,或者URL里面 ?后面的部分
2. 源码网站
https://github.com/
或者
https://gitee.com/
搜索扫出的CMS名称
3. 网站找盗版源码
3.1 https://down.chinaz.com/
3.2 https://bbs.52jscn.com/
4. 简单粗暴法
渗透过程中获取目标权限后,直接拖源码下来
5. 家里有矿
官网买
6. dirsearch
工具下载地址:https://github.com/maurosoria/dirsearch
FOFA搜一个CMS,扫出一堆URL,创建并放到url.txt中,将url.txt放到dirsearch目录下,用 dirsearch -l 指令去扫。哪个运维把备份文件压缩包放到web目录下的,就可以被扫出来,备份文件压缩包里就是CMS源码。拖出来就可
步骤二 快速审计
1. 傻瓜式工具
veraCode: https://download.csdn.net/download/hkaco2012/4116970
fortify: https://github.com/laravel/fortify
2. 组件入手
2.1 新模式:maven
pom.xml就是目标的弱点图谱!第三方的包最可以导致RCE
尤其是见到commons-collections commons-beautils 就可能有反序列化漏洞
或者dependency的每一项都可以在搜索引擎搜“XXX漏洞”
rabbitmq或者什么mq,一般是4369端口,weblogic是7001端口。不只局限于80端口
2.2 旧模式
project有lib文件夹,里面会有组件列表(一堆jar包)。而不是都会有pom.xml的。lib是静态引入,pom.xml是动态引入
2.3 SQL注入
框架发展史
第一阶段 SSH: Spring+Hibernate+struts
第二阶段 SSM: spring+mybatis-持久层+springmvc
springboot(是SSM的封装)+springcloud(多个springboot)
不存在注入的情况:
mybatisplus, #{}: ”SQL注入,我们是你的破壁人“
mybatisplus jar包:自动编写SQL语句,不会存在用户编写SQL语句的情景,所以不会有SQL注入的问题
存在注入的情况:
但如果是mybatis写SQL,还是存在SQL注入的可能,情景如下:
1、 xml:folder/.xml,程序员所有的SQL语句全部放到xml文件中
2、 源代码
#{} :预编译解决了SQL注入问题,用这方式来接参数:例:#{id},不存在SQL注入漏洞
${}:存在SQL注入问题,例:${id'} 可能就会报错了
挖漏思路
所以IDEA全局搜索 ${ 找到就说明有SQL注入
但是处于表名处,则不一定:
select * from ${表名},往上查,如果是是用户可控的,则存在SQL注入;如果是写死的,就不存在SQL注入
情景:往上查,参数--方法,到头了就双shift继续往上找,比如下面这样到头了,这算是MVC 用户输入,可控,所以存在漏洞
2.4 文件上传漏洞
SpringBoot: "文件上传,我是你的破壁人"
不存在漏洞的情况:
白盒角度:如果是springboot的jar包或者pom.xml里面有springboot:
黑盒角度:如果web指纹识别看到springboot:
则不存在文件上传的漏洞,因为springboot不解析.jsp文件,你上传上去之后,URL访问这个jsp的时候,浏览器会把jsp内容直接打印出在页面上
存在漏洞的情况:
双shift:搜upload或者filename 找.jsp结尾的。(.js的不行,js是前端代码)
案例
不对后缀名进行校验
2.5 XSS
框架发展过史
前端框架演进过程:js-->jquery-->layui-->bootstrap-->vue(VUE作为新型前端框架,采用预编译的技术解决了XSS的问题)
不存在漏洞的情况:
VUE, XSSfilter: "XSS,我们是你的破壁人"
前端采用VUE 或者 react, angular框架,抑或是后端代码对输入采用了XSSFilter机制过滤的话,就不存在XSS注入漏洞
数据运转流程:
前端--> -后端(这个步骤中也可以拦截,双shift搜索xssfilter,java官方给的解决方案)->数据库 数据完成存储 后端请求数据库,数据库响应,值返回前端(这个阶段可以拦截,VUE执行预编译,防止浏览器渲染XSS)
1.27号 Web高级安全攻防 第3期
火热报名中~
第三期,主要突出了学员最关心的“实战打靶”练习,第三期我们新增加了快速打点方法+脚本思路、打靶机模拟实战等内容,并配备了专门的“实战靶场”以供同学们练习!
最新课程目录3.0版
*大纲仅作为参考,会根据当期进度有所变化(加客服获取高清课程导图)
课程费用
每期班定价2499,新年价:1999(前30名送399元Web安全知识星球名额)
每个报名学员都可享受一次后续任意一期课免费重听权益,一次没学懂就再来一遍,后续培训可任选一期来听。请有意参加培训的学员抓紧报名!
凡是MS08067旗下任意星球学员或其他培训课程学员,可享内部VIP价1799;
支持支付宝、信用卡、花呗分期,对公转账,可开发票!
知识星球是什么?
第二期班部分学员作业
上课时间
开课时间1月27号,每周二天课,共8周21节课(42小时)
周四:19:30-21:30
周六:14:00-18:00如果无法准时参加直播课程,在线培训的每节课程都会被录制成视频上传到学员区,可随时下载观看。
上课方式
培训采用在线直播+随堂录播+配套教材+配套星球+课后作业的形式,无需等待,报名后立即进入“Web安全”星球开始预习。
你距离大佬,只差一个决定
报名咨询请联系小客服
扫描下方二维码加入星球学习
加入后邀请你进入内部微信群,内部微信群永久有效!
来和5000+位同学一起加入星球学习吧!