A-A+

某平台前端“自慰”导致越权

2017年09月30日 12:46 漏洞安全 暂无评论 阅读 459 views 次

【注意:此文章为博主原创文章!转载需注意,请带原文链接,至少也要是txt格式!】

好久没有发公开的漏洞文章了,今天来一发。再对某项目进行渗透测试的时候,发现这个系统前端使用的是AngularJS框架开发的程序,很简单也很简洁。

某平台修改Response body(返回值)导致越权 - AngularJS框架开发

AngularJS 框架

AngularJS 框架

功能还不是特别特别多,但是还算是非常完善,而且界面也非常不错。不过这里面发现,很多东西权限控制的非常到位,什么XSS,什么注入,什么越权基本都没有发现,难道事实真的是这样吗?想了又想,绝对从新仔细分析一下这个程序,注意我只是普通用户的身份。先登录进系统,如下图:

某智能监控系统

某智能监控系统

注意图中我用红色画方框的地方,在左侧,有一个后台管理。但是只有一个“CMDB管理”。

这里呢,我再浏览这个网站的时候发现这个网站加载了一些html文件,然后还有一些返回值。如下图:

加载 userInfo.htm 返回个人信息

加载 userInfo.htm 返回个人信息

这里我们暂且先记一下,我们看看别的加载的页面。这里要注意加载这个页面返回的信息呦。一定要留意上图中的 【"role":"USER"】

这里,通过仔细查看,发现又加载了其他的页面,咱们看一下其他页面的源码。

settings/mySystems.html 返回的页面数据

settings/mySystems.html 返回的页面数据

注意我图中画圈的地方。有段html代码是这样婶滴【ng-if="vm.role != 'ADMIN'"】。

通过跟上面我个人的【"role":"USER"】与其他页面的【role != 'ADMIN'】做对比,你是不是也发现了什么??

既然这样咱们是不是可以想办法把自己的USER权限修改成ADMIN,其实这个有点类似于“自慰”,但是咱们且看下面继续分解。

咱们从新刷新一下页面。然后截取数据包,如下图操作(每次都这么修改会特别麻烦,测试时可用Match and Replace来替换):

Response body - userInfo.html

Response body - userInfo.html

然后点击上面的“放行”,然后会如下图返回数据包:

修改返回来的数据包

修改返回来的数据包

修改完后,我们放行,然后再查看页面。如下图:

“自慰”成功

“自慰”成功

既然“自慰”成功了,那下面就看看这些功能吧。最后经过测试,很多都是“权限不够”。

权限不够

权限不够

注意,我说的很多都是“权限不够”,并不是所有功能都没有权限。最终发现,本来没权限的地方,有很多都有权限了。如下图。能看到所有人的信息(含姓名、电话、工号、邮箱、部门等信息)。

越权查看所有用户信息

越权查看所有用户信息

还有一处本来没有权限,经过修改也有权限了(控制告警功能呢,告警、短信等等)。如下图:

越权修改配置

越权修改系统配置

标签:

给我留言