整体内容:

以下内容主要涉及如何识别这些漏洞,关于其漏洞原理、攻击特征、漏洞复现、防御方式之后会有详细讲解。

一、框架

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/。

(谢谢大家!欢迎提出批评和建议!你的支持是我持续更新的巨大动力!)

推荐阅读

评论可见,请评论后查看内容,谢谢!!!评论后请刷新页面。