PHP漏洞-命令注入攻击

命令注入攻击

PHP中可以使用下列5个函数来执行外部的应用程序或函数

system、exec、passthru、shell_exec、``(与shell_exec功能相同)

函数原型

1 string system(string command,int&return_var)
2   command 要执行的命令
3   return_var 存放执行命令的执行后的状态值
1 string exec(string command,array&output,int&return_var)
2   command 要执行的命令
3   output 获得执行命令输出的每一行字符串
4   return_var 存放执行命令后的状态值
1 void passthru(string command,int&return_var)
2   command 要执行的命令
3   return_var 存放执行命令后的状态值
1 string shell_exec(string command)
2   command 要执行的命令

举个栗子:

system 命令执行
1 <?php
2   $cm=$_GET["cm"];
3   if(isset($cm)){
4     echo"<pre>";
5     system("ls-al".$cm);
6     echo"</pre>";
7   }
8?>

通过输入http://www.xxx.com/index.php?cm=|cat /etc/passwd  进行命令执行

提交以后,命令变成了system("ls-al|cat/etc/passwd");

再举个梨子:

 1 <?php
2   $var="var";
3   if(isset($_GET["arg"])){
4     $arg=$_GET["arg"];
5     eval("\$var=$arg;");
6     echo"\$var=".$var;
7  }
8 ?>

当我们提交http://www.xxx.com/index.php?arg=phpinfo();  漏洞就产生了动态函数

防范方法:

1、尽量不要执行外部命令

2、使用自定义函数或函数库来替代外部命令的功能

3、使用escapeshellarg函数来处理命令参数

4、使用safe_mode_exec_dir指定可执行文件的路径esacpeshellarg函数会将任何引起参数或命令结束的字符转义,单引号“'”,替换成“\'”,双引号“"”,替换成“\"”,分号“;”替换成“\;”

 用safe_mode_exec_dir指定可执行文件的路径,可以把会使用的命令提前放入此路径内

 safe_mode=On

 safe_mode_exec_dir=/usr/local/php/bin/

最新文章

  1. centos yum update kernel
  2. [moka收藏]php正则表达式验证
  3. [ZZ]最小化不可重现的bug
  4. 疯狂位图之——位图实现12GB无重复大整数集排序
  5. 信号驱动的IO
  6. [liu yanling]测试用例作用
  7. iPhone/Mac Objective-C内存管理教程和原理剖析
  8. 转:misc_register、 register_chrdev 的区别总结
  9. Chapter 1 Securing Your Server and Network(10):使用扩展保护避免授权中继攻击
  10. 学习ORM框架—hibernate(三):跟踪持久化对象状态,掌握对象持久化
  11. 【2017-02-23】switch...case...和for循环
  12. jmeter-fileupload操作使用说明
  13. PHP中域名绑定
  14. DD XOFT虚拟键盘鼠标
  15. python之str字符串
  16. javase高级
  17. Mybatis级联:关联、集合和鉴别器的使用
  18. git(转载谢谢)
  19. linux中结构体对齐【转】
  20. 使用C语言操作InfluxDB

热门文章

  1. ssl免密登录(centos6)
  2. 详细描述一下 Elasticsearch 更新和删除文档的过程?
  3. 描述 Java 中的重载和重写?
  4. Spark学习摘记 —— Pair RDD转化操作API归纳
  5. 理解OIDC协议和认证机制
  6. 汽车最强大脑ECU和单片机是什么关系
  7. C++大作业——教职工管理系统
  8. Clickhouse-alter 对副本表修改表结构报元数据错误
  9. Top 15 - Material Design框架和类库(译)
  10. 探讨:微信小程序应该如何设计