命令注入攻击

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

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

函数原型

string system(string command, int &return_var)

command 要执行的命令

return_var 存放执行命令的执行后的状态值

string exec (string command, array &output, int &return_var)

command 要执行的命令

output 获得执行命令输出的每一行字符串

return_var 存放执行命令后的状态值

void passthru (string command, int &return_var)

command 要执行的命令

return_var 存放执行命令后的状态值

string shell_exec (string command)

command 要执行的命令

漏洞实例

例1:

//ex1.php

<?php

$dir = $_GET["dir"];

if (isset($dir))

{

echo "<pre>";

system("ls -al ".$dir);

echo "</pre>";

}

?>

我们提交http://www.sectop.com/ex1.php?dir=| cat /etc/passwd

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

eval注入攻击

eval函数将输入的字符串参数当作PHP程序代码来执行

函数原型:

mixed eval(string code_str) //eval注入一般发生在攻击者能控制输入的字符串的时候

//ex2.php

<?php

$var = "var";

if (isset($_GET["arg"]))

{

$arg = $_GET["arg"];

eval("\$var = $arg;");

echo "\$var =".$var;

}

?>

当我们提交 http://www.sectop.com/ex2.php?arg=phpinfo();漏洞就产生了

动态函数

<?php

func A()

{

dosomething();

}

func B()

{

dosomething();

}

if (isset($_GET["func"]))

{

$myfunc = $_GET["func"];

echo $myfunc();

}

?>

程序员原意是想动态调用A和B函数,那我们提交http://www.sectop.com/ex.php?func=phpinfo 漏洞产生

防范方法

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

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

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

4、使用safe_mode_exec_dir指定可执行文件的路径

esacpeshellarg函数会将任何引起参数或命令结束的字符转义,单引号“'”,替换成“\'”,双引号“"”,替换成“\"”,分号“;”替换成“\;”

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

safe_mode = On

safe_mode_exec_di r= /usr/local/php/bin/

转载于:https://www.cnblogs.com/pingliangren/p/5586943.html

PHP漏洞全解(二)-命令注入攻击相关推荐

  1. PHP漏洞全解(一)-PHP网站的安全性问题

    针对PHP的网站主要存在下面几种攻击方式: 1.命令注入(Command Injection) 2.eval注入(Eval Injection) 3.客户端脚本攻击(Script Insertion) ...

  2. 3.7 命令注入攻击

    1.命令注入攻击 概念:指由于开发人员缺少安全意识,在开发Web应用时未对用户提交的数据进行合规性检查,导致攻击者能够将命令作为普通用户数据提交给服务器执行 命令攻击形式有以下三种: 系统命令注入攻击 ...

  3. Command Injection命令注入攻击

    实验目的与要求 1.了解命令注入攻击攻击带来的危险性. 2.掌握命令注入攻击攻击的原理与方法 3.掌握防范攻击的方法 预备知识 在PHP中您可以使用下列5个函数来执行外部的应用程序或函数. (1) s ...

  4. XSS(跨站脚本)漏洞详解之XSS跨站脚本攻击漏洞的解决

    XSS(跨站脚本)漏洞详解 XSS的原理和分类 跨站脚本攻击XSS(Cross Site Scripting),为了不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆, ...

  5. 网站漏洞修复方案防止SQL注入攻击漏洞

    SQL注入漏洞在网站漏洞里面属于高危漏洞,排列在前三,受影响范围较广,像asp..net.PHP.java.等程序语言编写的代码,都存在着sql注入漏洞,那么如何检测网站存在sql注入漏洞? SQL注 ...

  6. sql注入漏洞,应屏蔽SQL注入攻击

    2019独角兽企业重金招聘Python工程师标准>>> 注:SQL注入好比是前端URL传参数请求时参数以SQL 做为参数传入,如 select 1  from dual where ...

  7. java 漏洞挖掘_Apache Tika命令注入漏洞挖掘

    *本文中涉及到的相关漏洞已报送厂商并得到修复,本文仅限技术研究与讨论,严禁用于非法用途,否则产生的一切后果自行承担. 介绍 这篇文章将从一个Apache tika服务器的命令注入漏洞到完全利用的步骤. ...

  8. php漏洞书籍,PHP漏洞全解(一)-PHP网站的安全性问题

    845002618491765410.jpg (163.16 KB, 下载次数: 58) 2015-11-13 14:40 上传 针对PHP的网站主要存在下面几种攻击方式: 1.命令注入(Comman ...

  9. Linux最全解压命令(*.tar *tar.gz *.gz *.tar.bz2 *.bz2 *tar.xz *.xz *tar.Z *.Z *.rar *.zip *.7z *.7za)

    压缩解压命令 (这里重点介绍tar命令,它是一个打包程序,它可 以调用其它的命令,如:gzip bzip2.除此之外还有 rar zip命令) 注:无特殊说明**/代表文件夹,*/代表次一级文件夹 * ...

最新文章

  1. 并查集 ---- 扩展域并查集判二分图 + 循环模拟字典树 The 2020 ICPC Asia Macau Regional Contest C. Club Assignment (详解)
  2. STM32F4 HAL库开发 -- DMA
  3. Mbs Framework 简介
  4. MyBatis学习后篇
  5. FFmpeg的下载及其简单使用
  6. 中文字符集与字符编码的基础知识
  7. UVC app流程图
  8. Error in library(patRoon) : 不存在叫‘patRoon‘这个名字的程辑包
  9. 数据猿专访诸葛io孔淼:数据与业务“动态”结合才能发挥最大威力
  10. HNUST Java 数据库系统课程设计:学生管理系统
  11. 单端口和双端口的优势_双端口测量和 S参数 - 灵活应用网络分析仪
  12. 高德地图 搜索定位 搜索关键词 定位
  13. Maven的生命周期和插件
  14. RedMonk最新编程语言排行榜;Spring 框架现 RCE 漏洞……|叨资讯
  15. TDengine学习笔记
  16. 26、用户 创建用户
  17. 什么是驱动?驱动程序的工作原理?
  18. vue3 使用富文本tinymce-vue
  19. C语言-自动识别用户输入的字符串并便于后期处理
  20. Spring异常:NoSuchBeanDefinitionException: No qualifying bean of type ‘it.com.dao.AccountDao‘ available

热门文章

  1. python对找到的匹配项作处理后再替换回去
  2. Linux 串口编程四 串口设备程序开发
  3. Linux 串口调试工具汇总
  4. React开发(223):详情页根据数组map处理返回值
  5. 前端学习(3174):react-hello-react之脚手架的配置
  6. PS教程第二十二课:羽化选区
  7. [js] js循环中调用异步的方法,如何确保执行结果的顺序是正确的?
  8. 前端学习(2622):过滤器进行操作
  9. 前端学习(1946)vue之电商管理系统电商系统之初步使用vue-table-with-tree
  10. 前端学习(1885)vue之电商管理系统电商系统之首页路由的重定向