web开发使用的框架组件,都多多少少报过漏洞,所以我们识别框架就至关重要,识别到可以利用历史漏洞进行渗透(利用对应框架漏洞利用工具)
框架:一套完整程序骨架,定好项目结构、代码写法、程序运行流程,框架主导程序执行,你只写业务代码。
组件:独立小功能模块,只负责一件事,按需引入、可随意替换,依附框架使用。
下面框架识别方法,还是识别插件比较好用(wappalyzer),数据包特征我们也记不住那么多,并且这个也不是每个站点都会出现,管理人员可以自定义的,还可以看icon图标有的网站图标是框架图标。
#Python-开发框架-Django&Flask
Django
1、识别插件
2、固定的数据包格式:Set-Cookie:expires=
Flask
1、识别插件
2、固定的数据包格式:Etag: “flask X-Powered-By: Flask
Tornado
1、识别插件
2、固定的数据包格式:Server: TornadoServer
#JavaScript-开发框架-Vue&Node.js
Vue
1、识别插件
2、JS语法和加载文件(vue.js)
Node.js
1、识别插件
2、固定的数据包格式:ETag: W/“
#PHP-开发框架-ThinkPHP&Laravel&Yii
ThinkPHP:
0、识别插件
1、X-Powered-By: ThinkPHP
2、CMS识别到源码体系TP开发
Laravel:
1、识别插件
2、Set-Cookie中特征的格式 XSRF-TOKEN= laravel_session=
Yii:
1、识别插件
2、Set-Cookie中特征的格式 YII_CSRF_TOKEN=
#Java-框架组件-Fastjson&Shiro&Solr&Spring
52类110个主流Java组件和框架介绍:
https://blog.csdn.net/agonie201218/article/details/125300729
框架:
Struts2
一般使用struts2框架后缀带do或action,可以尝试进行利用
SpringBoot
1、默认web应用标签小绿叶图标
2、通过springboot框架默认页面
3、ICO源码体系采用SpringBoot开发
组件:
FastJson/Jackson
在提交JSON数据包中修改测试:
-FastJson组件会把01解析成1
-Jackson组件在解析01时会抛出异常
https://forum.butian.net/share/1679
Shiro
请求包的cookie中存在rememberMe字段。
返回包中存在set-Cookie:remeberMe=deleteMe。
请求包中存在rememberMe=x时,响应包中存在rememberMe=deleteMe。
有时候服务器不会主动返回remeberMe=deleteMe,直接发包即可,将Cookie内容改为remember Me=1,若相应包有rememberMe=deleteMe,则基本可以确定网站apache shiro搭建的。
Solr识别
一般开放8983端口,访问页面也可以探针到
#工具使用:
https://github.com/projectdiscovery/nuclei这是个漏扫工具,后续会讲到,它在漏洞扫描之前会进行一个指纹识别,所以能扫的框架组件这些