[HCTF 2018]WarmUp

抓包什么也没看到

就是访问这个滑稽的图片

信息收集

这里说明就是他的后台代码

在这个php里面

我们访问

这样就很好看了

代码审计

[HCTF 2018]WarmUp全网最详细解释-优快云博客

这篇博客讲得真JB好

我就复述下我对博主的理解吧~

这里我们可以看见白名单是source.php 和hint.php

现在我假设我的url是

http://21cfa0f7-1283-4185-9d2d-70d78c27f6de.node5.buuoj.cn:81/source.php?file=hint.php

首先就是进行的这里

file就是我们后面跟的 ?hint.php

那么就是hint.php是否为空和字符串

如果通过,传入checkfile里面,我们的参数是hint.php

然后进行下面这段代码

首先我们符合字符串和白名单,就不会G

mb——substr函数的意思就是截取字符串,从mb_strpos的位置(引用上面博客的)

 $_page = mb_substr(
                $_page,
                0,
                mb_strpos($_page . '?', '?')
            );

那么这个函数就有说法了

我们首先page是

21cfa0f7-1283-4185-9d2d-70d78c27f6de.node5.buuoj.cn:81/source.php?file=hint.php里面的file参数也就是hint.php

mb_strpos截取到?

符号点 '.' 是 PHP 中的字符串连接运算符,它用于将两个字符串连接在一起,形成一个更长的字符串。在这里,它将 $page 变量的值和一个问号字符 '?' 连接在一起,形成一个新的字符串,在这个新的字符串中查找问号是否存在,那么很明显肯定能找到。

$_page . '?')这是一个参数

意思是截取到hint.php

然后return ture

告诉了我们这个

一般来说,flag是在根目录下

我们看的php代码 一般的目录 root/var/www/html/123.php

意思是我们返回后,还需要跳会目录

/source.php?file=hint.php?/../../../../ffffllllaaaagggg

这是最后的url

现在我来解释下

首先 根据上面来

我们的page肯定就是

hint.php?/../../../../ffffllllaaaagggg

分别是跳到html www var root 刚好四个

然后最后到了读取 root/flag

这样的形势

这样了(因为我们传入的就是file形势,这里就是文件操作)

这里就是你检测过关之后

include和require差不多

就是发送这个请求

hint.php?/../../../../ffffllllaaaagggg

但是include后面会忽略

最后就只有hint.php

至于为什么可以再路径读取,不是很懂

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

name_name123

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值