본 포스팅은 학습 목적으로 작성되었으며, hackerone report를 기반으로 작성되었습니다.
-분석 레포트-
https://hackerone.com/reports/2633959
summary
https://temp.xxxx.co.za/ 애플리케이션의 URL 경로에는 SQL 주입 가능성이 존재하는데, ID 번호를 가져와서
백엔드 SQL 쿼리에 직접 삽입하기 때문이다. 등록 시, 사용자 ID 번호(여권 또는 국민 ID), 조직 번호, 관련 문서가 요청되어진다. 또한 이러한 모든 정보는 백엔드 데이터베이스에 저장된다.
[URL]
https://temp.xxxx.co.za/customerInsurance/newCustomerStep8/userId/868878/customerId/732562'/contactPersonId/0
Steps To Reproduce
1. 보험(Insurance)가 표시될 때, 생성된 URL을 사용한다.
2. customerID 번호 옆에 작은 따옴표(')를 넣으면 백엔드 쿼리가 중단된다는 것을 알 수 있다.
https://tempppppp.co.za/customerInsurance/newCustomerStep8/userId/868878/customerId/732562'/contactPersonId/0
3. 해당 URL을 SQLmap과 같은 SQL exploitation 도구를 사용해, customerID 번호에 별표를 추가하여 도구에 주입 지점을 알린다. ( 이제 데이터베이스를 덤프할 수 있다. )
Impact
공격자는 이를 악용하여 백엔드 데이터베이스를 덤프하고, 다운로드 할 수 있으며, 사용자 정보에 액세스할 수 할 수 있다.