### 简要描述:
startbbs某处设计不当导致可csrf添加管理员
### 详细说明:
经过对startbbs源代码白盒分析,发现了关键部分(添加管理员+修改任意用户密码)的token设计存在缺陷。
为了防止是token随机生成,我还特地去官网再下了几次源码回来。得到的结果都一样;
token值如下:
[<img src="https://images.seebug.org/upload/201312/29195300df9ae524453ffc7802ba75b4e744264c.jpg" alt="1.jpg" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201312/29195300df9ae524453ffc7802ba75b4e744264c.jpg)
token值遍布以下文件当中:
[<img src="https://images.seebug.org/upload/201312/29195324cf34fd42e1256c8bfdaf84d4fc568085.jpg" alt="2.jpg" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201312/29195324cf34fd42e1256c8bfdaf84d4fc568085.jpg)
最新下载的源码包:
[<img src="https://images.seebug.org/upload/201312/29195405784b1acf2cea04f84ade7fcf1c663200.jpg" alt="3.jpg" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201312/29195405784b1acf2cea04f84ade7fcf1c663200.jpg)
token值对比,依然是一样的:
[<img src="https://images.seebug.org/upload/201312/29195523a04588de811a3c133e85d31daa704062.jpg" alt="4.jpg" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201312/29195523a04588de811a3c133e85d31daa704062.jpg)
估计是开发人员偷懒了吧。
既然知道是这么样的结果,对源码分析就不难构造添加管理员的代码了:
访问poc之前,我的用户组是(2)普通会员
[<img src="https://images.seebug.org/upload/201312/29195637af4715f7be37b1aac744a5456bdae87d.jpg" alt="5.jpg" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201312/29195637af4715f7be37b1aac744a5456bdae87d.jpg)
访问poc之后:
[<img src="https://images.seebug.org/upload/201312/29200228220281743e03fe00e7315cb0a92bdbe6.jpg" alt="6.jpg" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201312/29200228220281743e03fe00e7315cb0a92bdbe6.jpg)
用户已经从普通会员转换成管理员了;
[<img src="https://images.seebug.org/upload/201312/2920031308a0998f89152c0fb05e497460c0698e.jpg" alt="7.jpg" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201312/2920031308a0998f89152c0fb05e497460c0698e.jpg)
poc:
```
None
```
值得一提的是form表单提交地址和用户id一定得提前获取,所幸的是这两点我们都可以轻易获得。
form表单提交地址:index.php/admin/users/edit/4 4就是你的用户id了。
用户id可以访问前台的个人主页得到:
[<img src="https://images.seebug.org/upload/201312/29201005c266794e50854299d16420c8edde1f5a.jpg" alt="8.jpg" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201312/29201005c266794e50854299d16420c8edde1f5a.jpg)
### 漏洞证明:
都在详细说明里头了。。
修改任意用户密码只需要稍微修改下表单就可以了。这里就不演示了。
暂无评论