php_audit--命令注入攻击

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

    string system(string command,int &return_var)
    注:command要执行的命令,return_var 存放执行命令的执行后的状态值;

    string exec(string command,array &output,int $return_var)
    注:output 获得执行名输出的每一行字符串

    void passthru(string command,int &return_var)

    string shell_exec(string command)

    ``:与shell_exec的功能相同    

## 漏洞示例  ##

  <?php
    error_reporting(0);
    $dir=$_GET[‘dir‘];
    if(isset($dir)){
        system("ls -al".$dir);
    }
    ?>

# eval注入攻击 #

## 漏洞示例 ##

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

# 动态函数 #

## 漏洞示例 ##

    <?php
    func A(){
        dosomething();
    }
    func B(){
        dosomething();
    }
    if(isset($_GET["func"])){
        $myfunc=$_GET["func"];
        echo $myfunc();
    }
    ?>

# 防御方法 #

    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/
时间: 2024-10-06 17:02:46

php_audit--命令注入攻击的相关文章

PHP漏洞全解(二)-命令注入攻击

本文主要介绍针对PHP网站常见的攻击方式中的命令攻击.Command Injection,即命令注入攻击,是指这样一种攻击手段,黑客通过把HTML代码输入一个输入机制(例如缺乏有效验证限制的表格域)来改变网页的动态 生成的内容.使用系统命令是一项危险的操作,尤其在你试图使用远程数据来构造要执行的命令时更是如此.如果使用了被污染数据,命令注入漏洞就产生了. 命令注入攻击 PHP中可以使用下列5个函数来执行外部的应用程序或函数 system.exec.passthru.shell_exec.“(与s

命令注入新玩法:巧借环境攻击目标

0x00 酷趣 wargame 由于受赏金厂商保密协议所限,我无法公开原始漏洞详情,但我更清楚 "talk is cheap, show me the code",耗时费神,找到一个 wargame,相较赏金漏洞,不但体现了相同精髓,这个 wargame 还多了些限制条件,所以,让它变得更加有趣.更有挑战. 我把 wargame 源码写入 CMDi_lab/escaping_quotation/index.php,核心如下: 快速过下源码.首先,用 GET 方法获取 f1.f2 两个参

安全性测试入门(二):Command Injection命令行注入攻击和防御

安全性测试入门(二):Command Injection命令行注入攻击和防御 本篇继续对于安全性测试话题,结合DVWA进行研习. Command Injection:命令注入攻击. 1. Command Injection命令注入 命令注入是通过在应用中执行宿主操作系统的命令,来达到破坏目的的一种攻击方式.如果我们的应用程序将不安全的用户输入传递给了系统命令解析器(shell),那么命令攻击就有可能发生. 通常来说,由应用程序传递操作系统命令会赋有和应用一样的权限,所以如果没有合理防御机制会给系

DVWA系列の命令注入&amp;暴力破解

Brute Force(暴力测试): 对比难度为Low和high的代码可以发现 相对于Low,High在用户名和密码处分别加了两个过滤函数 Stripslashes: 输入:字符串. 输出:返回一个去除转义反斜线后的字符串(\' 转换为 ' 等等).双反斜线(\\)被转换为单个反斜线(\). mysql_real_escape_string:以下字符前添加反斜杠: \x00, \n, \r, \, ', " 和 \x1a. 代码是用来防止sql注入代码,对暴力破解这一项并没有影响,只不过上面爆破

命令注入和一个分享

本文作者:i春秋签约作家--夏之冰雪 系统命令注入是常见的一类漏洞,攻击者可以绕过业务本身,在服务器上执行一个或多个系统命令. 在详细介绍命令注入之前,有一点需要注意:命令注入与远程代码执行不同.他们的区别在于,远程代码执行实际上是调用服务器网站代码进行执行,而命令注入则是调用操作系统命令进行执行. 虽然最终效果都会在目标机器执行操,但是他们还是有区别的,基于这个区别,我们如何找到并利用方式也是有所不同的. 和sql注入类似,sql注入是将sql语句放到请求数据中:而命令注入,则是将操作系统命令

commix 命令注入工具

关于系统命令注入,可以参考这篇文章:命令攻击介绍 系统命令注入场景 在对企业进行安全测试时候,很少会发现系统注入漏洞.这是因为大部分情况下代码业务主要是数据操作.文件操作.逻辑处理和api接口调用等,很少直接使用系统命令. 那么,都会有什么情况会调用系统命令呢?这个真不一定,有时候需要靠猜靠运气,不过代码不会无缘无故调用系统命令,细心研究还是会查到一些迹象的.比如对于图片处理.大文件压缩解压.ppt转pdf等,如果目标网站或者服务器接口提供这样的功能,一般情况下代码都会调用第三方软件,这里举几个

DVWA—Command Injection(命令注入)

命令注入攻击的常见模式为:仅仅需要输入数据的场合,却伴随着数据同时输入了恶意代码, 而装载数据的系统对此并未设计良好的过滤过程,导致恶意代码也一并执行,最终导致信息泄露或者正常数据的破坏. PHP命令注入攻击漏洞是PHP应用程序中常见的脚本漏洞之一,国内著名的Web应用程序Discuz!.DedeCMS等都曾经存在过该类型漏洞. ————————————————————————————————————————————————————————————————————————— 在做DVWA攻防练习

WAF——针对Web应用发起的攻击,包括但不限于以下攻击类型:SQL注入、XSS跨站、Webshell上传、命令注入、非法HTTP协议请求、非授权文件访问等

核心概念 WAF Web应用防火墙(Web Application Firewall),简称WAF. Web攻击 针对Web应用发起的攻击,包括但不限于以下攻击类型:SQL注入.XSS跨站.Webshell上传.命令注入.非法HTTP协议请求.非授权文件访问等.

Web脚本攻击之注入攻击

注入攻击的概念和原理 注入漏洞是Web服务器中广泛存在的漏洞类型,其基本原理是Web程序对用户输入请求中包含的非法数据检查过滤不严,使Web程序将用户的异常输入字符当做正常代码执行,从而使用户在未授权的情况下非法获取Web服务器的信息. 利用注入漏洞发起的攻击称为注入攻击,它是Web安全领域最为常见威胁也是最大的攻击,注入攻击包括SQL注入.代码注入.命令注入.LDAP注入.XPath注入等.实现注入攻击要具备两个关键条件,第一是用户能够自主编写输入的数据,第二是Web程序的执行代码被拼接了用户

白帽子讲WEB安全 第七章 注入攻击

一.SQL注入: 1.注入攻击的本质:把用户输入的数据当代码执行. 攻击的关键点:1.用户能够控制输入: 2.原本程序要执行的代码, 2.盲注(Blind Injection):在服务器没有错误回显时完成的注入攻击. 3.时序攻击(Timing Attack):利用BENCHMARK()函数(mysql中用于测试函数性能的函数),可以让同一个函数执行若干次,使得结果返回的时间比平时要长:通过时间长短的变化,可以判断出注入语句是否执行成功.这是一种边信道攻击. 边信道攻击(side channel