### 简要描述:
n处XSS,我不信都插完打不到cookie,get不了shell -.-
### 详细说明:
第一处(只代码审计第一处,后面几处类似。都是没有过滤):
```
function login_false() {
cookie::set('loginfalse',(int) cookie::get('loginfalse')+1,time()+3600);
event::log('loginfalse','失败 user='.front::post('username'));
front::flash(lang('登陆失败!')."<a href=''>".lang('backuppage')."</a>");
}
```
只要登陆失败,就会调用login_false函数,然后front::post来查询username后返回给event::log函数进行记录
继续跟进post
```
self::$post=$_POST;
```
程序把POST内容给了self::$post
```
static function post($var) {
if (isset(self::$post[$var]))
return self::$post[$var];
else
return false;
}
```
并且直接返回了post内容
继续跟进event::log函数
```
static function log($action,$remark){
$user = new user();
$username = cookie::get('login_username');
$row = $user->getrow(array('username'=>$username));
$uid = $row['userid'];
$action = lang($action);$remark = lang($remark);
$ip = front::ip();
$addtime = time();
$sql = "INSERT INTO `".config::get('database', 'prefix')."event` VALUES (null,'$uid','$username','$ip','$addtime','$action','$remark')";
$event = new event;
$event->query($sql);
}
```
程序直接把参数带入插入语句,无过滤,导致XSS
证明:
前台登陆,用户名填写`<script>alert(document.cookie);</script>`,密码随意
后台日志处,即可触发XSS,cookie内容中包括用户名和密码。
[<img src="https://images.seebug.org/upload/201412/1107243166de9e3e3189c3eed7dd7e64f4ef0c8d.png" alt="1.png" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201412/1107243166de9e3e3189c3eed7dd7e64f4ef0c8d.png)
[<img src="https://images.seebug.org/upload/201412/11072505a42a1090c81a5cff1874519a9bfd8d7c.png" alt="2.png" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201412/11072505a42a1090c81a5cff1874519a9bfd8d7c.png)
第二处:
[<img src="https://images.seebug.org/upload/201412/110725320b150efa1a0065cde49a195271e7f22e.png" alt="3.png" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201412/110725320b150efa1a0065cde49a195271e7f22e.png)
前台支付订单处,订单留言中填写xss代码。
后台处理订单,即可触发XSS,内容中包含用户名和密码
[<img src="https://images.seebug.org/upload/201412/11072600ac25a083050371cfe98c34eda52d64d5.png" alt="4.png" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201412/11072600ac25a083050371cfe98c34eda52d64d5.png)
第三处:
前台应聘处插入XSS。
[<img src="https://images.seebug.org/upload/201412/11072632da33257ef8d27433f4a02d63e54bed30.png" alt="5.png" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201412/11072632da33257ef8d27433f4a02d63e54bed30.png)
后台查看即可触发XSS:
[<img src="https://images.seebug.org/upload/201412/11072703d44c27747bb11c9c0e9b92b47754d94f.png" alt="6.png" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201412/11072703d44c27747bb11c9c0e9b92b47754d94f.png)
[<img src="https://images.seebug.org/upload/201412/110727155fdf8f11458d97478073cf1bce30b70e.png" alt="7.png" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201412/110727155fdf8f11458d97478073cf1bce30b70e.png)
第四处:
前台邮件订阅处(index.php?case=archive&act=email)插入xss代码,未进行邮件合法性判断和xss脚本过滤
[<img src="https://images.seebug.org/upload/201412/110728083c9f2d7bae6409b4b2761d7d581cefee.png" alt="8.png" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201412/110728083c9f2d7bae6409b4b2761d7d581cefee.png)
后台邮件处即可触发。
[<img src="https://images.seebug.org/upload/201412/110728279e7adb868f76b911764fca1b3d89c5b4.png" alt="9.png" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201412/110728279e7adb868f76b911764fca1b3d89c5b4.png)
[<img src="https://images.seebug.org/upload/201412/11072841637a744cc469a2c1579bb0b81fb68bfb.png" alt="10.png" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201412/11072841637a744cc469a2c1579bb0b81fb68bfb.png)
最后,既然都x进后台了,getshell我就不说了吧。模板处直接编辑文件写shell就ok了。基本上想干什么干什么了。
### 漏洞证明:
如上。
暂无评论