Search for hundreds of thousands of exploits

"LibreNMS 1.46 - 'search' SQL Injection"

Author

Exploit author

Punt

Platform

Exploit platform

multiple

Release date

Exploit published date

2020-05-11

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
# Exploit Title: LibreNMS 1.46 - 'search' SQL Injection
# Google Dork:unknown
# Date: 2019-09-01
# Exploit Author: Punt
# Vendor Homepage: https://www.librenms.org
# Software Link: https://www.librenms.org 
# Version:1.46 and less
# Tested on:Linux and Windows
# CVE: N/A 

#Affected Device: more than 4k found on Shodan and Censys. 

#Description about the bug
Vunlerable script /html/ajax_serarch.php

if (isset($_REQUEST['search'])) {
    $search = mres($_REQUEST['search']);
    header('Content-type: application/json');
    if (strlen($search) > 0) {
        $found = 0;

        if ($_REQUEST['type'] == 'group') {
            include_once '../includes/device-groups.inc.php';
            foreach (dbFetchRows("SELECT id,name FROM device_groups WHERE name LIKE '%".$search."%'") as $group) {
                if ($_REQUEST['map']) {
                    $results[] = array(
                        'name'     => 'g:'.$group['name'],
                        'group_id' => $group['id'],


as you can there is a search parameter $search = mres($_REQUEST['search']); which accepts a user input using $_REQUEST['']

dbFetchRows() used to exectute sql query

now lets check the mres() function 

the mres() fuction is located under /includes/common.php

function mres($string)
{
    return $string; // 
    global $database_link;
    return mysqli_real_escape_string($database_link, $string);

as you can see the mres() function call's the mysqli_real_escape_string() which can be bypassed by '%'                    


#POC:
1st lgoin to your LibreNMS
2nd go to this /ajax_search.php?search=%27&type=group or /ajax_search.php?search=%27&type=alert-rules 
3rd you will see an sql syntax error 

The Librenms team have applyed a patch .
Thanks
Punt (From Ethiopia)
Release DateTitleTypePlatformAuthor
2020-06-30"Reside Property Management 3.0 - 'profile' SQL Injection"webappsphp"Behzad Khalifeh"
2020-06-30"Victor CMS 1.0 - 'user_firstname' Persistent Cross-Site Scripting"webappsphp"Anushree Priyadarshini"
2020-06-26"OpenEMR 5.0.1 - 'controller' Remote Code Execution"webappsphp"Emre ร–VรœNร‡"
2020-06-26"Windscribe 1.83 - 'WindscribeService' Unquoted Service Path"localwindows"Ethan Seow"
2020-06-26"KiteService 1.2020.618.0 - Unquoted Service Path"localwindows"Marcos Antonio Leรณn"
2020-06-25"FHEM 6.0 - Local File Inclusion"webappsphp"Emre ร–VรœNร‡"
2020-06-25"mySCADA myPRO 7 - Hardcoded Credentials"remotehardware"Emre ร–VรœNร‡"
2020-06-24"BSA Radar 1.6.7234.24750 - Persistent Cross-Site Scripting"webappsmultiple"William Summerhill"
2020-06-23"Online Student Enrollment System 1.0 - Cross-Site Request Forgery (Add Student)"webappsphpBKpatron
2020-06-23"Lansweeper 7.2 - Incorrect Access Control"localwindows"Amel BOUZIANE-LEBLOND"
Release DateTitleTypePlatformAuthor
2020-06-24"BSA Radar 1.6.7234.24750 - Persistent Cross-Site Scripting"webappsmultiple"William Summerhill"
2020-06-22"FileRun 2019.05.21 - Reflected Cross-Site Scripting"webappsmultiple"Emre ร–VรœNร‡"
2020-06-22"WebPort 1.19.1 - Reflected Cross-Site Scripting"webappsmultiple"Emre ร–VรœNร‡"
2020-06-22"Odoo 12.0 - Local File Inclusion"webappsmultiple"Emre ร–VรœNร‡"
2020-06-17"OpenCTI 3.3.1 - Directory Traversal"webappsmultiple"Raif Berkay Dincel"
2020-06-15"SOS JobScheduler 1.13.3 - Stored Password Decryption"remotemultiple"Sander Ubink"
2020-06-12"Sysax MultiServer 6.90 - Reflected Cross Site Scripting"webappsmultiple"Luca Epifanio"
2020-06-12"SmarterMail 16 - Arbitrary File Upload"webappsmultiplevvhack.org
2020-06-12"Avaya IP Office 11 - Password Disclosure"webappsmultiplehyp3rlinx
2020-06-10"HFS Http File Server 2.3m Build 300 - Buffer Overflow (PoC)"remotemultiplehyp3rlinx
Release DateTitleTypePlatformAuthor
2020-05-11"LibreNMS 1.46 - 'search' SQL Injection"webappsmultiplePunt
import requests
response = requests.get('https://www.nmmapper.com/api/exploitdetails/48453/?format=json')

For full documentation follow the link above

Cipherscan. A very simple way to find out which SSL ciphersuites are supported by a target.

Identify and fingerprint Web Application Firewall (WAF) products protecting a website.