728x90

이 문제는 소스 코드의 길이가 엄청 길다. 그래도 차근차근 읽어보자. 함수 reset_flag가 flag를 매번 리셋시키는것을 볼수있다. 그리고 여러가지 것들을 필터링하고 있다. 또 flag값은 100보다 크지않다. 일단 그냥 blind sql injection을 쓰면 reset_flag때문에 틀릴때 마다 초기화된다. 그래서 리셋이 되지 않기 위해서 에러 쿼리를 사용하자. 그런데 그렇게 되면 참과 거짓을 판단할수없다. 그럴때 쓰는게 바로 time based blind sql injection이다. sleep을 이용해서 참일때는 어느정도 돌고 거짓이면 실행이 안되게 코딩을 해주자.

 

 

이렇게 pw가 나오게 된다.

 

 

 

+ Recent posts