文件包含专题
0x01 [ACTF2020 新生赛]Include 1(文件包含)
这题涉及到文件包含的小知识点
php://filter与包含函数结合时,php://filter流会被当作php文件执行。
所以我们一般对其进行编码,让其不执行。从而导致任意文件读取。php://filter 伪协议文件包含读取源代码,加上read=convert.base64-encode,
用base64编码输出,不然会直接当做php代码执行,看不到源代码内容。1、是格式 2、是可选参数,有read和write,字面意思就是读和写 3、是过滤器。主要有四种:字符串过滤器,转换过滤器,压缩过滤器,加密过滤器。filter里可以用一或多个过 滤器(中间用|隔开),这也为解题提供了多种方法,灵活运用过滤器是解题的关键。这里的过滤器是把文件 flag.php里的代码转换(convert)为base64编码(encode) 4、是必选参数,后面写你要处理的文件名
这样可以让源码以base64的编码输出出来,然后我们去解码就行了,最关键是思路:这里没有任何东西,只有一个flag.php文件,内容没有东西那就是源码了
做题链接
0x02 [极客大挑战 2019]Secret File 1
做个总结,如果网页没有什么信息就肯定在源代码里有提示,刚开始做题什么都是新鲜的。
重定向
- 定义:在 HTTP 协议中,重定向操作由服务器向请求发送特殊的重定向响应而触发。重定向响应包含以 3 开头的状态码,以及 Location 标头,其保存着重定向的 URL。浏览器在接收到重定向时,它们会立刻加载 Location 标头中提供的新 URL。除了额外的往返操作中会有一小部分性能损失之外,重定向操作对于用户来说是不可见的。
我访问的明明是action.php但是加载出来的却是end.php,这种情况就要抓包,发送到repeater去看看有没有中间页面或文件,这里是有隐藏文件secr3t.php ,继续访问就会发现要用文件包含来做这题,但我刚开始就有试那个代码,我不理解为什么要在那串代码前面加上secr3t.php/才可以,大概是secr3t.php里有include函数吧
做题链接