未授权访问查看管理员账号密码

目标是个网关系统,使用弱口令进入系统后,开始测试功能点,在系统用户处测试抓包:

通用漏洞挖掘——网关系统-RadeBit瑞安全

删除cookie后发现仍然可以访问管理员相关信息包括密码、手机号码等:

通用漏洞挖掘——网关系统-RadeBit瑞安全

浏览器直接访问,然后查看密码即可:

通用漏洞挖掘——网关系统-RadeBit瑞安全

任意文件下载

后台存在日志查询功能点, 查看服务器日志时有下载功能:

通用漏洞挖掘——网关系统-RadeBit瑞安全

点击下载并抓包:

通用漏洞挖掘——网关系统-RadeBit瑞安全

将参数fileName的值删除重放后报错泄漏了物理路径,其中fopen(../../../log/)猜测是downFile.php文件中的源代码:

通用漏洞挖掘——网关系统-RadeBit瑞安全

在参数fileName后拼接:../../../VAG/pag/web/html/serverLog/downFile.php,查看downFile.php源码。定义了$file_dir的值为../../../log/,这里用户传入的值$file_name没有进行任何过滤,就直接拼接在变量$file_dir后面然后使用fopen函数打开拼接后的文件。

这里使用../可以直接下载任意文件:

通用漏洞挖掘——网关系统-RadeBit瑞安全

任意文件读取

在测试服务器日志时,服务器返回的代码中含有参数showFile.php?fileName=:

通用漏洞挖掘——网关系统-RadeBit瑞安全

这里构造数据包/serverLog/showFile.php?fileName= 可以直接查看目标源文件:

通用漏洞挖掘——网关系统-RadeBit瑞安全

在测试过程中发现存在未授权访问,在浏览器中可以直接读取文件源代码:

通用漏洞挖掘——网关系统-RadeBit瑞安全

未授权创建存储型XSS

发现在资源管理功能点存在未授权,可以创建存储型XSS,插入XSS平台地址:

通用漏洞挖掘——网关系统-RadeBit瑞安全

当管理员访问资源管理功能点时:

通用漏洞挖掘——网关系统-RadeBit瑞安全

XSS平台成功获取到系统管理员cookie:

通用漏洞挖掘——网关系统-RadeBit瑞安全

任意用户密码修改

在后台管理测试修改密码功能点,这里原始密码随意输入,点击保存并抓包。

通用漏洞挖掘——网关系统-RadeBit瑞安全

发现在/data/checkIsExist.php数据包中会对当前账户的原始密码进行校验,原始密码错误返回1,密码正确返回0。

通用漏洞挖掘——网关系统-RadeBit瑞安全

这里将服务器返回的数据包修改为0,进入下一个数据包,这里是对密码进行修改。

通用漏洞挖掘——网关系统-RadeBit瑞安全

释放数据包后显示密码修改成功:

通用漏洞挖掘——网关系统-RadeBit瑞安全

使用修改之后的密码去尝试登录,可以成功登录到管理后台。

此时想到这个系统存在很多未授权操作,如果修改密码功能点也存在未授权,那么就可以直接重置系统任意用户的密码。

这里浏览器直接访问修改密码的URL,发现用户名为空:

通用漏洞挖掘——网关系统-RadeBit瑞安全

这里按照之前的流程先走一遍,点击保存并抓包,发现name参数的值为空,这里修改为admin:

通用漏洞挖掘——网关系统-RadeBit瑞安全

在修改服务器返回的数据包为0之后,再将参数name的值修改为admin:

通用漏洞挖掘——网关系统-RadeBit瑞安全

释放数据包后,显示修改成功:

通用漏洞挖掘——网关系统-RadeBit瑞安全

使用修改之后的密码去登录,成功登录到管理后台。

后来测试发现,不需要原始密码的验证也是可以的,直接使用修改密码的数据包来进行修改密码,即可将密码重置:

通用漏洞挖掘——网关系统-RadeBit瑞安全