实战中的快速代码审计
2022-1-24 08:0:0 Author: mp.weixin.qq.com(查看原文) 阅读量:141 收藏

文章来源|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+位同学一起加入星球学习吧!


文章来源: http://mp.weixin.qq.com/s?__biz=MzU1NjgzOTAyMg==&mid=2247497677&idx=1&sn=26c94fabd2cd5570154c61c2e97a3b0d&chksm=fc3c4ecccb4bc7da1f9ffcdaa5d7f4991bc1208c01981044ee1b69255bd11c182cedca883067#rd
如有侵权请联系:admin#unsafe.sh