Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import requests
- import re
- import concurrent.futures
- ses = requests.Session()
- ses.headers.update({'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36'})
- class Bing:
- def __init__(self, dork):
- self.dork = dork
- self.urls = []
- def parse_url(self, url):
- try:
- s = url.split("/")
- new_url = s[0] + "//" + s[2]
- return new_url
- except:
- return url
- def parse(self, html):
- regex = '<h2><a href="(.*?)" .*?>.*?</a></h2>'
- try:
- urls = re.findall(regex, html)
- for url in urls:
- url = self.parse_url(url)
- if re.search(r'blogspot|wordpress|microsoft', url):
- pass
- else:
- if url not in self.urls:
- self.urls.append(url)
- else:
- pass
- except Exception as e:
- print(e)
- def dorking(self):
- api = 'http://www.bing.com/search?q=' + self.dork + '&first={}&FORM=PERE'
- page = 1
- while page <= 501:
- url = api.format(str(page))
- try:
- r = ses.get(url, timeout=10)
- if r:
- self.parse(r.text)
- page += 10
- else:
- break
- except Exception as e:
- print(e)
- def output(self):
- open("result.txt", "a")
- if len(self.urls) > 0:
- print("[+] Domain found {} for dork {}".format(len(self.urls), self.dork))
- for url in self.urls:
- if url not in open("result.txt", "r").read():
- with open("result.txt", "a") as f:
- f.write(url + "\n")
- f.close()
- else:
- print("[-] No results found for dork {}".format(self.dork))
- def start(dork):
- gas = Bing(dork)
- gas.dorking()
- gas.output()
- def main():
- list_url = open(input("List ? "), mode='r', encoding='utf-8').read().splitlines()
- thread = int(input("Thread ? "))
- with concurrent.futures.ThreadPoolExecutor(max_workers=thread) as executor:
- executor.map(start, list_url)
- if __name__ == "__main__":
- main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement