README.md
Rendering markdown...
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()