首页 > 其他分享 >【?】Web_BUUCTF_WriteUp | [GXYCTF2019]Ping Ping Ping

【?】Web_BUUCTF_WriteUp | [GXYCTF2019]Ping Ping Ping

时间:2023-12-03 10:44:26浏览次数:34  
标签:Web BUUCTF 变量 ip Ping flag fxck your match

题目

分析

ping 一个任意 ip:


拼一个命令试试:


看来是命令执行漏洞,直接查看 flag.php,发现存在空格过滤:


尝试绕过空格过滤:

还有 { } 符号过滤。


过滤了 flag 关键字,尝试绕过:

过滤了单双引号。


\ 符号、\$+数字、\$+@ 没有用。


变量拼接没有输出。


看看 index.php:

<?php
if(isset($_GET['ip'])){
  $ip = $_GET['ip'];
  if(preg_match("/\&|\/|\?|\*|\<|[\x{00}-\x{1f}]|\>|\'|\"|\\|\(|\)|\[|\]|\{|\}/", $ip, $match)){
    // 执行正则表达式,在变量ip中匹配到&、/、?、*、<、ASCII表前32个控制字符、>、'、"、\、(、)、[、]、{、}赋给变量match。若匹配到则输出1,否则输出0
    echo preg_match("/\&|\/|\?|\*|\<|[\x{00}-\x{20}]|\>|\'|\"|\\|\(|\)|\[|\]|\{|\}/", $ip, $match);
    // 输出fxck your symbol!并退出当前脚本
    die("fxck your symbol!");
    // 否则若匹配到空格
  } else if(preg_match("/ /", $ip)){
    // 输出fxck your space!并退出当前脚本
    die("fxck your space!");
    // 否则若匹配到bash
  } else if(preg_match("/bash/", $ip)){
    // 输出fxck your bash!并退出当前脚本
    die("fxck your bash!");
    // 否则若依次匹配到f、l、a、g
  } else if(preg_match("/.*f.*l.*a.*g.*/", $ip)){
    // 输出fxck your flag!并退出当前脚本
    die("fxck your flag!");
  }
  // 执行命令ping -c 4 拼接变量ip,输出作为字符串给变量a
  $a = shell_exec("ping -c 4 ".$ip);
  // 输出两个空行
  echo "

";
  // 输出变量a
  print_r($a);
}

?>

也就是说,如果依次匹配到 f l a g 四个字符也会退出脚本,理论上变量拼接是满足要求的。


查找资料发现 $ 符号后的部分会被当成一个变量,除非读取到下一个 $ 符号;由于 shell 变量不能以数字开头,所以 $ +数字的组合表示向脚本传递某个位置参数;同时,shell 变量的命名规则中不包含 .
也就是说变量需要从后往前拼接,如:


当然,flag 全作为变量拼接的情况除外:


此外,用反引号 `(英文语言键盘主键区左上角)内敛绕过也是可以的:


也可以使用 Base64 绕过:

Flag

flag{c049a763-0991-4f71-92b6-e93023fd894d}

总结

  1. 绕过空格的方法:Linux下绕过空格的方式总结-解忧杂货铺o_O-CSDN
  2. 绕过关键字的方法:Linux系统下绕过某个关键字的小技巧,比如flag关键字-若丶时光破灭-CSDN
  3. 替代空格的部分为 $IFS$9,否则 IFS 可能无法被识别为内部域分隔符
  4. 【?】通过 ; 拼接的命令输出没有直接显示。猜测是因为 ip 没有被赋值,; 之后命令的输出与变量 a 无关而不被输出。

参考

Linux下绕过空格的方式总结-解忧杂货铺o_O-CSDN
Linux系统下绕过某个关键字的小技巧,比如flag关键字-若丶时光破灭-CSDN
PHP preg_match() 函数-菜鸟教程
正则表达式 – 教程-菜鸟教程
PHP_ shell_exec-Manual
shell命令之 IFS详解-笑洋仟-博客园
命令执行绕过的方法-阜城小柳-博客园
Shell 元字符—Linux latest 文档
shell 变量赋值的详细使用-Fe_cow丿-CSDN
$加数字在Shell中的含义-阿东-腾讯云开发者社区
Linux中的管道与连接符号-Curren.wong-CSDN

标签:Web,BUUCTF,变量,ip,Ping,flag,fxck,your,match
From: https://www.cnblogs.com/Guanz/p/17870623.html

相关文章

  • Hadoop集群部署后相关WEB界面打不开大概原因
    集群部署完毕后,查看相关WEB界面,打不开的原因可能如下:1、可以先去检查LINUX(CentOS7)机器的防火墙是否关闭,命令如下:systemctlstatusfirewalld.service(查看防火墙状态)(如果显示为关闭状态,则进行下一步;如果显示尚未关闭,则进行关闭并设定开机如下所示)systemctlstopfirewalld......
  • Web漏洞-XSS绕过和pikachu靶场4个场景(三)
    ★★实战前置声明★★文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与学习之用,读者将其信息做其他用途,由用户承担全部法律及连带责任,文章作者不承担任何法律及连带责任。1、XSS漏洞挖掘与绕过1.1、XSS漏洞挖掘数据交互(输入/输出)的地方最容易产生跨站脚本,最重要的是考......
  • WebServer
    WebServer(暂未写完)​ 根据项目https://github.com/markparticle/WebServer实现的c++服务器项目。同时参考JehanRio的博客https://blog.csdn.net/weixin_51322383/article/details/130464403,十分感谢博客提供的帮助,本文用于记录学习过程以及遇到的一些问题,如有侵权请联系删除。​......
  • [Codeforces] CF1659B Bit Flipping
    题面给定一个长为\(n\)的01串,你可以进行\(k\)次操作。每次操作中,你可以选择任意一位,并将除了这一位以外的其它位翻转(\(1\)变\(0\),\(0\)变\(1\)),输出\(k\)次操作后能获得的字典序最大的字符串,并输出每一位在操作中被选择的次数。若有多解输出任意一解。思路可以发现......
  • BUUCTF-pwn-rip(第一个栈溢出)
    这两天在学习pwn,在ctfwiki学习了典型的栈溢出,参考:https://ctf-wiki.org/pwn/linux/user-mode/stackoverflow/x86/stackoverflow-basic/在做题目的时候发现buuctf的rip和ctfwiki的示例题目一样,考的都是gets()方法的不限制输入首先,根据ctfwiki的描述,总结栈相关的知识:栈在......
  • 关于企业级 Web 应用搜索引擎优化(Search Engine Optimization)的一些工作经验分享
    笔者之前的社区文章,分享了自己在日常工作中从事企业级Web应用开发的一些工作体会:企业级Web应用里使用CSS调整应用外观的一些例子谈谈企业级Angular应用的二次开发-基于AngularComponent替换的Extensibility支持案例介绍所谓企业级前端应用,是指为大型企业或组......
  • 企业级 Web 应用里使用 CSS 调整应用外观的一些例子
    笔者在日常工作中曾经负责过一些企业级Web应用的负责和开发,也曾经指导过一些客户的二次开发人员,通过各种方式对我们发布的企业级Web应用进行一些定制开发。所谓企业级前端应用,是指为大型企业或组织开发的前端应用,这些应用具有超过一般2C软件的技术复杂度,高度定制化和可扩展......
  • 什么是前端 Web 应用响应式页面布局里的 Breakpoint 概念
    在Web前端开发中,响应式设计是一个非常重要的概念,它允许网页UI根据不同的设备屏幕大小进行适当的调整以优化用户体验。在这种设计中,breakpoint是一个关键的概念。我们可以把breakpoint理解为屏幕宽度的一种临界点,当屏幕宽度达到这个点时,我们会调整页面布局以适应这个新的屏......
  • Web_XCTF_WriteUp | unserialize3
    题目分析根据题目指向,这题是反序列化漏洞。分析代码:classxctf{public$flag='111';//变量flag初始化为111publicfunction__wakeup(){//“__wakeup”:PHP魔术方法,在序列化后立即被调用exit('badrequests');//输出“badrequests”}?code=......
  • 探索 Web API:SpeechSynthesis 与文本语言转换技术
    一、引言随着科技的不断发展,人机交互的方式也在不断演变。语音识别和合成技术在人工智能领域中具有重要地位,它们为残障人士和日常生活中的各种场景提供了便利。WebAPI是Web应用程序接口的一种,允许开发者构建与浏览器和操作系统集成的应用程序。本文将探讨WebAPI中的Spe......