文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

PHP网络安全之命令执行漏洞及防御

2024-04-02 19:55

关注

命令执行漏洞的原理

程序应用有时需要调用一些执行系统命令的函数,如php中的system,exec,shell exec,passthru,popen,proc popen等,当用户可以控制这些函数的参数时,就可以将恶意系统命令拼接到正常命令中,从而造成命令注入攻击

两个条件

(1)用户可以控制函数输入

(2)存在可以执行代码的危险函数

命令执行漏洞产生原因

1.开发人员编写源码时,未针对代码中可执行的特殊函数入口作过滤,导致客户端可以恶意构造语句,并提交服务端执行

2.命令注入攻击中,web服务器没有过滤类似system,eval,exec等函数,是该漏洞攻击成功的主要原因。

命令执行漏洞的危害

1.继承web服务程序的权限去执行系统命令或读写文件

2.反弹shell

3.控制整个网站甚至服务器

4.进一步内网渗透

实例

<?php echo shell_exec($_GET['a']); ?>

将url中的参数a作为cmd命令行指令执行

危险函数导致代码执行

<?php 
$arr = $_GET['arr']; 
$array = $_GET['array']; 
$new_array = arraymap($arr,$array); 
?>

arraymap是一个危险函数,它会默认将参数作为php代码执行

PHP一些可调用外部程序的危险函数

eval攻击

eval函数将输入的参数当成php代码来执行

mixed eval(string code str)

<?php
$var = "var";
if(isset($_GET["arg"]))
{
$arg = $_GET["arg"];
eval("\$var = $arg;");
echo "\$var = ".$var;
}
?>

preg_replace()函数

preg_replace()函数执行一个正则表达式的搜索和替换

在php版本为5.5.0以下时有一个漏洞,当该函数使用了一个不安全的修饰符"\e"时,preg_replace()会对替换字符串的反向引用进行正常替换,将其作为php代码进行计算,并使用 结果替换搜索字符串。

此处/e的用处是引用括号里的字符 也就是以参数a去替代括号里的字符

ps:不要忘记代码两侧的中括号

call_user_func

函数用法:

call_user_func($_GET["a"] , $_GET["b"])

将a作为函数执行,b作为函数参数传递进去

在命令注入时,常有需要多命令执行的情况

在linux下,可以使用|或||代替

|是管道符,显示后面的执行结果

||当前面命令执行出错时再执行后面的

在Window下,可以使用&、&&、|、||代替

&前面的语句为假则执行后面的

&&前面的语句为假则直接出错,后面的也不执行

|直接执行后面的语句

||前面出错执行后面的语句

命令执行的防御手段

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

2.使用自定义函数或函数库替代外部函数功能

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

4.使用safe_mode_exec_dir:指定可执行文件路径 ,这样可以将会使用的命令提前放入此路径内

safe_mode_exec_dir = /usr/local/php/bin

DVWA介绍

DVWA平台:

用来进行安全脆弱性鉴定的PHP/Mysql Web应用

为安全专业人员测试总结的专业技能和工具提供合法环境

帮助web开发者更好的理解web应用安全防范的过程

DVWA的搭建

DVWA是基于php/mysql环境开发的

下载地址:

Buy Steroids Online UK - Anabolic Steroids For Sale UK

GitHub

DVWA练习命令注入

使用靶场自行练习

到此这篇关于PHP网络安全之命令执行漏洞及防御的文章就介绍到这了,更多相关PHP漏洞及防御内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯