🇰🇷 한글 설명
Phpgurukul Cyber Cafe Management System v1.0의 사용자 관리 모듈에서 저장된 크로스 사이트 스크립팅(XSS) 취약성이 존재합니다. 사용자가 입력한 데이터를 적절하게 제거하거나 인코딩하지 않아 인증된 공격자가 임의의 자바스크립트 코드를 데이터베이스에 저장할 수 있습니다. 관리자가 view-allusers.php 페이지의 View 버튼을 클릭할 때 악의적인 페이로드가 트리거됩니다.
💡 쉬운 설명
해커가 시스템 사용자에게 악성 코드를 보낼 수 있는 취약점이 있습니다. 시스템 사용자 관리 부분에 악성 코드를 심을 수 있기 때문입니다. 이 취약점을 이용하면 해커가 관리자 권한으로 시스템을 조작할 수도 있습니다.
🇺🇸 원문 (English)
A stored cross-site scripting (XSS) vulnerability exists in Phpgurukul Cyber Cafe Management System v1.0 within the user management module. The application does not properly sanitize or encode user-supplied input submitted via the uadd parameter in the add-users.php endpoint. An authenticated attacker can inject arbitrary JavaScript code that is persistently stored in the database. The malicious payload is triggered when a privileged user clicks the View button on the view-allusers.php page.
📍 영향받는 시스템
Phpgurukul Cyber Cafe Management System v1.0
⚔️ 공격 벡터
인증된 공격자가 uadd 파라미터를 통해 임의의 자바스크립트 코드를 add-users.php 엔드포인트에 전송하여 데이터베이스에 저장합니다.
🛡️ 대응 방법
사용자 입력 데이터를 제대로 인코딩하고, 입력 데이터에 대한 유효성 검사를 수행하여 XSS 공격을 방지합니다. 또한, 사용자 입력 데이터를 데이터베이스에 저장하기 전에 적절하게 제거หร은 인코딩하여야 합니다.
🔧 검증 코드
로컬에서 Phpgurukul Cyber Cafe Management System이 설치되어 있는 경우, 위의 Python 코드를 실행하여 취약성 여부를 확인할 수 있습니다. 코드를 실행하기 전에, 적절한 권한과 필요한 라이브러리(requests)를 설치해야 합니다.
import requests
response = requests.get('http://localhost/add-users.php?uadd=<script>alert(1)</script>')
if response.status_code == 200:
print({"result": "취약", "reason": "XSS 취약성 확인"})
else:
print({"result": "양호", "reason": "XSS 취약성 없음"})