### 简要描述:
mao10cms有条件的文件包含漏洞
### 详细说明:
1.mao10cms采用了mysqli的数据库操作方式,而且所有的数据库操作都是参数绑定的,蛋疼。只有来看一个有条件的文件包含漏洞了。漏洞文件index.php
```
<?php
require "do/functions.php";
$conn = mysql_connect($mysqli['host'],$mysqli['username'],$mysqli['password']);
if($conn) :
$mod = strtolower(isset($_GET['m']) ? $_GET['m'] : "index");
$act = strtolower(isset($_GET['a']) ? $_GET['a'] : "index");
require "mod/{$mod}.php";
$app = New Maoo();
$app->$act();
else :
require "gdb.php";
endif;
```
2.这里的$_GET['m']直接传入了require,二没有经过过滤,那么就可以考虑截断的文件包含。两种方式,一种是%00,一种是超长文件。两种都有条件,大家懂得。这里以%00为例,注册一个用户,上传一张图片马
[<img src="https://images.seebug.org/upload/201510/1010533428c57827497e5b396e65141dadc0b88d.png" alt="1.png" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201510/1010533428c57827497e5b396e65141dadc0b88d.png)
然后下面可以获取到图片的路径,直接进行包含
**.**.**.**:8080/mao10cms/?m=..https://images.seebug.org/upload/20151010/20151010024141_37891.jpg%00
[<img src="https://images.seebug.org/upload/201510/101054343eb81930486161968e2a8bb6a3d04e30.png" alt="2.png" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201510/101054343eb81930486161968e2a8bb6a3d04e30.png)
。应该不用说也知道这是一个马了吧
### 漏洞证明:
[<img src="https://images.seebug.org/upload/201510/101054343eb81930486161968e2a8bb6a3d04e30.png" alt="2.png" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201510/101054343eb81930486161968e2a8bb6a3d04e30.png)
暂无评论