记一次校内站点的漏洞挖掘测试

admin 2023年5月10日03:19:36评论211 views字数 3468阅读11分33秒阅读模式

记一次校内站点的漏洞挖掘测试

0x00 前言

这次渗透的对象是一个校内的获奖提交申报平台。不知道什么原因,这个站点未接入深信服waf,所以这次渗透过程异常轻松。

0x01 越权

首先使用功能点添加一次申报
记一次校内站点的漏洞挖掘测试


点击编辑,抓包
记一次校内站点的漏洞挖掘测试

可以看到是使用id控制返回的数据的
记一次校内站点的漏洞挖掘测试


服务端没有进行鉴权,修改id可返回其他用户的数据
记一次校内站点的漏洞挖掘测试


其他接口也是一样

越权修改
记一次校内站点的漏洞挖掘测试
记一次校内站点的漏洞挖掘测试


越权删除
记一次校内站点的漏洞挖掘测试


0x02 任意文件上传

记一次校内站点的漏洞挖掘测试


还是在提交申报那里,添加文件,抓包

记一次校内站点的漏洞挖掘测试

并没有返回文件路径,但返回了id,所以要配合刚才的越权接口使用

记一次校内站点的漏洞挖掘测试

成功解析

记一次校内站点的漏洞挖掘测试

0x03 任意文件下载

在刚才的viewPage接口返回的数据里,可以看到调用了名为downloadFile的js函数
记一次校内站点的漏洞挖掘测试


我们看下源码
记一次校内站点的漏洞挖掘测试


盲猜这里可以进行目录跨越,fileName就是文件名,fileType就是文件后缀,还不清楚后缀是不是白名单


先随便传个参看看

记一次校内站点的漏洞挖掘测试


好家伙,太贴心了,没有任何限制还直接把当前目录都返回出来,构造一下

记一次校内站点的漏洞挖掘测试


0x04 任意权限的用户添加

在翻看数据包的时候,发现接口的命名都非常有规律,比如:
记一次校内站点的漏洞挖掘测试


addPage就是刚才内联框架所使用的HTML文件,里面不仅包含了相关的接口,还包含了表单的字段名
记一次校内站点的漏洞挖掘测试


并且接口名称studentwardroleresourcecounsellor都是跟功能相关的英文,非常好猜


构造administratororganizationcontroller等名称,或者拿本英汉大字典跑也行,最后Fuzz出来了user


/user/addPage 如下:

<script type="text/javascript">    $(function() {        $('#userAddOrganizationId').combotree({            url : '/organization/tree',            parentField : 'pid',            lines : true,            panelHeight : '200'        });
$('#userAddRoleIds').combotree({ url: '/role/tree', multiple: true, required: true, panelHeight : 'auto' });

$('#sex').combobox({ url:'/dict/loadcombobox?code=sex', method: 'get', valueField:'val', textField:'description', panelHeight : 'auto', groupField:'group'
});
$('#userType').combobox({ url:'/dict/loadcombobox?code=userType', method: 'get', valueField:'val', textField:'description', panelHeight : 'auto', groupField:'group' });
$('#userStatus').combobox({ url:'/dict/loadcombobox?code=userStatus', method: 'get', valueField:'val', textField:'description', panelHeight : 'auto', groupField:'group' });
$('#userAddForm').form({ url : '/user/add', onSubmit : function() { progressLoad(); var isValid = $(this).form('validate'); if (!isValid) { progressClose(); } return isValid; }, success : function(result) { progressClose(); result = $.parseJSON(result); if (result.success) { parent.$.modalDialog.openner_dataGrid.datagrid('reload'); parent.$.modalDialog.handler.dialog('close'); } else { var form = $('#userAddForm'); parent.$.messager.alert('提示', eval(result.msg), 'warning'); } } });
});</script><div class="easyui-layout" data-options="fit:true,border:false"> <div data-options="region:'center',border:false" title="" style="overflow: hidden;padding: 3px;"> <form id="userAddForm" method="post"> <table class="grid"> <tr> <td>学工号</td> <td><input name="loginName" type="text" placeholder="请输入登录名称" class="easyui-validatebox" data-options="required:true" value=""></td> <td>姓名</td> <td><input name="name" type="text" placeholder="请输入姓名" class="easyui-validatebox" data-options="required:true" value=""></td> </tr> <tr> <td>密码</td> <td><input name="password" type="password" placeholder="请输入密码" class="easyui-validatebox" data-options="required:true"></td> <td>性别</td> <td> <input name="sex" class="easyui-textbox" id="sex" type="text" style="width: 140px; height: 29px;">
</td> </tr> <tr> <td>年龄</td> <td><input type="text" name="age" class="easyui-numberbox"/></td> <td>用户类型</td> <td> <input name="userType" class="easyui-textbox" id="userType" type="text" style="width: 140px; height: 29px;"> </td> </tr> <tr> <td>部门</td> <td><select id="userAddOrganizationId" name="organizationId" style="width: 140px; height: 29px;" class="easyui-validatebox" data-options="required:true"></select></td> <td>角色</td> <td><select id="userAddRoleIds" name="roleIds" style="width: 140px; height: 29px;"></select></td> </tr> <tr> <td>电话</td> <td> <input type="text" name="phone" class="easyui-numberbox"/> </td> <td>用户状态</td> <td> <input name="status" class="easyui-textbox" id="userStatus" type="text" style="width: 140px; height: 29px;"> </td> </tr> </table> </form> </div></div>

可以看到你不会填的都给你提供相关接口查询,比如userAddRoleIds提供/role/tree接口
记一次校内站点的漏洞挖掘测试


最后直接构造数据包
记一次校内站点的漏洞挖掘测试


结束

记一次校内站点的漏洞挖掘测试


文章来源:先知社区(John)原文地址:https://xz.aliyun.com/t/1239排版:潇湘信安


黑白之道发布、转载的文章中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,任何人不得将其用于非法用途及盈利等目的,否则后果自行承担!

如侵权请私聊我们删文


END

记一次校内站点的漏洞挖掘测试

多一个点在看记一次校内站点的漏洞挖掘测试多一条小鱼干


原文始发于微信公众号(黑白之道):记一次校内站点的漏洞挖掘测试

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年5月10日03:19:36
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   记一次校内站点的漏洞挖掘测试http://cn-sec.com/archives/1716862.html

发表评论

匿名网友 填写信息