实战|记一次校内站点的渗透测试

admin 2023年4月11日10:36:01评论47 views字数 3153阅读10分30秒阅读模式

前言

这次渗透的对象是一个校内的获奖提交申报平台。不知道什么原因,这个站点未接入深信服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" >
<div 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" value=""></td>
<td>姓名</td>
<td><input name="name" type="text" placeholder="请输入姓名" class="easyui-validatebox" value=""></td>
</tr>
<tr>
<td>密码</td>
<td><input name="password" type="password" placeholder="请输入密码" class="easyui-validatebox" ></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" ></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接口

实战|记一次校内站点的渗透测试


最后直接构造数据包

实战|记一次校内站点的渗透测试


结束

实战|记一次校内站点的渗透测试


原文链接:https://xz.aliyun.com/t/12391



实战|记一次校内站点的渗透测试

原文始发于微信公众号(亿人安全):实战|记一次校内站点的渗透测试

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年4月11日10:36:01
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   实战|记一次校内站点的渗透测试https://cn-sec.com/archives/1665753.html

发表评论

匿名网友 填写信息