SEC学习2023版-0020
OA系统可以通过CMS识别到
前后端&框架&组件
后端&前端
CMS:一般PHP开发居多源码程序
(利用源码程序名去搜漏洞情况,源码去下载进行后期的代码审计)
js 框架(爬取更多的js从里面筛选URL或敏感泄漏key等)
也是可以通过对js代码逻辑进行代码审计
框架&组件
框架:
- 简单代码的一个整合库,如果使用框架就只需要学习使用框架调用即可
- java居多,常见有过安全漏洞组件(shiro solr log4j sprintboot等)
如:文件上传功能是需要很多代码来实现的,框架把这个代码进行封封装,调用即可
影响:如果采用框架开发,代码的安全性是取决于框架的过滤机制
组件:第三方的功能模块(日志记录,数据监控,数据转换等)
php java python都有,但PHP和Python组件较少。
专门搞某一件事情。
Web架构分类
1、最简单最入门的开发模型 - (功能代码全部手写)
安全角度:最容易出现漏洞,程序员水平不一,没有第三方或团队的检测,单纯的自己写
2、结合开发框架的开发模型 - (以框架为核心实现功能)
功能直接调用,只需要懂的如何使用即可。
安全角度:第三方或团队的开发的封装代码框架,一般内置的过滤机制( 框架漏洞 )
3、结合开发框架外加组件模型 - (以框架为核心,组件为辅实现功能)
安全角度:第三方或团队的开发的封装代码框架,一般内置的过滤机制( 框架和组件漏洞 )
指纹识别-本地工具-GotoScan(CMSEEK)
GotoScan:针对内网环境进行CMS识别。
1、在线平台见前面课程,本地工具适用于不出网环境
2、网络空间:Fofa Quake Hunter
3、网络空间:IO图标关系
Python&PHP&Java框架
Set-Cookie特征:使用的人多了,注意安全问题所产生的固定格式,如TOKEN。
插件不一定可以识别得出框架。
Python-开发框架-Django&Flask-(CTF考过)
漏洞扫描工具:tidesec(要VIP)
Django
1、识别插件
2、Set-Cookie:expires=
Flask
1、识别插件
2、Set-Cookie:expires=
PHP-开发框架-ThinkPHP&Laravel&Yii
ThinkPHP:
0、识别插件
1、X-Powered-By: ThinkPHP
2、CMS识别到源码体系TP开发
Laravel:
1、识别插件
2、Set-Cookie中特征的格式
Yii:
1、识别插件
2、Set-Cookie中特征的格式
Java-框架组件-Fastjson&Shiro&Solr&Spring
52类110个主流Java组件和框架介绍
好几个爆过漏洞:Log4j2,Shiro,jjwt,Spring等。
Fastjson/Jackson
在提交JSON数据包中修改测试:
- Fastjson组件会把01解析成1
- Jackson组件在解析01时会抛出异常
浅谈黑盒识别Fastjson/Jackson组件
扫描器
Shiro
请求包的cookie中存在rememberMe字段。
返回包中存在set-Cookie:remeberMe=deleteMe。
请求包中存在rememberMe=x时,响应包中存在rememberMe=deleteMe。
有时候服务器不会主动返回remeberMe=deleteMe,直接发包即可,将Cookie内容改为remember Me=1,若相应包有rememberMe=deleteMe,则基本可以确定网站apache shiro搭建的。
Struts2
一般使用struts2框架后缀带do或action,可以尝试进行利用
Springboot
1、通过web应用程序网页标签的小绿叶图标
2、通过springboot框架默认报错页面
Solr识别
一般开放8983端口,访问页面也可以探针到