近期,印度安全工程师Ashutosh Barot发现phpMyAdmin存在严重CSRF漏洞(跨站请求伪造),可以通过技巧欺骗管理员去点击构造链接,触发对基于phpMyAdmin的MySQL数据库的远程操作,实现对数据库的破坏攻击行为。
漏洞影响
该漏洞对phpMyAdmin 4.7.x系列中4.7.7之前的所有版本造成影响,目前,phpMyAdmin官方已发布漏洞修补声明,声明中提到“该漏洞利用方式为,通过欺骗当前登录用户点击某个恶意构造链接,之后可能导致对MySQL数据库的记录数据等信息的删除(dropping/truncating tables)”。
漏洞分析
CSRF是OWASP Top 10的严重漏洞之一, phpMyAdmin发起删除数据表等操作的POST请求后,会执行一个Get请求,为防止CSRF攻击Get会受到安全防护。该案例中,可以通过如浏览器书签等URL链接来发起POST请求,攻击者可以藉此构造特殊恶意链接按钮,欺骗管理员点击之后,达到操作数据库目的。虽然有这种可能,但对于远程攻击者来说,很难收集到可以构造恶意URL的相关信息。
基于此,我发现可以利用Burp的请求更改功能,把phpMyAdmin的POST请求转换为GET请求,之后,即使身份token过期或被清除,一样可以把它从URL中直接执行。利用这种方法,我可以添加一个wordpress的管理员用户。为了实现目的,攻击者则需要知道cPanel的会话id和数据库名称,其它如wp_users的表名则非常容易进行猜解。
执行数据库操作的构造URL可以被保存在浏览器历史记录中,如果用户点击insert和DROP等按钮来执行查询操作,该URL就需要包含数据库名和表名等信息。由于这种构造URL链接可在浏览器历史、安全事件管理日志(SIEM logs)、防火墙日志、ISP日志等地存储,因此,该漏洞还可导致某种程度上的敏感信息泄露。
POC视频
视频中,远程攻击者通过欺骗管理员点击构造的恶意链接后,就能让管理员毫不知情地删除了整个数据库。
漏洞修复
phpMyAdmin通过数据库管理功能能与WordPress、Joomla等建站系统结合,很多服务托管商也会使用phpMyAdmin后台来管理交互客户数据,基于此,phpMyAdmin已经发布了修复措施,希望相关受影响用户及时修补漏洞,或下载更新版本。
转载来自FreeBuf.COM
领取专属 10元无门槛券
私享最新 技术干货