Security_Code/漏扫插件/弱口令检测/PHPMYADMIN/批量获取后台2.py

66 lines
1.7 KiB
Python

# -*- coding:utf-8 -*-
#__author__:langzi
#__blog__:www.langzi.fun
import asyncio
import aiomultiprocess
import aiohttp
import aiofiles
import time
import multiprocessing
phpmyadmin_prefix=[
'/phpmyadmin/index.php',
'/phpma/index.php',
'/phpMyAdmin/index.php',
'/MyAdmin/index.php',
'/xampp/phpmyadmin/index.php',
'/tools/phpmyadmin/index.php',
':999/phpmyadmin',
'/phpMyAdmin',
'/phpMyAdmins',
'/phpmyadmin',
'admin/phpmyadmin/',
'/phpMyAdmin0',
'/phpMyAdmin1',
'/phpMyAdmin2',
'/phpMyAdmin_0',
'/phpMyAdmin-2',
'/pma',
'/pm_Admin',
'/pmd'
]
async def run(url):
async with asyncio.Semaphore(1000):
async with aiohttp.ClientSession() as session:
try:
async with session.get(url, timeout=10) as resp:
print('{}: {}'.format(resp.url, resp.status))
if resp.status == 200:
result = await resp.text()
if 'name="pma_username"' in result:
async with aiofiles.open('phpmyadmin_url.txt', 'a+')as f:
await f.write(url + '\n')
except Exception as e:
print(e)
async def main(urls):
async with aiomultiprocess.Pool()as pool:
await pool.map(run, urls)
if __name__ == '__main__':
multiprocessing.freeze_support()
all_tasks = []
url_ss = input('INPUT YOUR URLS.TXT:')
urls = [x.strip() for x in open(url_ss,'r',encoding='utf-8').readlines()]
for p in phpmyadmin_prefix:
for u in urls:
all_tasks.append(u + p)
print('任务总数:{}'.format(len(all_tasks)))
start_time = time.time()
loop = asyncio.get_event_loop()
loop.run_until_complete(main(urls))
print('总共耗时: {}'.format(time.time() - start_time))