信息打点-语言框架&开发组件&FastJson&Shiro&Log4j&SpringBoot 等
CMS指纹识别
- 局限性:CMS识别大部分针对PHP开放的web环境,java和python等会有问题
后端&前端&组件&框架
后端:
CMS:一般使用PHP源码程序开发居多(利用源码程序名去搜集现有漏洞情况,或使用源码去下载进行后期的代码审计)前端:
JS框架(爬取更多的js,从里面筛选URL或敏感泄露key等)也是通过对js代码逻辑进行代码审计组件:
java居多,常见有过安全漏洞组件:shiro, solr, log4j, sprintboot等
框架:
php, java, python都有
WEB架构:
1.最简单、最入门的开发模型(功能代码全部手写)
最容易出现漏洞,程序员水平不一,没有第三方或团队的检测,单纯自己手写
2.结合开发框架的开发模型(以框架为核心实现功能)
第三方或团队的开发的封装代码框架,一般内置过滤机制(但可能存在框架漏洞)
3.结合开发框架外加组件模型(以框架为核心,组件为辅助实现功能)
第三方或团队的开发的封装代码框架和组件,一般内置过滤机制(但可能存在框架和组件漏洞)
开发框架
简单代码的一个整合库,如果使用框架就只需要学习框架调用即可
如:文件上传功能是需要很多代码来实现的,框架把这个代码进行封装,调用即可
影响:如果采用框架开放,代码的安全性是取决于框架的过滤机制
框架有漏洞-网站就有漏洞;框架没漏洞但扫出了漏洞-没有正确使用框架导致(如程序一半用框架,一半自己写)
开发组件
- 第三方的功能模块(日志记录、数据监控、数据转换等),框架没有的功能、拓展功能
指纹识别-本地识别
- 工具:gotoscan
- 浏览器插件:Wappalyzer
python-web开发框架-Django&Flask
Django
1.识别插件
2.web返回数据包字段:Set-Cookie:expires=
Flask
1.识别插件
2.web返回数据包字段(可能存在):Set-Cookie:expires=
PHP-web开发框架-ThinkPHP&Laravel&Yii
ThinkPHP:
1.识别插件
2.web返回数据包字段:X-Powered-By:ThinkPHP
3.网站图标判断
4.CMS识别到源码查找:ThinkPHP开发源码查找,如:
down.chinaz.com
平台尝试查找开发使用的源码–>寻找漏洞Laravel:
1.识别插件
2.Set-Cookie中的特征格式
Yii
1.识别插件
2.Set-Cookie中的特征格式
JAVA-web开发框架组件-Fastjson&Shiro&Solr&Spring
52类101个主流Java组件和框架介绍:https://blog.csdn.net/agonie201218/article/details/125300729
Fastjson/Jackson
在提交JSON数据包中修改测试:
https://forum.butian.net/share/1679
;- Fastison组件会把01解析成1
- Jackson组件在解析01时会抛出异常
Shiro
请求包的cookie中存在rememberMe字段
返回包中存在set-Cookie: remeberMe=deleteMe
请求包中存在rememberMe=x时,响应包中存在rememberMe=deleteMe
有时候服务器不会主动返回remeberMe=deleteMe,直接发包即可,将Cookie内容改为remember Me=1,若相应包有rememberMe=deleteMe,则基本可以确定网站apache shiro搭建的
Struts2
一般使用struts2框架URL后缀带do或action,可以尝试进行利用
Springboot
通过web应用程序网页标签的小绿叶图标
通过springboot框架默认报错页面
Solr识别
网站图标判断
一般开放8983端口,访问页面也可以探针到