首先要引入这篇文章:[文件包含大介绍]([php知识点]PHP伪协议 (ngui.cc))

然后是几个常用的协议的注意事项

data://text/plain

data://text/plain,xxxx

data://text/plain;base64,xxxxx(注意分号和逗号的位置)(暂时发现分号不能紧挨着?>,要么作为最后一句不加分号,要么加空格作为分割符)

主要用来执行php代码

php://

php://filter/read=convert.base64-encode/resource=xxx用来读源码

php://filter/convert.base64-encode/resource=xxx同上

php://input + post传代码用来执行php代码,hackbar传不过去post的代码内容,要用bp加上!!!

file://

用来读文件的,只能用绝对路径!(相对路径某些情况也许有用,不绝对)

etc

除了常见的几种伪协议,还学到了一种文件包含的方式:include会把包含在内的文件当作php文件来执行,而访问日志会记录ip、访问时间、url和ua,我们可以在ua中插入代码然后包含这个日志文件从而执行:如图

常见日志文件位置

apache:/var/log/apache/access.log

nginx: /var/log/nginx/access.log 和 /var/log/nginx/error.log