一段时间后,我发现在以下设置的WHERE条件下,我的网站上使用的组件的参数未经过滤:
使用Joomla! 1.5,最新更新。
该组件是定制的,相当小,在阅读其源代码之后,我无法发现其他任何安全缺陷。
攻击者正在使用SQLMap进行工作,正如我在日志中看到其用户代理一样。
MySQL版本是5.1.11
PHP版本是5.1.4
数据库用户具有USAGE特权。
服务器操作系统是Linux。
在自己的盒子上尝试相同的步骤后,我能够读取数据库(并且由于我不是sql注入专家,所以我不确定那是我能做的一切)。
我担心的主要是会话表,攻击者能否从中模拟用户?除此之外,他是否有可能将一些有效负载上传到我的服务器?
另外,他是否可以通过此SELECT查询“神奇地”更新某些字段? (没有可用的堆叠查询)。
提前致谢。
最佳答案
如果您可以读取数据库,则可以使用SQLMap转储该数据库,并找到管理员密码的哈希值。
有了该哈希,攻击者就可以破解它(或者如果它是MD5,则可以很快找到冲突)并登录到您的管理员帐户。
从那里开始,您的管理员帐户被搞砸了。攻击者具有管理员权限,因此请考虑您的站点已死。更糟糕的是,如果Joomla像Wordpress一样,攻击者可以在主题中使用自定义PHP代码,从而使他们可以进入操作系统级别并修改Joomla安装。
简而言之,由于Joomla在运行时会执行任意PHP代码,因此它们可能会破坏您的服务器。
关于mysql - 如果攻击者能够读取Joomla!的数据库,那么他会造成很大的伤害吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6259687/