CTF从入门到提升(十一)文件包含

文件包含在网站开发中用于减少代码重复,但也可能导致安全问题。本地和远程文件包含漏洞可能让攻击者通过控制参数执行恶意代码。例如,利用伪协议如file或phar,攻击者可能绕过限制,上传后门文件。了解这些漏洞对于提升CTF技能至关重要。

​​在这里插入图片描述

Include stdio.h

Import request

很多网站的admin(管理员)入口和user(用户)入口是分开的,登陆过程所调用的函数可能都是同一个函数,最后操作的表不同。如果调用的是同一个函数,网站一般分开两个文件存储:admin目录和user目录。在不同文件中,如果没有使用“文件包含”这个操作,同一个函数就会出现在两个文件中增加重复工作的工作量。但是如果使用“文件包含”操作,直接调用函数就可以了。
在这里插入图片描述

如果不用文件包含需要重复写,所有的内容都写在一个文件里面,文件会非常大,维护起来也非常难。

文件包含产生了之后,相应的漏洞也是在特定几个条件下才会产生。

为了代码灵活将包含的文件设置成一个变量进行动态调用,但却导致用户可以去恶意调用,造成了文件包含漏洞。

比如说index.php?page=aaa&func=bbb调用.php?page=aaa中的func=bbb函数。

  • 相关函数

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

不一定要去包含这种php文件,只要里头包含完整的块就可以。我们可以控制然被包含文件的内容,比如插入一段php代码, 或者压缩包,压缩包需要配合一些伪协议。

  • 本地文件包含

在这里插入图片描述

  • 具体场景——上传的可控文件

在这里插入图片描述

验证一下包含的效果:

在这里插入图片描述

  • 远程文件包含

?在请求过程中作为一个参数传递给aaa.com/1.txt?a.php,1.txt只要请求的东西不被这个参数影响,后面传什么参数进去,其实都没有关系。
在这里插入图片描述

如果是远程文件包含就可以做绕过,但你要注意到远程包含的时候,如果说你要去包含远程文件,http中支持的协议就是http https ftp这三个,问号绕过和之前%00截断的道理是有点类似的。HTTP中文件包含用的最多的还是伪协议,比如说file重点看一下。

- 具体场景——伪协议

在这里插入图片描述

  • 举栗子

在这里插入图片描述

up load看起来像一个文件名的前缀,
在这里插入图片描述

它就会返回一个目录,这个目录的区包含文件,它支持伪协议,那可以用这个形式去试一下,后面跟上一个井号,这里存在一个编码问题,实际传的就是.php,要把他本来带的这个.php给去掉,再去这样执行,你就会发现它执行成功了,里面的文件换成一个我需要的后门就可以了,打包和部署可以免去大量的麻烦。
在这里插入图片描述

配合phar协议来,我们把zip换成phar这样来试试看,发现执行成功。

在这里插入图片描述

这就是phar的一个作用,如果说你在一个点上能够上传phar包,但是你又不知道如何去构造phar包,你就可以直接找个压缩包,改了后缀名改成phar上传,再配合phar伪协议就可以了。
在这里插入图片描述
创立了一个phpinfor.php,然后把它压缩,压缩之后再改成jpg,上传这个文件后它属于哪种文件类型呢?
在这里插入图片描述

还是可以成功的。

以上内容参考安全牛课堂《CTF从入门到提升

了解更全面的CTF《CTF先导课

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值