🇰🇷 한글 설명
ClipBucket v5는 오픈 소스 비디오 공유 플랫폼입니다. 버전 5.5.2-#187 및 이전 버전은 채널 내 댓글 추가 섹션에서 공격자가 블라인드 SQL 인젝션을 수행할 수 있습니다.
💡 쉬운 설명
ClipBucket 플랫폼의 구버전은 사용자 입력을 검증하지 않아 공격자가 데이터베이스에 악의적인 쿼리를 삽입할 수 있습니다. 이는 데이터 유출이나 시스템 손상 등 심각한 문제를 일으킬 수 있습니다.
🇺🇸 원문 (English)
ClipBucket v5 is an open source video sharing platform. Versions 5.5.2-#187 and below allow an attacker to perform Blind SQL Injection through the add comment section within a channel. When adding a comment within a channel, there is a POST request to the /actions/ajax.php endpoint. The obj_id parameter within the POST request to /actions/ajax.php is then used within the user_exists function of the upload/includes/classes/user.class. php file as the $id parameter. It is then used within the count function of the upload/includes/classes/db.class. php file. The $id parameter is concatenated into the query without validation or sanitization, and a user-supplied input like 1' or 1=1-- - can be used to trigger the injection. This issue does not have a fix at the time of publication.
📍 영향받는 시스템
ClipBucket v5 버전 5.5.2-#187 및 이전 버전
⚔️ 공격 벡터
POST 요청을 통해 /actions/ajax.php 엔드포인트에 악의적인 obj_id 파라미터를 전송
🛡️ 대응 방법
최신 버전의 ClipBucket을 사용하거나, 사용자 입력을 검증하고 sanitization하는 기능을 추가하여 취약성을 해결
🔧 검증 코드
로컬 ClipBucket 시스템에서 Python을 실행하여 verification_code를 사용합니다. 이 코드는 로컬 시스템의 /actions/ajax.php 엔드포인트에 악의적인 obj_id 파라미터를 전송하여 SQL 인젝션 취약성을 점검합니다. 실행 전 Python과 requests 라이브러리가 설치되어 있어야 합니다.
import requests
response = requests.post('http://localhost/actions/ajax.php', data={'obj_id': "1' or 1=1-- -"})
if 'SQL' in response.text:
print({"result": "취약", "reason": "SQL 인젝션 성공"})
else:
print({"result": "양호", "reason": "SQL 인젝션 실패"})