티스토리 뷰

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

21번 문제이다.

문제에 떡하니 blind sql이라 쓰여있다.

풀어보자.

여러 가지 테스트 결과 id와 pw 중 하나라도 비어있으면 쿼리가 정상적으로 작동하지 않는 것 같다.

blind sql 공격에서 가장 중요한 건 참과 거짓을 구분할 수 있는 무언가 이다.

다음 쿼리를 통해 확인할 수 있다.

쿼리 : ?id=admin&pw=%27or%20if(1,1,null)--+-

쿼리 : ?id=admin&pw='or if(0,1,null)--+-

if문이 참이면 1을 반환시켜 pw에 값이 들어가고, 거짓이면 들어가지 않는다.

그에 따라 Result값이 변하는 걸 알 수 있다.

참 : wrong password

거짓 : login fail

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

길이부터 알아보자.

쿼리 : ?id=admin&pw='or if(id='admin'and length(pw)=36,1,null)--+-

admin pw의 길이는 36자리이다.

이제 인젝터 차례이다.

오랜만에 2진 탐색 인젝터를 사용할 수 있었다...

문제 해결!

시행착오

1. 없다.

'SQL injection > webhacking' 카테고리의 다른 글

Webhacking 23번  (0) 2022.04.11
Webhacking 22번  (0) 2022.04.11
Webhacking 20번  (0) 2022.04.07
Webhacking 19번  (0) 2022.04.06
Webhacking 18번  (0) 2022.04.06
댓글