
HotelDruid v3.0.5는 SQL 인젝션에 취약합니다. 공격자는 임의의 SQL 명령을 실행하여 데이터베이스의 데이터를 검색하거나 대상 데이터베이스 시스템에서 원격 코드 실행을 수행할 수 있습니다.
이것은 제 두 번째 저장소입니다. 설명이 부족하더라도 너그럽게 봐주세요.
제품 설명: HotelDruid는 DigitalDruid.Net에서 개발한 호텔 관리용 오픈소스 프로그램(부동산 관리 소프트웨어)입니다.
취약점 설명: 이 웹 애플리케이션은 관리자 등 인증된 모든 사용자가 영향을 받는 매개변수에 악성 SQL 명령을 주입하여 데이터베이스의 데이터를 검색하거나 대상 시스템에서 코드 실행을 수행할 수 있음을 발견했습니다. 아래는 재현 절차이며, 다시 말하지만 설명이 부족하더라도 너그럽게 봐주세요.
영향을 받는 웹페이지: creaprezzi.php 영향을 받는 매개변수 및 구성 요소:
inizioperiodo1 fineperiodo1 inizioperiodo2 fineperiodo2 inizioperiodo3 fineperiodo3 inizioperiodo4 &fineperiodo4 inizioperiodo5 fineperiodo5 inizioperiodo6 fineperiodo6 inizioperiodo7 fineperiodo7
1단계: 로그인하여 creaprezzi.php로 이동합니다. GUI에서 강조 표시된 부분이 영향을 받는 매개변수입니다.

2단계: BurpSuite로 인터셉트한 후 " '%2b(select*from(select(sleep(5)))a)%2b' "와 같은 기본 페이로드를 삽입하고 응답을 모니터링합니다. 아래 스크린샷은 서버가 5초 후에 응답을 반환한 것을 보여줍니다. 조금 더 깊이 들어갈 수 있을 것 같습니다 :-).

3단계: 이 요청을 Burp 파일로 저장하여 sqlmap에 전달하면 어떨까요? 아래 스크린샷은 sqlmap의 결과를 보여줍니다.

4단계: 아래 sqlmap 명령으로 좀 더 확장할 수 있습니다. 저는 sql-shell을 선택했습니다. 아래 스크린샷은 취약한 매개변수를 악용하여 SQL 명령까지 실행할 수 있음을 보여줍니다.

참고: 위 단계는 공급업체를 위한 POC일 뿐입니다. 실제로 저는 sql-shell에서 완전한 OS 명령 셸까지 올라갔지만, 여기에는 더 많은 단계와 기술이 필요하며 CVE에서 시연을 요청한 범위를 벗어난다고 생각합니다.
아래 스크린샷은 HotelDruid의 버전을 보여줍니다.
