曲径通幽论坛

 找回密码
 立即注册
搜索
查看: 3275|回复: 0
打印 上一主题 下一主题

[PHP+MYSQL] 使用 load_file() 函数读取文件内容

[复制链接]

4918

主题

5880

帖子

3万

积分

GROAD

曲径通幽,安觅芳踪。

Rank: 6Rank: 6

积分
34395
跳转到指定楼层
楼主
发表于 2013-9-13 16:35:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
load_file() 函数的原型为 load_file(file_name) 。它读取文件并将这一文件按照字符串的格式返回。文件的位置必须在服务器上,你必须为文件制定路径全名,而且你还必须拥有 FILE 权限。文件必须可读取,文件容量必须小于 max_allowed_packet 字节。

若文件不存在,或因不满足上述条件不能被读取,函数返回 NULL。

下面演示利用该文件获取数据库的用户名和密码。

在一些网站中,有一个配置文件,数据库的用户和密码信息都会写到里头,我们这里就利用 load_file() 函数来读取到这些关键的信息。

由于 load_file() 的参数是个绝对路径,因此可以先用单引号等方法让网页出错,这时往往会爆出网站的物理途径,如下图所示:


由上面可以看到,网站的绝对物理路径已经暴露出来。下面就用 load_file() 来读取一个页面,然后从中 找到和数据库交互的信息。如下图提交的语句:


这样一来,页面代码(一般是部分)会显示在网页上,看上去会比较凌乱,如下图所示:


在上面所提交的 URL 中,load_file() 的参数用十六进制来表示,它对应原本的字符串为:E:\phpStudy\WWW\ch14\news\show_news.php 。转换字符串有多种工具,也可以使用 http://www.groad.net/bbs/read.php?tid-8000.html 这里提供的工具,但要小心使用。

为了更方便读取 show_news.php 这个文件的内容,可以读取上面错乱页面的代码,然后从中寻找相关的信息。从源码中发现了一处关键语句:


上面包含了 dbtools.inc.php 这个文件,这个就是数据库配置文件了。因为你在 show_news.php 中会执行到数据库的查询语句,必然会先连接数据库,因此若本文件中若没有相关语句,那么它就会被别的文件锁包含。下面用同样的方法读取这个 dbtools.inc.php ,如下提交语句:


然后会看到暴出的代码信息:


从上面可以看到,连接数据库的是 root 用户,密码也直接给了出来。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|曲径通幽 ( 琼ICP备11001422号-1|公安备案:46900502000207 )

GMT+8, 2025-5-4 01:56 , Processed in 0.080270 second(s), 23 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表