Iriton's log

[Dreamhack] Lv.1 csrf-2 본문

WebHacking/WarGame

[Dreamhack] Lv.1 csrf-2

Iriton 2023. 11. 13. 23:10

코드 상단에서 flag.txt 를 읽어서 FLAG의 값으로 넣는다.
users 정보에는 guest의 비밀번호는 guest, admin의 비밀번호는 flag로 매칭되어 있다.

 

 

기본 페이지에서 username이 admin이라면,
즉, admin으로 로그인 했다면 FLAG 값을 띄워 준다.
guest가 아닌 admin으로 로그인 해야 한다.
(+ /login 페이지에서 로그인 성공 시에 입력된 id와 pw를 세션 값으로 넣는 절차를 진행하기 때문이다.)

 

WEB에 보여지지 않은 비밀번호 변경 페이지 발견.
파라미터 값을 세션 아이디의 username에 매칭되는 pw로 넣음.
이때 username의 원래 pw를 체크하는 등의 코드는 존재하지 않음!

또한, flag 페이지 자체에서 세션 아이디 값을 admin으로 지정했기 때문에

pw의 파라미터 값만 우리가 원하는 값으로 지정하면 된다.

 

필터링이 존재한다.
여기에 해당하지 않는 스크립트인 img를 사용할 것
<img src="/change_password?pw=admin">
해당 URL이 입력되면 세션 ID 값인 admin의 비밀번호가 admin으로 변경되어
로그인이 가능해진다.

 

img는 URL 값을 받아서 처리하기 때문에 이와 같은 우회가 가능하다.

'WebHacking > WarGame' 카테고리의 다른 글

[Dreamhack] Lv.1 csrf - 1  (0) 2023.11.14
[Webhacking.kr] Challenge 23  (0) 2023.11.14
[Dreamhack] Lv.1 XSS Filtering Bypass  (0) 2023.11.13
[XSS game] Lv.5 : Breaking protocol  (0) 2023.11.07
[Dreamhack] Lv.1 xss-2  (0) 2023.11.07
Comments