WebGoat(웹고트) Thread Safety Problems

WebGoat(웹고트) Thread Safety Problems

 

(1) Window xp에서 http://victim:8080/WebGoat/attack 사이트로 이동하여 목록에서 Thread Safety Problems을 찾아 이동합니다. (webgoat / webgoat)

 

(2) 브라우저 2개를 띄워서 하나는 jeff, 하나는 dave를 Submit 합니다.

=> jeff를 입력하면 jeff의 데이터가 출력되고, dave를 입력하면 dave의 데이터가 출력됩니다.(당연)

 

(3) 브라우저 2개를 띄워서 하나는 jeff, 하나는 dave를 Submit 합니다.

dave를 제출하고, 바로 jeff를 제출합니다. 그러면 둘 다 jeff가 출력됨을 확인할 수 있습니다.

 

이 문제의 취약점

=> 이름을 입력하고 Submit을 누르면 서버로 연결됩니다. 

=> 서버에서 입력된 값을 전역변수로 받습니다.

=> 그 전역변수를 쭉 가지고 DB를 조회합니다.

=> 조회된 결과를 반환해줍니다.

 

jeff를 Submit하면 전역변수는 jeff로 잡힙니다. 쭉 가다가 중간에 dave 요청이 들어오면 전역변수로 dave가 설정됩니다. 이렇게 되면 jeff를 입력한 곳에도 dave, dave를 입력한 곳에도 dave를 출력해줍니다.

=> 잘못된 세션에 의한 데이터 노출