SQL injection/lord of SQL
Lord Of SQL injection 46단계-cerberus
ys.k
2022. 2. 26. 02:35
LOS 포스팅에 앞서 내용이 틀릴 수도 있으며, 해당 부분 지적은 감사히 받겠습니다.
46단계 소스코드이다.
기존과 다른 방법으로 파라미터를 입력받는다.
mongodb 서버에서 진행된다.
mongodb는 Nosql db이다.
id가 admin일 때 문제는 해결되는 조건이다.
id를 admin으로 맞춰주고 쿼리를 닫으면 풀릴 거라 생각했다.
소스코드 어디에도 필터링해주는 부분을 찾을 수 없는데 더블 쿼터가 필터링당했다.
아마도 mongodb는 기본적으로 더블 쿼터를 필터링하는 것 같다.
mongodb injection방법에 대해 검색하다 보니 연산자에서 힌트를 얻을 수 있었다.
mongodb의 연산자
- $eq // =
- $ne // !=
- $gt // >
- $gte // >=
- $lt //<
- $lte // <=
id를 admin으로 맞춰주고 비밀번호를 참값으로 넣어주면 문제는 해결된다.
쿼리 : ?id=admin&pw[$ne]=
문제 해결
시행착오
1. mongodb는 뒷부분 주석처리가 없다.
2. 파라미터에 주입 시 등호 앞부분에 쿼리를 삽입할 수도 있다. ex) pw[$ne}=