信息打点-WEB打点-语言框架&开发组件
文章目录
- 信息打点-WEB打点-语言框架&开发组件
- 本节涉及链接&工具
- 本节知识&思维导图
- 基础概念介绍
- 框架:
- 组件:
- Web架构
- 对应Web测试手法
- 后端:
- 前端
- 组件:java居多,
- 框架:
- CMS指纹识别-本地工具-GotoScan(CMSEEK)
- 框架识别特性分类
- Python-开发框架-Django&Flask识别
- Django
- Flask
- PHP-开发框架-ThinkPHP&Laravel&Yii识别
- ThinkPHP:
- Laravel:
- Yii:
- Java-框架组件-Fastjson&Shiro&Solr&Spring识别
- Fastjson/Jackson组件的判断
- Shiro安全框架判断
- Struts2
- Springboot
- Solr识别
本节涉及链接&工具
cms指纹识别工具-本地工具:
https://github.com/newbe3three/gotoscan
漏洞平台&靶场(靶场功能好像不能用了
https://vulfocus.cn/
https://vulhub.org/
52类110个主流Java组件和框架介绍:
https://blog.csdn.net/agonie201218/article/details/125300729
Fastjson/Jackson组件的判断
https://forum.butian.net/share/1679
工具箱
ONE-FOX
本节知识&思维导图
1、CMS指纹识别-不出网程序识别
2、开发框架识别-PHP&Python&Java
3、开发组件识别-Java常见安全漏洞组件
解决:
1、CMS识别到后期漏洞利用和代码审计
2、开发框架识别到后期漏洞利用和代码审计
3、开发组件识别到后期漏洞利用和代码审计
CMS识别技术针对的大部分都是PHP开发的WEB应用,Java、python开发的程序少而且源码一般都不公开的,PHP大部分都是开源的。
Java或别的语言开发的web环境,CMS识别就会出现问题
信息打点、漏洞探针很重要,在安全测试中识别漏洞特征要记住,形成经验
基础概念介绍
框架:
简单代码的一个整合库,如果使用框架就只需要学习使用框架调用即可
如:文件上传功能时需要很多代码来实现的,框架把这个代码进行封装,调用函数即可。
影响:如果采用框架开发,代码的安全性是取决于框架的过滤机制的,代码的核心逻辑在框架中
组件:
第三方功能模块(日志记录,数据监控,数据转换等)
专门去处理某一件事情功能
Web架构
1、最简单最入门的开发模型(功能代码全部手写)
安全思路:最容易出现漏洞,程序员水平不一,没有第三方或团队的检测,单纯的自己写
2、结合开发框架的开发模型(以框架为核心实现功能)
安全思路:第三方或团队的开发的封装代码框架,一般内置的过滤机制(安全测试着重于框架自身的漏洞)
3、结合开发框架外加组件模型(以框架为核心,组件为辅实现功能)
安全思路:第三方或团队的开发的封装代码框架,一般内置的过滤机制(框架和组件漏洞)
识别出网站使用了框架&组件,则寻找框架&组件漏洞,若无漏洞则不能搞,除非有的网站框架使用了一半,自己写了一般(比较蠢,半成品),看具体代码如何写的(有源码的情况
框架以外的漏洞一般都是因为没有使用框架正确的写法导致
对应Web测试手法
后端:
CMS:一般PHP开发居多源码程序
(利用源码程序名去搜漏洞情况,没有漏洞->源码去下载进行后期的代码审计)
前端
js 框架(爬取更多的js从里面筛选URL或敏感泄漏key等)
也是可以通过对js代码逻辑进行代码审计
组件:java居多,
常见有过安全漏洞组件(shiro solr log4j sprintboot等)
直接使用漏洞利用工具
框架:
php、java、python都有,见后面知识点
CMS指纹识别-本地工具-GotoScan(CMSEEK)
在线平台无法识别内网环境的站点
1、在线平台见前面学习内容,本地工具适用于不出网环境
https://github.com/newbe3three/gotoscan
目标地址可以是内网可以是外网,解决内网识别
2、网络空间:Fofa Quake Hunter
3、网络空间:IO图标关系
框架识别特性分类
- Response返回包
- 固定端口
- ICO图标
- 特有的URL路径后缀
Python-开发框架-Django&Flask识别
Django
1、识别插件
2、Set-Cookie:expires=
特点:返回数据包一般会有
set-cookie:csrftoken=xxx
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中特征的格式
漏洞平台:
https://vulfocus.cn/
以上识别方式都是通过插件/返回包中特定信息/泄露图标等信息判断
Java-框架组件-Fastjson&Shiro&Solr&Spring识别
52类110个主流Java组件和框架介绍:
https://blog.csdn.net/agonie201218/article/details/125300729
Fastjson/Jackson组件的判断
在提交JSON数据包中修改测试:
-Fastjson组件会把01解析成1
-Jackson组件在解析01时会抛出异常
https://forum.butian.net/share/1679
https://www.iculture.cc/forum-post/24115.html
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,可以尝试进行利用
即网站后缀一般是.do
或.action
老牌开发框架,以前用的多,现在用的少
Springboot
1、通过web应用程序网页标签的小绿叶图标
2、通过springboot框架默认报错页面
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5d8pSIT4-1692282143098)(image-20230817125507477.png)]
Solr识别
一般开放8983端口,访问页面也可以探针到
信息打点、漏洞探针很重要,在安全测试中识别漏洞特征要记住,形成经验