017-信息打点-框架组件&CMS工具&其他等

Untitled

本节课主要知识点

1.CMS识别到后期漏洞利用和代码审计
2.开发框架识别到后期漏洞利用和代码审计
3.开发组件识别到后期漏洞利用和代码审计

一、CMS指纹识别-不出网程序识别

1.概念

CMS指纹识别一般能识别到的都是以PHP语言开发的网页为主,其他语言开发的网页识别难度大

识别的意义就是向着对应目标使用对应的工具进行攻击

1.后端:

CMS:一般PHP开发居多源码程序(利用源码程序名去搜漏洞情况,源码去下载进行后期的代码审计)

2.前端:

JS框架(爬取更多的JS从里面筛选URL或敏感泄漏KEY等)

也是可以通过对JS代码逻辑进行代码审计

3.组件:

组件:第三方的功能模块(日志记录,数据监控,数据转换等)

java居多,常见有过安全漏洞组件(shiro solr log4j sprintboot等)

4.框架:

框架:简单代码的一个整合库,如果使用框架就只需要学习使用框架调用即可

如:文件上传功能是需要很多代码来实现的,框架把这个代码进行封封装,调用即可

影响:如果采用框架开发,代码的安全性是取决于框架的过滤机制

php java python都有相对应的漏洞

二.web架构

1. 最简单最入门的开发模型(功能代码全部手写)
最容易出现漏洞,程序员水平不一,没有第三方或团队的检测,单纯的自己写

2.结合开发框架的开发模型(以框架为核心实现功能)
第三方或团队的开发的封装代码框架,一般内置的过滤机制(框架漏洞)

3.结合开发框架外加组件模型(以框架为核心,组件为辅实现功能)
第三方或团队的开发的封装代码框架,一般内置的过滤机制(框架和组件漏洞)

利用:CMS识别到后期漏洞利用和代码审计

三.指纹识别-本地工具-GotoScan(内网)

https://github.com/newbe3three/gotoscan

image-20250228170711508

四.Python-开发框架-Django&Flask

1.Django

Set-Cookie:expires=或者Set-Cookie: csrftoken=

image-20250228173604640

插件识别

image-20250228173712485

简单来说都是通过web的一些返回包或者框架的插件就识别包括其他信息来确定是个什么情况

2.flask

1、识别插件
2、Set-Cookie:expires=或者Etag:

image-20250228182333805

PHP-开发框架-ThinkPHP&Laravel&Yii

1.ThinkPHP:

1、识别插件
2、X-Powered-By: ThinkPHP或者直接识别ThinkPHP官方图标
3、CMS识别到源码体系TP开发

image-20250228184815806

Laravel:

1、识别插件
2、Set-Cookie: laravel_session=或者Set-Cookie: XSRF-TOKEN

image-20250228194425222

image-20250228194604697

image-20250228195214359

Yii:

1、识别插件
2、Set-Cookie:YII_CSRF_TOKEN

image-20250228194922818

image-20250228195000467

六.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

Untitled

理想状态下如果站点有原始报错回显,可以用不闭合花括号的方式进行报错回显,报错中往往中会有Fastjson/Jackson的关键字:

https://shs3.b.qianxin.com/attack_forum/2022/06/attach-6c4a903c47da8867fe08ff161f9d0045c2fabb48.png

https://shs3.b.qianxin.com/attack_forum/2022/06/attach-f3c1cb3916f167f1dad9968168f19a738cc85c0c.png

但是实际上并不可能那么的理想,所以需要一些其他的trick来进行区分。下面探讨下两个解析器之间有什么区别。

Fastjson会把01解析成1:

https://shs3.b.qianxin.com/attack_forum/2022/06/attach-c14ee208503f76f1813c8d0cdff8cfa3918add3c.png

Jackson在解析01时会抛出异常

https://shs3.b.qianxin.com/attack_forum/2022/06/attach-90de133a041d2d6d2f18ec452c1864b4935ecd69.png

Shiro

Untitled

请求包的cookie中存在rememberMe字段。
返回包中存在set-Cookie:remeberMe=deleteMe。
请求包中存在rememberMe=x时,响应包中存在rememberMe=deleteMe。
有时候服务器不会主动返回remeberMe=deleteMe,直接发包即可,将Cookie内容改为remember Me=1,若相应包有rememberMe=deleteMe,则基本可以确定网站apache shiro搭建的。网址http://58.63.71.214:9091/login###

image-20250228201810804

Struts2

一般使用struts2框架后缀带do或action,可以尝试进行利用

Untitled

Springboot

1、通过web应用程序网页标签的小绿叶图标
2、通过springboot框架默认报错页面

Untitled

Solr识别

一般开放8983端口,访问页面也可以探针到

Untitled