#12
- 이 할당에서 ORDER BY 필드를 통해 SQL 주입을 수행하십시오. webgoat-prd 서버의 IP 주소를 찾으십시오. 전체 IP 주소는 너무 오래 걸릴 수 있으므로 마지막 부분 인 xxx.130.219.202를 제공합니다.
- 참고 :이 할당의 제출 필드는 SQL 주입에 취약하지 않습니다.
#제출필드는 sql을 쓰는것이 아닌 것 같다. 버프슈트로 잡아서 요청값을 보자.
- hostname을 GET방식으로 인자 전달을 하는 것을 확인했다.
#test 테이블 존재여부 검사
- (case+when+exists(select+ip+from+test+where+hostname%3d'webgoat-prd')+then+ip+eles+id+end)
-> test 테이블에서 ip 컬럼에 hostname이 'webgoat-prd'가 있으면 ip기준으로 정렬, 없으면 id 기준으로 정렬
- 500에러(서버내부에러)가 출력되는 것을 보아, test테이블이 존재하지 않는다.
- 좌측 상단에 인자가 servers?column= 인 것으로 보아 servers 테이블인 것 같다.
#servers 테이블로 수정
- ip기준으로 잘 정렬된 것을 볼 수 있다.
#webgoat-prd가 servers 테이블에 존재한다는 것을 알았지만, 출력은 되지 않는다.
#유효성 검사를 위해 sql문을 사용하여 반응을 유도하자.
- (case+when+exists(select+ip+from+servers+where+hostname+=+'webgoat- prd'+and+substring(ip,1,1)='1')+then+ip+else+id+end)
-> 해당 sql문을 사용하여, webgoat-prd의 ip 첫째자리부터 검사하여 반응을 유도한다,
- 해당 사진은 1번째 자리가 '1'이 맞아서 ip기준으로 정렬된 모습이다.
- 문제에서 앞 세자리만 구하라고 했으므로, 30번 안으로 답을 구할 수 있다.
#end
'Web > WebGoat' 카테고리의 다른 글
[WebGoat] Insecure Login (0) | 2021.06.06 |
---|---|
[WebGoat] (A7)Cross Site Scripting - 7,10,11 (0) | 2021.06.05 |
[WebGoat] General - HTTP Basics (0) | 2021.06.05 |
[WebGoat] Challenges - Without account (0) | 2021.05.31 |
[WebGoat] Challenges - Without password (0) | 2021.05.31 |