****************************。

Prologue

好奇出校码怎么生成的,就试了一下,结果发现了信息泄漏。

Pentesting

在获取出校凭证的 JS 代码中通过一个接口获取出校码:

如果传入错误的 ID,就会报错。这个时候会泄漏部分代码以及数据库密码:

尝试了以下连接数据库,发现数据库设置了远程不可登录。扫端口,试了 ftp、ssh 弱口令都没有成功。发现一个可疑的 10789 端口:

打开后是 LNMP 安装成功的界面,包括 phpinfo、phpMyAdmin、探针等后台可以进入。扫目录也能看到:

用前面得到的密码,测试在本地可以连接数据库:

在 phpMyAdmin 中可以用相同的密码登录管理后台。之后进一步还能拿服务器权限

开放在外网的网站有这种问题,相当于把全校的信息暴露给了别人,对这种不负责任的开发感到很无奈。

Advice

  1. 修改后端代码,如果 ID 不存在,返回 404 界面;
  2. 关闭 10789 端口的服务,或者修改 phpMyAdmin 页面文件名,避免被扫目录。

Result

已联系开发,且漏洞已修复。


pentest

本博客所有文章除特别声明外,均采用 CC BY-SA 3.0协议 。转载请注明出处!

ANN & Deep Learning
Machine Learning & SVM