pw가 존재하고 결과값의 pw와 입력값의 pw가 같아야 한다.
addslashes( string $str ) : 큰따옴표, 작은 따옴표 앞에 역슬래시 문자를 붙여주는 함수
이 함수 때문에 앞에서 했던거 처럼 할 수가 없다.
따라서 Blind SQL Injection을 통해 pw를 알아내야 한다.
[Blind SQL Injection] Blind SQL Injection은 다음과 같은 상황에서 사용 가능하다. 1. 쿼리문으로 참과 거짓 일때의 서버의 반응을 알 때 2. 원하는 결과를 얻을 데이터베이스의 이름을 알 때 이러한 상황일때 쿼리 문의 ascii, limit, substr 등의 구문을 이용한다. 1. ascii ascii는 ascii(문자) 를 하였을때 해당 문자의 아스키코드를 반환한다. 2. limit limit은 출력의 개수를 제한할 수 있는 함수다. 3. substr substr은 특정 문자열을 원하는 만큼 자를 수 있다. substr(문자열, 문자열에서 자르고자 하는 문자열의 처음 위치, 자르고자 하는 문자열의 길이) |
참 거짓일때의 서버의 반응을 알아야 된다고 하므로 노가다 하면 될거 같다
먼저 pw가 몇글자인지 알기 위해 length()함수를 이용하자.
length(pw)가 10글자 이상인지 알기위해 먼저 쿼리문을 작성하였다.
아무것도 안떴다.
그러면 9글자 이하인것 같다. 확실히 하기 위해 쿼리문을 작성했다.
pw는 9글자 미만이다.
pw가 8글자이다.
그러면 이제 substr()을 이용하여 한글자 한글자씩 구해보자.
pw=295d5844
풀렸다