web攻防——文件包含,

文件包含漏洞

这样就可以包含文件

黑盒可以尝试改文件名,看看是不是包含指定的文件


第一关(为协议)

给你这段代码,直接包含flag.php无法正常包含,所有选择包含伪协议

所以我们可以这么做

也可以通过这种为协议

包含远程地址文件

让其包含一个远程的地址

在远处的地址的文件中

限制


第二关

过滤php


第三关(日志包含)

把data和php过滤,试着远程访问也不行,说明禁用了远程协议

写*都不行(只有system才可以使用),其他那些就是需要写具体的路径

因此我们尝试日志包含

首先我们先查看中间件,发现是nginx,于是我们就去网上搜索nginx的日志记录文件的地址

然后发现这个就是日志,我们就可以尝试着将后门写入日杂

然后发送


第四关(session包含)(主页session有时候会自动删除,所以得快一点)

phpstudy一般将session放在这里

然后linux,和windows

首先先上传一个文件,然后修改它的session

然后他就会出现在这

然后将name改成这个

这样写入后门代码

然后这个后门代码就会被写入session文件之中,然后再进行包含就可以了


它会限制目录

这样可以显示

但通过为协议就无法使用了

这样还是可以执行的


第五关(伪协议的写入)

这个“."是过滤日志

想上传这个

我们尝试将其编码

但是浏览器先会自动帮你解码,然后php又会被识别出来,然后,urldecode又会再次进行解码,进行两次解码这样还是会过滤

所以我们决定进行两次编码

这样浏览器解开一次,然后后门的函数再解开一次

file_put_content是将文件写入,file是要被写入的文件

将这个伪协议放其中,他就会创建一个123.php

然后通过post传参将后门写入(注意要记得将这个后门代码编码,因为看上面它这个伪协议后门是将他解码的)

另外一种方法(凯撒)

用roy13对其进行编码

然后

发现是空白

然后打开这个文件


第六关(base64编码)

发现可以用date的为协议 

首先将执行语句进行base64编码

然后通过伪协议,进行包含,那么当include看到这个base64就会自动解码


第七关(UCS_2LE_UCS_2BE解密方式)

发现没有过滤php的为协议,所以可以尝试php为协议写入

php代码后门编译


代码审计cms

用工具搜索关键词include

发现include有文件夹的参数,所以无法使用第三种方法,为协议了

然后浏览网站也没有可以文件上传的地方,所以第二种失效

然后我们尝试直接打开日志文件,但当我们这么输入后

无法打开,因为后面会自动给我加上.php就失效了

最后用这种方法,就可以把后面cms的php给去掉

但是这只有低版本才可以

  • 9
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值