Web Hacking/LOS

Lord of SQL Injection - cerberus

Lucvs 2021. 10. 5. 08:00

mongo db 환경에 대한 문제이다. mongo db 는 NoSQL로 분류된다고 한다. NoSQL Injection 에서 많이 쓰이는 연산자들을 정리해보았다.

 

- $ne  : !=

- $lt    : <

- $gt   : >

- $lte  : <=

- $gte : >=

- ' : '   : 비교 연산자, 콜론을 기준으로 비교

 

우선 단순하게 기존에 쓰는 방식으로 주석을 사용하여 query 를 참으로 만들어보자.

id=admin"}%23

오. NoSQL 에서는 addslashes 함수가 자동적으로 적용되는 것 같다. 더블쿼터를 이용하여 pw 단을 무효화하는 작업은 안 될 것 같다.

 

앞서 연산자를 정리했으니 연산자를 사용해보자. pw를 알 길이 존재하지 않는다. 따라서 '같지 않다'를 나타내는 '$ne' 연산자를 사용하자.

 

NoSQL 에서는 column 명 뒤에 연산자나 값을 대괄호로 감싸서 콜론으로 비교 dictionary 로 만들 수 있다.

 

 

id=admin&pw[$gte]=abcdefg

'$ne' 말고도 '$gt', '$gte' 도 성립한다.