CTF-WEB-文件包含

前言:

     最近跟着大师傅的课程学习着ctf中web,随想记录下知识点,便于日后的复习,难免会有错误,望师傅们能多加指点,今天进入文件包含的学习。

1.文件包含的本质

1>代码复用

2>并行开发

3>模块化

4>增加移植性

2.include和eval的异同

同:都不是函数,都是语言结构,无法通过配置文件函数禁用来禁用。

异:

include:后面接一个路径表示执行php文件的路径,读取路径中文件中内容后,然后执行里面的php代码

eval:后面接php代码,表示要执行的php代码

3.php常见文件包含函数、语言结构

include():仅仅是包含这个文件,若文件不存在,没啥关系,继续执行后面的代码

require():必须包含好文件,若没包含好文件,就不在执行,报错

include_once():包含一次,遇错误继续执行

require_once():成功包含一次,遇到错误停止

4.常见的php伪协议

file协议 http协议 ftp协议 php协议 data协议 phar协议

1.file协议

1>file://.....   file协议用于访问本地计算机的文件,只能在本地访问,无法实现跨域。不写协议名称,就默认是file协议

2>相对路径和绝对路径

相对路径转绝对路径

flag.php  index.php 目录:/var/www/html  include"flag.php"  include"file:///var/www/html/flag.php";
include"flag.php";
include"../html/flag.php"; "/var/www/html/../html/flag.php";

上层目录特性:       

>每个目录都有上层目录           /var/www/html/../../../ => /目录                              >根目录的上层目录是根目录本身    /var/www/html/../../../../../../ => /目录  上溯                    

                                                                  

 php整理特性:                                                                                                                                

 /var/www/html/hyf666/../flag.php => /var/www/html/flag.php 

2.http协议

读取远程协议,获取到本地

<?php

echo file_get_contents("https://baidu.com/robots.txt");

?>

还可以配合文件包含,读取远程的php代码并在本地执行,实现最终rce的效果(注意php中allow_url_include=on)

<?php

include "https://baidu.com/robots.txt";

?>


 3.ftp协议

默认21端口,进行文件传输的协议

4.php协议

1.php://input

1>首先看php中文手册的解释                     

<?php

  include "php://input";

?>

 2> ctfshow中的一道题      

2.php://filter

1>首先看php中文手册的解释

2>两种姿势   

>base64

来看ctfshow里面题目

>rot13

ctfshow的题目

5.data协议

结语:

    php是ctf学习中关键一环,很枯燥,万事开头难,坚持住,慢慢的一步一个脚印地走下去,一定会有所收获。

 "Where you are right now doesn't have to determine where you'll end up."

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

aHlm0

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值