1.安装
直接在网上搜索就可以了,这里需要注意的还是php的版本问题,这个真的很容易出问题,我的配置是php5.3+apache+mysql的组合,在安装的时候先访问install之后再设置基本内容之后就可以打开了
2.审计
1.文件读取常见的函数
和文件的下载不同,读取没有固定的功能展示,所以我们一般选择特定的函数来查看
大佬的网址:https://www.cnblogs.com/chinalorin/p/5855632.html
2.审计跟踪
我们首先导入seay
选择全文搜索,直接搜索函数就可以了,由于我们提前知道了函数,直接搜索readfile就可以了
一般情况下我们一个一个查看,但是这里我们直接点击old_thumb.class.php查看这个$dir变量的
得到结论,$dir可以用get上传控制,在这个上传变量前面需要http才可以执行,这个地方使用replace函数过滤,这个函数只能过滤一次,这个地方可以发现是有漏洞的,这个不是一个函数而是一个类,所以我们要跟踪是谁创建这个对象了,固定格式是变量=new 类
我们全局搜索old_thumb这个类名
可以发现是thumb.php调用的,但是这个地方 我们没看见创建类的格式,这里我们可以推断是一个自定义的写法,为了确定是这里在创建对象,我们查看包含的引用文件entrance.php
在里面看了一圈也没这个创建对象的句子,我们再查看引用文件,这里可以查看具体语句,也可以直接搜索这个php名字
在232行可以看见这个创建新对象的语句,可以推断在thumb.php是创建了对象dir
3.构造payload
首先前面需要有http,而且要多写一个\..来绕过过滤,我们构造语句去查看这个数据库的配置
http\..\..\config\config_db.php
还可以查看www下的其他文件
这里需要注意的是,记得用burpsuite去尝试,在页面上只会显示无法访问的句子
3.思路梳理
readfile(dir是一个可以控制的变量,存在过滤的漏洞)<-old_thumb.php(是一个类需调用)<-thumb.php(调用,但是自定义写法,确定创建对象)<-entrance.php(创建对象)<-load.class.php(创建对象)
在thumb.php创建对象