整体内容:
以下内容主要涉及如何识别这些漏洞,关于其漏洞原理、攻击特征、漏洞复现、防御方式之后会有详细讲解。
一、框架
1、ThinkPHP 框架
简介:ThinkPHP是为了简化企业级应用开发和敏捷WEB应用开发而诞生得,是一个快速得、兼容而且简单得情况及国产PHP开发框架。采用php+apache,在更新迭代中,thinkphp也经常爆出各种漏洞,thinkphp一般有thinkphp2、thinkphp3、thinkphp5、thinkphp6版本,前两个版本已经停止更新,主要介绍下thinkphp5的漏洞。
一般一访问长这样。
(1)构造报错页面,出现“十年磨一剑”或者Thinkphp
可以在网址后输/susu,让他出现报错就可以了。
(2)看icon图标
一般都是这个绿色的小图标。 favicon.ico
(3)看Wappalyzer插件
分享一款很好用的框架,Wappalyzer,直接在商店搜索下载即可,一般都有。
(4)错误传参
构造sql语句,进行错误传参,实际上也是一种构造报错。
2、Spring框架
简介:Spring是Java EE编程领域的一个轻量级开源框架,该框架是为了解决企业级编程开发中的复杂性,业务逻辑层和其他各层的耦合问题,因此它将面向接口的编程思想贯穿整个系统应用,实现敏捷开发的应用型框架。框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为 J2EE应用程序开发提供集成的框架。
(1)构造报错,出现如下报错页面
(2)看icon图标
一般都是这个绿叶的小图标。 favicon.ico
(3)看Wappalyzer插件
(4)看X-Application-Context头
3、Shiro框架
简介:Apache Shiro是一个强大易用的Java安全框架,提供了认证、授权、加密和会话管理等功能,Shiro框架直观、易用,同时也能提供健壮的安全性。
(1)查看cookie字段
Cookie的RememberMe字段超长。
(2)查看响应包
响应包中存在字段 set-Cookie: rememberMe=deleteMe
(3)查看请求路径
请求路径:Shiro使用一套默认的URL路径规则来处理身份验证和授权。通常,Shiro的默认路径规则与标准的Java Web应用程序不同。可以检查网站的URL路径是否包含类似/login、/doLogin、/logout、/unauthorized等Shiro相关的默认路径。
(4)查看cookie名
Cookie名:Shiro框架使用Cookie来管理会话。默认情况下,Shiro会在浏览器中设置一个名为JSESSIONID的Cookie来跟踪用户会话。可以通过查看网站的Cookie是否包含名为JSESSIONID的Cookie来判断是否使用了Shiro。
(5)查看页面源代码
页面源代码:查看网站的HTML源代码,搜索关键词如Shiro、securityManager、IniRealm等。这些关键词可能在Shiro框架的配置文件或代码中出现。
4、fastjson反序列化
简介:Fastjson是一个开源的Java库,可以将Java对象转换为JSON格式(序列化),也可以将JSON字符串转换为 Java对象(反序列化)。Fastjson可以操作任何Java对象。
一般json页面就很有可能是fastjson反序列化,如图所示。
(1)抓包发送不完整字段
在发送json字段的时候,尝试发送一个不完整的字段,在响应包中看是否会有报错,显示出阿里巴巴fastjson这种字样。
(2)查找关键字fastjson
正常请求是 get 请求,没有请求体,可以构造错误的 post 请求,看响应包中是否有 fastjson 关键字。
在GET请求包上,右键-->Change request method -->改变为POST包再发送请求
(3)其他特征
1)能够支持将java bean序列化成JSON字符串,也能够将JSON字符串反序列化成Java bean;
2)顾名思义,FastJson操作JSON的速度是非常快的;
3)无其他包的依赖;
4)使用比较方便;
5)数据包体里面带着相关的数据包;
6)数据包体里面会有@type。
5、Struts2
简介:Struts 2 最初被称为 WebWork 2,它是一个简洁的、可扩展的框架,可用于创建企业级Java web应用框架。设计这个框架是为了从构建、部署、到应用程序维护方面来简化整个开发周期。
MVC:模型(Model)、视图(View)、控制器(Controller):
模型 --- 属于软件设计模式的底层基础,主要负责数据维护。
视图 --- 这部分是负责向用户呈现全部或部分数据。
控制器 --- 通过软件代码控制模型和视图之间的交互。
(1)通过网页后缀来判断,如 .do .action
但有可能不准。
(2)判断 /struts/webconsole.html 是否存在
要求:需要 devMode 为 true。
(3)通过 actionErrors
要求:是对应的 Action 需要继承自 ActionSupport 类。
例如:原始 URL 为 https://threathunter.org/则检测所用的 URL 为 https://threathunter.org/?actionErrors=1111;
如果返回的页面出现异常,则可以认定为目标是基于 Struts2 构建的。
异常包括但不限于以下几种现象:
①页面直接出现 404 或者 500 等错误。
②页面上输出了与业务有关错误消息,或者 1111 被回显到了页面上。
③页面的内容结构发生了明显的改变。
④页面发生了重定向。
(4)通过不存在的URL路径
例如:输入
http://43.143.13.1:8080/struts2_032/example/111111a/22222b/333333c/HelloWorld.action
在URL的反斜杠部分添加网站不存在的路径,最好是随机字符串组成的较长路径,如果返回同样的页面,在Struts2框架下,完全可以正常返回页面。
(5)通过添加/struts/domTT.css
在网站根目录下添加/struts/domTT.css后访问,返回css代码。
二、组件/中间件
1、IIS(php中间件)
简介:IIS的全称是Internet Information Services(互联网信息服务),是微软提供的运行在Windows系统下的中间件,主要 用来解析.ASP,.ASA,.CER三种文件格式的文件。
(1)默认端口80
(2)看Wappalyzer插件
2、Apache(php中间件)
简介:Apache HTTP Server(简称Apache)是Apache软件基金会的一个开放源代码的网页服务器软件,可以在大多数电脑操作系统中运行,由于其跨平台和安全性,被广泛使用,是最流行的Web服务器软件之一。
(1)默认端口80
(2)看Wappalyzer插件
3、Nginx(php中间件)
简介:Nginx是一个高性能HTTP服务器,反向代理服务器,邮件代理服务器,TCP/UDP反向代理服务器。Nginx处理请求是异步非阻塞的,在高并发下nginx 能保持低资源低消耗高性能,主要用在集群系统中用于支持负载均衡。Nginx对静态文件的处理速度也相当快,也可以用于前端站点的服务器。
(1)默认端口80
(2)看Wappalyzer插件
4、Tomcat(java中间件)
简介:Tomcat是一个开源而且免费的jsp服务器,默认端口 : 8080,属于轻量级应用服务器。它可以实现 JavaWeb程序的装载,是配置JSP(Java Server Page)和JAVA系统必备的一款环境。
(1)默认端口 8080
还有这只小猫,也是他的标志。
默认账号/密码:admin/admin;tomcat/tomcat
(2)看Wappalyzer插件
(3)看报错关键字
有“Tomcat”。
(4)server头 Apache Tomcat
默认管理路由 /manage/html
5、JBoss
简介:JBoss是一个基于J2EE的开发源代码的应用服务器。JBoss代码遵循LGPL许可,可以在任何商业应用中免 费使用。JBoss是一个管理EJB的容器和服务器,支持EJB1.1、EJB 2.0和EJB3的规范。但JBoss核心服务不 包括支持servlet/JSP的WEB容器,一般与Tomcat或Jetty绑定使用。在J2EE应用服务器领域,JBoss是发 展最为迅速的应用服务器。由于JBoss遵循商业友好的LGPL授权分发,并且由开源社区开发,这使得 JBoss广为流行。
(1)默认端口8080
(2)看Wappalyzer插件
(3)固定路由 /admin-console/ /jmx-console/
(4)看title:Welcome to JBoss AS
6、WebLogic(java中间件)
简介:WebLogic是美国Oracle公司出品的一个application server,确切的说是一个基于JAVAEE架构的中间 件,默认端口:7001 WebLogic是用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据 库应用的Java应用服务器。将Java的动态功能和Java Enterprise标准的安全性引入大型网络应用的开 发、集成、部署和管理之中。
(1)默认端口7001
默认账号/密码:
weblogic/weblogicsystem/systemportaladmin/portaladminguest/guest
(2)看Wappalyzer插件
(3)报错页面 Error 404--Not Found
输入一个不存在的URL路径,看Web服务是否返回如下“From RFC 2068Hypertext Transfer Protocol”关键字。
(4)默认管理页面路由 /console/login/LoginForm.jsp
对于有些网站屏蔽了404错误回显的情况,可以通过访问Weblogic内置Web目录是否存在去间接去判断是否使用了Weblogic中间件。比如/consolehelp/、/bea_wls_internal/、/console/等路径是Weblogic专有的。
再比如说可以访问Weblogic专有的漏洞CVE-2017-10271、CVE-2019-2729等对应的URL路径(/wls-wsat/、/_async/等),但是这个方法不推荐使用,因为基本上都会被WAF拦截,更严重的情况是会导致封IP,导致后续正常路径也无法判断出来,而且大多数甲方客户修复漏洞的方法,就是直接删除存在漏洞的war包,导致这两个路径也不存在。
四、CMS
1、WordPress
简介:WordPress是基于PHP的开源CMS。它是一个开源的系统,用户可以在支持 PHP 和 MySQL 数据库的服 务器上架设属于自己的网站,也可以把 WordPress 当作一个内容管理系统(CMS)来使用。 WordPress 有许多第三方开发的免费模板,简单易用。 对 WordPress 的漏洞扫描器 WPScan。WordPress 的漏洞一般分为 CMS 本身漏洞和插件漏洞。
(1)看icon图标
一般都是这个蓝色的小图标。
(2)看路径
一般都是wp-的路径。
(3)看源代码中是否有“wp-”关键字
例如,wp-content、wp-includes等。
(4)查看robots.txt文件
User-agent:* Disallow:/wp-admin/
(5)查看HTTP响应头
WordPress:X-Powered-By: PHP/7.4.0
2、DedeCMS
简介:DedeCMS是织梦团队开发PHP 网站管理系统,它以简单、易用、高效为特色,组建出各种各样各具特色的网站,如地方门户、行业门户、政府及企事业站点等。
(1)看报错
(2)看跳转
3、Joomla
简介:Joomla是用PHP编写的,采用了模块化的架构,可以通过安装和配置不同的扩展、模板和语言包来实现 不同的功能和界面。Joomla还提供了一些基本的网站管理工具,如用户管理、内容管理、菜单管理和网 站配置等,可以帮助用户快速创建和维护一个功能强大、易于使用的网站。
一般都长这个样子。
(1)查看HTTP响应头
Joomla:X-Powered-By: ASP.NET
(2)查看robots.txt文件
Joomla:User-agent:* Disallow:/administrator/
4、phpMyadmin
简介:PHPMyadmin是一个以PHP为基础的MySQL数据库管理工具,使网站管理员可通过Web接口管理数据 库。
一般都长这样,默认账号/密码:root/123456;root/root
5、Drupal
简介:Drupal是使用PHP语言编写的开源内容管理框架(CMF),它由内容管理系统(CMS)和PHP开发框架(Framework)共同构成,在GPL2.0及更新协议下发布。
其中,robots.txt:User-agent:* Disallow:/node/。
(谢谢大家!欢迎提出批评和建议!你的支持是我持续更新的巨大动力!)
推荐阅读
发表评论