前言:
不得不说,很卷 真的就是完全的签到比赛 签完到 然后开始攻web 但是 我很不理解的是 有一个web题目 同样的dirsearch 人家能扫出来 idea目录 我的就没有 啊啊啊 气死了 但是 比赛过程还是学到了不少东西,整体还是很快乐的 !!!
web题目总结下来 还可以 这里复现一下 ! 执着与对CTF的热爱 👴下年一定可以进去 签到题目就不说了 没什么可说的
EZupload
view-source 看到?source=1 看到源码 因为没有登录界面 所以在本地写一个登录界面的文件上传到远程的HTML里 上传index.latte能够上传成功
用phpinfo实现代码执行 echo “${phpinfo()}”; 就是上传一个PHP文件
<?php
echo "${phpinfo()}";
?>
=等同于echo 双引号内的变量不会被当作字符串 所以组成 {=“${phpinfo()}”} 也就是
echo “${PHPINFO()}”
因为``可以进行代码执行,但是不会回显,所以我们选择用>将结果写入txt文件读取 就是payload是
{=“${cat /flag >8.txt}”}
灏妹的web
python3 dirsearch.py -u http://-ctf.dasctf.com:2333/ --exclude-sizes 0B 这是用呆师傅的payload 我当时的payload不是这样 当时没有扫描出来idea泄露 同样的dirsearch 可能版本不同吧 扫描 发现 idea泄露·
EasyTp
题目说是public文件 然后进行构造 这个题复现有点难 用了一下0kam1师傅的思路 个这玩意扔bp里面去fuzz
常用的php文件
得到三个
Index.php System.php PEAR.php
因为题目提示说是easytp
那就想办法tp爆错爆出版本呗
根据tp路由+Index文件内容的思路去构造爆错语句
public/index.php/unser
确定tp框架版本
查相关的漏洞点
尝试了几个链
找到个eval链可用的
https://f5.pm/go-63946.html 且存在直接的exp
本地服务器搭建扔进去生成序列化代码
得到一个这玩意 base64编码的 解码后转url
把这串直接拿过去打 回显hacking 看了眼代码 是正则匹配的问题
绕呗还能咋搞
根据parse_url函数匹配的思路函数去绕
构造一个不合格的url即在public前加很多///符号
直接phpinfo
接下来就很常规了 把phpinfo的内容改成读取flag文件就好了 exp和之前的一样 生成编码继续打
|