实战中的快速代码审计

admin 2022年1月25日16:45:54代码审计评论51 views2163字阅读7分12秒阅读模式

文章来源|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.27Web高级安全攻防 第3期

火热报名中~

第三期,主要突出了学员最关心的“实战打靶”练习,第三期我们新增加了快速打点方法+脚本思路、打靶机模拟实战等内容,并配备了专门的“实战靶场”以供同学们练习!

最新课程目录3.0版

实战中的快速代码审计

*大纲仅作为参考,会根据当期进度有所变化(加客服获取高清课程导图)

课程费用

每期班定价2499新年价:1999前30名送399元Web安全知识星球名额

每个报名学员都可享受一次后续任意一期课免费重听权益,一次没学懂就再来一遍,后续培训可任选一期来听。请有意参加培训的学员抓紧报名!

凡是MS08067旗下任意星球学员或其他培训课程学员,可享内部VIP价1799

支持支付宝、信用卡、花呗分期,对公转账,可开发票!

知识星球是什么

第二期班部分学员作业

越权漏洞实战之从越权到越轨

fastjson-cnvd-2017-02833漏洞复现

CVE-2020-2551攻击实录

逆向漏洞POC 一条龙

泛微 e-office v9.0任意文件上传漏洞(CNVD-2021-49104)

聊一聊我是如何学习网络安全的(入门阶段)

使用burp插件captcha-killer识别图片验证码(跳坑记)

Grafana 任意文件读取漏洞

上课时间

开课时间1月27号,每周二天课,共8周21节课(42小时)
周四:19:30-21:30
周六:14:00-18:00
如果无法准时参加直播课程,在线培训的每节课程都会被录制成视频上传到学员区,可随时下载观看。

上课方式

培训采用在线直播+随堂录播+配套教材+配套星球+课后作业的形式,无需等待,报名后立即进入“Web安全”星球开始预习。
实战中的快速代码审计

你距离大佬,只差一个决定

报名咨询请联系小客服

实战中的快速代码审计

扫描下方二维码加入星球学习

加入后邀请你进入内部微信群,内部微信群永久有效!

实战中的快速代码审计

实战中的快速代码审计

实战中的快速代码审计

实战中的快速代码审计

实战中的快速代码审计

实战中的快速代码审计

来和5000+位同学一起加入星球学习吧!

实战中的快速代码审计

原文始发于微信公众号(Ms08067安全实验室):实战中的快速代码审计

特别标注: 本站(CN-SEC.COM)所有文章仅供技术研究,若将其信息做其他用途,由用户承担全部法律及连带责任,本站不承担任何法律及连带责任,请遵守中华人民共和国安全法.
  • 我的微信
  • 微信扫一扫
  • weinxin
  • 我的微信公众号
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年1月25日16:45:54
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                  实战中的快速代码审计 http://cn-sec.com/archives/750906.html

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: