• Home
  • Hacking & Security
    • Network Hacking
    • Web Hacking
    • Social Engineering
    • Kali Linux
    Submit An Article
  • Courses
    • All Courses
    • Bundles
    • VIP Membership
    • FAQ

    Popular Courses

    Network Hacking Continued – Intermediate to Advanced

    Network Hacking Continued – Intermediate to Advanced

  • Shop
  • Competitions
  • Services
    Penetration Testing
    Consulting
    Code Review
    One on one Training
    Online Courses
    VPN
  • Blog
      • Cart

        0
    VIP Membership
    Got a question?
    [email protected]
    RegisterLogin
    zSecurityzSecurity
    • Home
    • Hacking & Security
      • Network Hacking
      • Web Hacking
      • Social Engineering
      • Kali Linux
      Submit An Article
    • Courses
      • All Courses
      • Bundles
      • VIP Membership
      • FAQ

      Popular Courses

      Network Hacking Continued – Intermediate to Advanced

      Network Hacking Continued – Intermediate to Advanced

    • Shop
    • Competitions
    • Services
      Penetration Testing
      Consulting
      Code Review
      One on one Training
      Online Courses
      VPN
    • Blog
        • Cart

          0

      July 27, 2020 at 9:20 am #43129
      Peter QueenPeter Queen
      Participant

      Hello Diego,

      here is the code:

      #!/usr/bin/env python
      
      import requests
      import re
      import urllib.parse as urlparse
      from bs4 import BeautifulSoup
      
      class Scanner:
          def __init__(self, url, ignore_links):
              self.session = requests.Session()
              self.target_url = url
              self.target_links = []
              self.links_to_ignore = ignore_links
      
          def extract_links_from(self, url):
              response = self.session.get(url)
              return re.findall('(?:href=")(.*?)"', response.content.decode(errors="ignore"))  # response.content.decode(ignore="error))
      
          def crawl(self, url=None):
              if url == None:
                  url =self.target_url
      
              href_links = self.extract_links_from(url)
              for link in href_links:
                  link = urlparse.urljoin(url, link)
      
                  if "#" in link:
                      link = link.split("#")[0]
      
                  if self.target_url in link and link not in self.target_links and link not in self.links_to_ignore:
                      self.target_links.append(link)
                      print(link)
                      self.crawl(link)
      
          def extract_forms(self,url):
              response = self.session.get(url)
              parsed_html = BeautifulSoup(response.content, features="lxml")
              return parsed_html.findAll("form")
      
          def submit_form(self, form, value, url):
              action = form.get("action")
              post_url = urlparse.urljoin(url, action)
              method = form.get("method")
      
              inputs_list = form.findAll("input")
              post_data = {}
              for input in inputs_list:
                  input_name = input.get("name")
                  input_type = input.get("type")
                  input_value = input.get("value")
                  if input_type == "text":
                      input_value = value
      
                  post_data[input_name] = input_value
                  if method == "post":
                      return self.session.post(post_url, data=post_data)
                      return self.session.get(post_url, params=post_data)
      
          def run_scanner(self):
              for link in self.target_links:
                  forms = self.extract_forms(link)
                  for form in forms:
                      print("[+] Testing form in " + link)
                      is_vulnerable_to_xss = self.test_xxs_in_form(form, link)
                      if is_vulnerable_to_xss:
                          print("[****] XXS discovered in " + link + "in the following form")
                          print(form)
      
                  if  "=" in link:
                      print("\n\n[+] Testing  " + link)
                      is_vulnerable_to_xss = self.test_xxs_in_link(link)
                      if is_vulnerable_to_xss:
                          print("[****] XXS discovered in " + link )
      
          def test_xxs_in_link(self,url):
              xxs_test_script = "<sCript>alert('test')</scriPt>"
              url = url.replace("=", "=" + xxs_test_script)
              response = self.session.get(url)
              return xxs_test_script.encode() in response.content
      
          def test_xxs_in_form(self, form, url):
              xxs_test_script = "<sCript>alert('test')</scriPt>"
              response = self.submit_form(form, xxs_test_script, url)
              return xxs_test_script.encode() in response.content

      Categories

      • Cryptography
      • Cryptography
      • CTF
      • Forensics
      • Hacking & Security
      • IOT
      • Kali Linux
      • Network Hacking
      • News
      • OSINT
      • Post Exploitation
      • Post Exploitation
      • Programming
      • Security
      • Social Engineering
      • Uncategorized
      • Web Hacking

      Popular Posts

      Got a Blank Screen After Importing Kali in Virtual Box ? Here’s How To Fix It
      25Jan2018
      How To Start a Fake Access Point (Fake WIFI)
      28Nov2019
      How to Discover Device Manufacturer Based on MAC Address
      28May2018
      HiddenEye – The All in One Phishing Solution
      28Apr2020

      Connect with us

      • Facebook
      • Twitter
      • LinkedIn
      • Instagram
      • Youtube

      “Everything related to ethical hacking

      & cyber security in one place.”

      Quick Links

      • Home
      • About Us
      • Hacking & Security
      • Contact
      • FAQ

      Services

      • Penetration Testing
      • Consulting
      • Code Review
      • One on one training
      • VPN
      • VIP Membership

      Company

      • About Us
      • Contact

      Support

      • FAQ
      • Forums

      Copyright © 2021 zSecurity Ltd. All rights reserved.

      • Privacy
      • Terms

      Contribute

      Share your knowledge with the world

      SUBMIT AN ARTICLE

      Login with your site account

      Lost your password?

      Not a member yet? Register now

      Register a new account

      Are you a member? Login now