未授权访问查看管理员账号密码
目标是个网关系统,使用弱口令进入系统后,开始测试功能点,在系统用户处测试抓包:
删除cookie后发现仍然可以访问管理员相关信息包括密码、手机号码等:
浏览器直接访问,然后查看密码即可:
任意文件下载
后台存在日志查询功能点, 查看服务器日志时有下载功能:
点击下载并抓包:
将参数fileName的值删除重放后报错泄漏了物理路径,其中fopen(../../../log/)猜测是downFile.php文件中的源代码:
在参数fileName后拼接:../../../VAG/pag/web/html/serverLog/downFile.php,查看downFile.php源码。定义了$file_dir的值为../../../log/,这里用户传入的值$file_name没有进行任何过滤,就直接拼接在变量$file_dir后面然后使用fopen函数打开拼接后的文件。
这里使用../可以直接下载任意文件:
任意文件读取
在测试服务器日志时,服务器返回的代码中含有参数showFile.php?fileName=:
这里构造数据包/serverLog/showFile.php?fileName= 可以直接查看目标源文件:
在测试过程中发现存在未授权访问,在浏览器中可以直接读取文件源代码:
未授权创建存储型XSS
发现在资源管理功能点存在未授权,可以创建存储型XSS,插入XSS平台地址:
当管理员访问资源管理功能点时:
XSS平台成功获取到系统管理员cookie:
任意用户密码修改
在后台管理测试修改密码功能点,这里原始密码随意输入,点击保存并抓包。
发现在/data/checkIsExist.php数据包中会对当前账户的原始密码进行校验,原始密码错误返回1,密码正确返回0。
这里将服务器返回的数据包修改为0,进入下一个数据包,这里是对密码进行修改。
释放数据包后显示密码修改成功:
使用修改之后的密码去尝试登录,可以成功登录到管理后台。
此时想到这个系统存在很多未授权操作,如果修改密码功能点也存在未授权,那么就可以直接重置系统任意用户的密码。
这里浏览器直接访问修改密码的URL,发现用户名为空:
这里按照之前的流程先走一遍,点击保存并抓包,发现name参数的值为空,这里修改为admin:
在修改服务器返回的数据包为0之后,再将参数name的值修改为admin:
释放数据包后,显示修改成功:
使用修改之后的密码去登录,成功登录到管理后台。
后来测试发现,不需要原始密码的验证也是可以的,直接使用修改密码的数据包来进行修改密码,即可将密码重置:
最新评论