zoukankan      html  css  js  c++  java
  • 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命令。

  • 相关阅读:
    hdu1915
    2014年9月28日 18:35:01
    洛谷—— P1122 最大子树和
    洛谷——P1103 书本整理
    洛谷—— P2049 魔术棋子
    UVA_1575
    洛谷—— P2424 约数和
    中文乱码问题
    JSP标签
    include指令
  • 原文地址:https://www.cnblogs.com/zhengna/p/12357166.html
Copyright © 2011-2022 走看看