CSRF
CSRF(Cross Site Request Foregery) 공격은 웹 어플리케이션 취약점 중 하나로 인터넷 사용자가 자신의 의지와는 무관하게 공격자가 의도한 행위(수정, 삭제, 등록 등)를 특정 웹사이트에 요청하게 만드는 공격이다.
CSRF-1 함께 실습 문제
아무런 입력도 하지 않고 메모창에 들어가면 'hello'라는 문구만 뜬다.
flag창에 해당 명령어를 입력해준다.
로컬호스트에 위치하는 이용자가 /admin/notice_flag 페이지를 방문하도록 해야하기 때문에 아래와 같은 공격코드를 작성해준다. userid 파라미터가 admin인지 검사하는 부분이 존재하기 때문에 userid=admin이라는 부분을 포함시켜주어야 한다.
<img src="/admin/notice_flag?userid=admin" />
그리고 난 후 메모에 들어가보면 플래그를 확인할 수가 있다.
플래그는 DH{11a230801ad0b80d52b996cbe203e83d}
CSRF-2 혼자 실습 문제
두 번째 문제를 들어가보니 memo창이 사라지고 login 창이 생겼다.
id: guest, pw: guest로 로그인하니, 아래와 같은 창이 떴다.
csrf-1의 코드와 비교해보니 /login과 /change_password라는 코드가 추가로 생긴 것을 확인할 수 있다.
62번째 줄 코드를 보면 username이 admin일 경우 초기창에 FLAG를 띄워준다는 것을 확인할 수 있다.
그래서 flag에 들어가서 change_password를 통해 admin의 비밀번호를 바꾼 후 admin 계정으로 로그인을 하면 플래그가 나올 것이라고 생각했다.
/change_password에서 비밀번호의 변수는 pw인 것을 코드를 통해서 확인할 수 있다.
flag창에 들어간 후 아래와 같은 코드를 입력해주었다. admin의 비밀번호를 admin으로 바꾸는 것이다.
<img src="/change_password?pw=admin" />
그리고 나서 admin창에다가 id: admin, pw: admin을 입력해주었다.
admin 계정으로 로그인이 되고 플래그가 화면에 떴다.
DH{c57d0dc12bb9ff023faf9a0e2b49e470a77271ef}
'Dreamhack > Web Hacking' 카테고리의 다른 글
Dreamhack Command Injection-1 (0) | 2022.08.13 |
---|---|
Stage6 (0) | 2022.08.07 |
웹 해킹 Stage4 (0) | 2022.07.25 |
SOP(Same Origin Policy) (0) | 2022.07.21 |
혼자 실습, 함께 실습 문제 (0) | 2022.07.20 |