后端:
CMS:一般PHP开发居多源码程序
(利用源码程序名去搜漏洞情况,源码去下载进行后期的代码审计)
前端
js 框架(爬取更多的js从里面筛选URL或敏感泄漏key等)
也是可以通过对js代码逻辑进行代码审计
框架:
简单代码的一个整合库,如果使用框架的话只需要学习使用框架调用即可
比如:文件上传功能需要很多代码进行实现,框架对该功能的实现代码进行封装,当需要使用该功能时,直接调用即可;
影响: 如果采用框架开发,代码的安全性完全取决于框架的过滤机制
组件: Java居多
第三方的功能模块(比如:日志记录,数据监控,数据转换等)
WEB架构:
- 最简单最入门的开发模型(功能代码全部手写)
最容易出现漏洞,程序员水平不一,没有第三方或团队的检测,单纯的自己写 - 结合开发框架的开发模型(以框架为核心实现功能)
第三方或团队开发的封装代码框架,一般内置过滤机制(框架漏洞) - 结合开发框架外加组件模型(以框架为核心,组件为辅实现功能)
第三方或团队的开发的封装代码框架,一般内置的过滤机制(框架和组件漏洞)
➢指纹识别-本地工具-GotoScan(CMSEEK)
- GotoScan
GotoScan主要是为了解决内网环境下无法识别CMS的问题
本地工具适用于不出网环境
github地址
在cms.json文件中,包含着近2000个CMS信息作为字典扫描;
例:
"phpyun": [{
"path": "/template/default/style/yun_index.css",
"option": "keyword",
"content": ".yuin_index_r"
}],
通过扫描path,判断值是否为content,来识别CMS
README.md查看使用手册
gotoscan.exe -host https://localhost.com
回去比对cms.json中的信息
- 网络空间:Fofa Quake Hunter
- 网络空间:IO图标关系
➢Python-开发框架-Django&Flask
- Django
识别:- 插件识别
- 插件识别
- set-cookie:csrftoken:
- Flask
识别:-
插件识别:
-
Set-Cookie:expires=
-
➢PHP-开发框架-ThinkPHP&Laravel&Yii
-
ThinkPHP
识别:
- 插件识别
- X-Powered-By: ThinkPHP
- CMS识别到源码体系TP开发 -
Laravel(Laravel-Framework)
识别:
- 插件识别
- Set-Cookie中特征的格式
-
Yii(yiiframework)
识别:
- 插件识别
- Set-Cookie中特征的格式
Set-Cookie: YII_CSRF_TOKEN=d3cb0adb7623323daf9ac53c8599585ddd48b285;
➢Java-框架组件-FastJson&Shiro&Solr&Spring
- 52类110个主流Java组件和框架介绍
- Fastjson/Jackson
Fastjson是一个Java库,可以将Java对象转换为Json格式,JSON字符串转换为java对象
Jackson是用于序列化和反序列化Json的Java开源框架,是SpringMVC的默认Json解析器
识别方法:
抓包,看到有例如{id:1},将1改为01
FsatJson组件会把01解析为1
Jackson组件在解析01时会抛出异常
https://forum.butian.net/share/1679
https://www.iculture.cc/forum-post/24115.html
- Shiro
Shiro是一个功能强大,简单易用,安全可靠的Java安全框架,可以为应用程序提供全面的安全保障;执行身份验证、授权、密码和会话管理
识别:
- 请求包的cookie中存在rememberMe字段。
- 返回包中存在set-Cookie:remeberMe=deleteMe。
请求包中存在rememberMe=x时,响应包中存在rememberMe=deleteMe。
有时候服务器不会主动返回remeberMe=deleteMe,直接发包即可,将Cookie内容改为rememberMe=1,若相应包有rememberMe=deleteMe,则基本可以确定网站apache shiro搭建的。
-
Struts2
一般使用struts2框架后缀带do或action,可以尝试进行利用
-
Springboot
- 通过web应用程序网页标签的小绿叶图标
- 通过springboot框架默认报错页面
-
Solr识别
一般开放8983端口,访问页面也可以探针到