티스토리 뷰

LOS 포스팅에 앞서 내용이 틀릴 수도 있으며, 해당 부분 지적은 감사히 받겠습니다.

48단계 소스코드이다.

파라미터로 id와 pw를 받으며 필요이상의 데이터 접근을 막기위한 필터링이 되어있다.

id가 admin이며 pw를 mongodb내부의 값과 일치시키면 풀린다.

pw값을 찾아 입력하면 된다.

이번문제는 배열에 함수의 리턴값을 집어넣는다.

blind sql을 통해 문제를 풀어보자.

blind sql을 사용하기 위한 조건이 충족되는지 확인해보자.

값이 참일 때 변화를 확인할 수 있다.

 

이제 pw의 길이를 추출해보자.

mongodb는 length를 사용한다.

쿼리: ?pw='||obj.id=='admin'%26%26obj.pw.length=='8

비밀번호의 길이는 8이다.

이제 pw값 차례다.

b47822ea

문제 해결!!

시행착오

1. 새로운 db가 나오면 문법부터 공부해야한다. ex) mongodb는 쿼리추가공격시 등호를==로 사용하며 주석처리가 불가능하므로 쿼리의 짝을 맞춰주어야한다.

 

댓글