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}=