Advertisement
JamesBops

Untitled

Nov 22nd, 2023
240
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.37 KB | None | 0 0
  1. import requests
  2. import re
  3. import concurrent.futures
  4.  
  5. ses = requests.Session()
  6. 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'})
  7.  
  8. class Bing:
  9.  
  10. def __init__(self, dork):
  11. self.dork = dork
  12. self.urls = []
  13.  
  14. def parse_url(self, url):
  15. try:
  16. s = url.split("/")
  17. new_url = s[0] + "//" + s[2]
  18. return new_url
  19. except:
  20. return url
  21.  
  22. def parse(self, html):
  23. regex = '<h2><a href="(.*?)" .*?>.*?</a></h2>'
  24. try:
  25. urls = re.findall(regex, html)
  26. for url in urls:
  27. url = self.parse_url(url)
  28. if re.search(r'blogspot|wordpress|microsoft', url):
  29. pass
  30. else:
  31. if url not in self.urls:
  32. self.urls.append(url)
  33. else:
  34. pass
  35. except Exception as e:
  36. print(e)
  37.  
  38.  
  39. def dorking(self):
  40. api = 'http://www.bing.com/search?q=' + self.dork + '&first={}&FORM=PERE'
  41. page = 1
  42. while page <= 501:
  43. url = api.format(str(page))
  44. try:
  45. r = ses.get(url, timeout=10)
  46. if r:
  47. self.parse(r.text)
  48. page += 10
  49. else:
  50. break
  51. except Exception as e:
  52. print(e)
  53.  
  54. def output(self):
  55. open("result.txt", "a")
  56. if len(self.urls) > 0:
  57. print("[+] Domain found {} for dork {}".format(len(self.urls), self.dork))
  58. for url in self.urls:
  59. if url not in open("result.txt", "r").read():
  60. with open("result.txt", "a") as f:
  61. f.write(url + "\n")
  62. f.close()
  63. else:
  64. print("[-] No results found for dork {}".format(self.dork))
  65.  
  66. def start(dork):
  67. gas = Bing(dork)
  68. gas.dorking()
  69. gas.output()
  70.  
  71. def main():
  72. list_url = open(input("List ? "), mode='r', encoding='utf-8').read().splitlines()
  73. thread = int(input("Thread ? "))
  74. with concurrent.futures.ThreadPoolExecutor(max_workers=thread) as executor:
  75. executor.map(start, list_url)
  76.  
  77.  
  78. if __name__ == "__main__":
  79. main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement