세션ID에 대한 지식은 로그인한 후 특정 사용자로 사이트에 접근하는데 필요한 유일한 것.
세션ID를 계산하거나 추측할 수 있는 경우 공격자는 사용자계정 비밀번호에대한 무작위대입법이나 XSS과 같이
다른 취약점을 찾을 필요없이 사용자의 계정에 접근할수 있음.
Low
- 이페이지는 버튼을 누르면 dvwaSession이라는 새로운 Cookie를 발급해준다 나옴 ㅇㅇ.
- Generate 버튼 클릭 시 PHP SessionID를 제외한 dvwaSession 쿠키값이 생김.
- 버튼을 누를때마다 dvwaSession 값이 1씩 증가한다는것을 알 수 있음.
- 소스코드를 보면 마지막세션값 +1 하여 쿠키값을 설정하고있음.
Medium
- Medium레벨은 dvwaSession값이 Numeric한 문자열이 나와있음.
- 버튼클릭 이벤트발생시 dvwaSession값이 올라가는것이 아님
- Last Accessed필드의 seconds와 dvwaSession값이 동일하게 움직인다는것을 추측할 수 있음 .
- 따라서 시간을 기준으로 세션값이 바뀌는것을 의심할 수 있음.
- Time Convert를 이용해서 시간대를 계산하면 dvwaSession값 1642767717이라는 값은 GMT시간 12:21:57을
기반으로 하여 생성된것을 확인할 수 있음.
- Medium레벨 소스코드를 보아도 시간값을 쿠키값으로 설정하는것을 확인할 수 있음.
High
- High레벨에서는 딱봐도 해쉬값같은 dvwaSession이 설정되어있음.
- hash-identifier로 dvwaSession의 해시알고리즘을 알아내어 복호화
- 해시값에 대한 값은 2인 것으로 확인할 수 있음.
- Generate버튼을 계속 누르다보면 Low 레벨에서의 dvwaSession값을 md5해쉬하여 dvwaSession 값을
설정하는 것 같음.
- dvwaSession값이 버튼클릭횟수를 해시한것이라는것을 알았으니
- dvwaSession값을 유추할 수 있음.
- 아래의 사진은 dvwaSession값을 유추하여 md5해시함수로 dgst값을 생성한 것.
- Burp에서 dvwaSession값을 추가해서 Intruder에 보냄
- sniper 타입에 각종 payload set 설정
- 1~100까지의 해쉬값을 전송하니 모두 응답코드가 200이 나옴.
- 세션ID +1 하고 그값을 해시하여 Cookie설정하고있는 것을 확인할 수 있음.
Impossible
- 랜덤수와, 시간, Impossible 문자열을 결합하여 sha1해시하여 dvwaSession값에 설정하고있다.
- 또한 true, true 즉. secure; httponly;를 설정하여, 쿠키값을 탈취하는것을 방어하고있다.
'WebHacking > DVWA' 카테고리의 다른 글
[DVWA] File Upload (0) | 2022.01.21 |
---|---|
[DVWA] File Inclusion (0) | 2022.01.19 |
[DVWA] XSS (Stored) (0) | 2022.01.17 |
[DVWA] XSS (Reflected) (2) (0) | 2022.01.13 |
[DVWA] XSS (Reflected) (0) | 2022.01.13 |