WebGoat - blind string sql injection

2024. 7. 11. 21:44Wargame/WebGoat

320x100

WebGoat의 blind string sql injection 문제입니다.

 

문제

 

blind numeric sql과 비슷하지만 이번에는 숫자가 아닌 string이다.

pins 테이블에서 cc_number가 4321432143214321 인 name을 찾는 문제다.

 

sql문으로 바꿔주면

101 and (SUBSTRING((select name from pins where cc_number=’4321432143214321’),1,1) > ‘?’)

?에 알파벳 대소문자를 구분해 입력해보고

값을 찾으면 1을 1씩 증가해서 문자열의 위치를 확인하면 된다.

 

 

먼저,

name의 길이를 알기위해

101 and (SUBSTRING((select name from pins where cc_number=’4321432143214321’),?,1) > ‘A’)

?를 1씩 증가시켜보자.

아스키 A보다 크다?라고 물어봤는데 유효하지 않다고 출력되는 것은, 해당 ?번째의 글자는 없다는 뜻이다.

name은 4글자인 것을 확인!!

name의 5번째 글자는 유효하지 않는다.

 

 

 

첫번째의 글자를 찾아보면

name의 첫글자는 J라는 것을 알 수 있다.

I보다 크다
J보다 작다

 

 

이와 같이 2,3,4번째에 각각 해당하는 알파벳을 찾아가면 된다.

 

320x100

'Wargame > WebGoat' 카테고리의 다른 글

WebGoat - command injection  (0) 2024.07.11
WebGoat - blind numeric sql injection  (0) 2024.07.11
WebGoat - stage 3 numeric sql injection  (0) 2024.07.11
WebGoat - stage 1 string sql injection  (0) 2024.07.11
WebGoat - numeric sql injection  (0) 2024.07.11