前言
任意文件读取漏洞,是web安全里高危的漏洞,它可以泄露源码、数据库配置文件等等,导致网站处于极度不安全状态。而这里介绍的是小米路由器的nginx配置文件错误,导致目录穿越漏洞,实现任意文件读取(无需登录)
一、漏洞发现
一次无意间在fofa上冲浪,发现一个可疑ip,点进去发现是小米路由器登录界面,开始尝试去挖掘它的漏洞(简单的测试未做数据破坏等其他恶意行为)
二、漏洞挖掘
1.简单的爆破
直接连Burpsuite,加入字典,发现密码压根不是明文登录,直接换个方向,查看该路由器初始密码,发现为123456,尝试使用加密方式爆破,发现还是不行。到这里我发现压根不能直接获取到,看看能否通过文件读取和下载打开突破口。
2.文件读取
通过查看元素发现为nginx搭建的,可以通过访问
http://domain.cn/xxx../etc/passwd实现目录穿越访问上级目录及其子目录文件。
在小米路由器的文件/etc/sysapihttpd/sysapihttpd.conf中,存在
在小米路由器的文件/etc/sysapihttpd/sysapihttpd.conf中,存在
location /api-third-party/download/extdisks {
alias /extdisks/;
}
故可以任意文件读取根目录下的所有文件,而且是root权限,如访问http://x.x.x.x/api-third-party/download/extdisks../etc/shadow
会主动下载一个文件
不仅仅可以这样输入还可以
location /backup/log {
alias /tmp/syslogbackup/;
}
location /api-third-party/download/public {
alias /userdisk/data/;
}
location /api-third-party/download/private {
alias /userdisk/appdata/;
}
三、漏洞利用
关注两个过程,一是登录时前端js生成http post请求参数过程,二是验证用户登陆的后端过程。
前端js生成http post请求参数过程有
可知
oldPwd = sha1(nonce + sha1(pwd + 'a2ffa5c9be07488bbb04a3a47d3c5f6a'))
登陆请求包为
验证用户登陆的后端过程
需要调用XQSecureUtil.checkUser函数
可构造如下数据包登陆
总结
具体登录进去就不说啦,毕节未经授权的登录是违法的。到这里对于该漏洞的说明就已经讲解完啦,该漏洞大多来源与香港和台湾,大陆也有,当然大家也可以拿到漏洞平台去获得小部分奖励。大陆的基本上都被修复了,这次的漏洞挖掘大家可以去学习和参考。