重点知识-框架&Web&前端&后端
框架:简单代码的一个整合库,如果使用框架就只需要学习使用如何调用框架即可
例如:文件上传功能是需要很多代码来实现的,框架意思是把这个代码进行封封装,以后调用就可以了
影响:如果采用框架开发,代码的安全性是取决于框架的过滤机制
组件:第三方的功能模块(日志记录,数据监控,数据转换等)
Web架构:
- 最简单最入门的开发模型(功能代码全部手写)
最容易出现漏洞,因为程序员水平不一,没有第三方或团队的检查代码,单纯的自己写 - 结合开发框架的开发模型(以框架为核心实现功能)
第三方或团队的开发的封装代码框架,一般内置的过滤机制(框架漏洞) - 结合开发框架外加组件模型(以框架为核心,组件为辅实现功能)
第三方或团队的开发的封装代码框架,一般内置的过滤机制(框架和组件漏洞)
前端
JS 框架:爬取更多的JS从里面筛选URL或敏感泄漏Key等,也可以通过对JS代码逻辑进行代码审计
组件:Java居多,常见报过有安全漏洞组件(shiro solr log4j sprintboot等)
框架:PHP Java Python都有
后端
CMS识别:一般PHP开发居多(利用源码程序名去搜漏洞情况,或者下载源码去进行后期的代码审计)
指纹识别-本地工具-gotoScan(CMSEEK)
- gotoscan,本地工具适用于内网和外网环境
- 网络空间:Fofa Quake Hunter
- 网络空间:IO图标关系
Python-开发框架-Django&Flask
Django
- 浏览器识别插件
- 数据包里有:
Set-Cookie:csrftoken=
(有的会隐藏,常规有的。不能通过唯一来判断)
Flask
- 浏览器识别插件
- 数据包里有:
Etag:flask
(有的会隐藏,常规有的。不能通过唯一来判断)
PHP-开发框架-ThinkPHP&Laravel&Yii
ThinkPHP:
- 浏览器识别插件
- 数据包里有:
X-Powered-By: ThinkPHP
(有的会隐藏,常规有的。不能通过这唯一来判断) - CMS识别到源码体系TP开发
Laravel:
- 浏览器识别插件
- 数据包里有:
Set-Cookie:Laravel_sesssion=
(有的会隐藏,常规有的。不能通过唯一来判断)
Yii:
- 浏览器识别插件
- 数据包里有:
Set-Cookie:Yii_sesssion=
(有的会隐藏,常规有的。不能通过唯一来判断)
Java-框架组件-Fastjson&Shiro&Solr&Spring
Fastjson/Jackson:
在提交JSON数据包中修改测试:
Fastjson组件会把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框架的网页地址后缀带do或action,可以尝试进行利用
Springboot:
1.通过web应用程序网页标签的小绿叶图标
2.通过springboot框架默认报错页面
Solr:
一般开放8983端口,访问页面也可以探针到