WebGoat(웹고트) Numeric SQL Injection
모든 지역의 날씨를 조회하면 문제해결
(1) Window xp에서 http://victim:8080/WebGoat/attack 사이트로 이동하여 목록에서 Numeric SQL Injection을 찾아 이동합니다. (webgoat / webgoat)
(2) 사용자 값이 서버로 전달되는 과정을 확인합니다.
=> 조회내용은 credits에 입력이 됨
=> weather station: 지역 선택 (지역코드가 선택됨, 101,102,103,104 중)
=> 전달과정은
POST attack?Screen44&menu=1100
station=101&SUBMIT=Go!
=> 서버 내부에서는
select * from weather_data where station = 101
(3) 공격자가 원하는 내용을 얻기위한 구문을 작성하여 값을 조작합니다.
공격자가 원하는 것은 모든 날씨의 정보를 얻는 것!
(3)-1 원래는 지역을 선택하면 해당 지역의 정보만 나오게 됩니다.
=> 사용자 화면에서는 선택창으로 입력하므로 공격 문자열 입력을 할 수 없습니다. 따라서 Proxy 도구를 사용합니다.
(3)-2 Proxy에서 Intercept is on으로 변경하고, GO를 클릭합니다.
(3)-3 서버로 전달하는 요청 파라미터를 해당 구문으로 변경합니다.
변경 값 > 101 or 1 = 1
값을 설정하고 Intercept is off로 변경합니다.
(4) 결과확인
=> 모든 날씨 정보 조회