7주차 세션

CS pro·2023년 5월 15일
0

드림핵

목록 보기
5/6

Q1) CSRF 문제

Cross Site Request Forger공격을 통해 기존 권한을 갖고 있는 사용자가 사용할 수 있는 정상적인 기능을 공격자가 사용자의 의도와 무관하게 요청을 보내서 원하는 이득을 취할 수 있다. 예를 들어, 이 문제처럼 사용자의 패스워드를 공격자가 임의로 설정한 값으로 변경하여 계정을 탈취하거나, 관리자 권한을 가진 사용자를 공격해 공지사항 작성으로 혼란을 야기시킬 수 있다!
따라서 공격을 막기 위해
1) 세션 쿠키 대신 커스텀 헤더를 사용해서 사용자 인증
2) 공격자가 예측할 수 없는 파라미터 추가 및 검증

을 사용한다.(출처: https://learn.dreamhack.io/7#16)

CSRF-2 문제

코드처럼 id=guest, pw=guest를 해봤더니

이렇게 나왔다. admin이 아니면 로그인을 할 수 없는가 보다!
CSRF-1와 비슷한 방식으로 생각했다.이거와 아래 강의 참고 코드를 비교해보면 문제를 풀 수 있다.그래서 위 이미지와 같이 pw를 설정해주었다. 아래와 같이 로그인을 했더니!?

플래그값이 나온다! 오예!

Q2) XSS-2 문제


▲ /vuln: 스크립트가 필터링되는 것을 볼 수 있음.
따라서 필터링을 우회하는 생각을 하였다.
그래서 XSS cheat sheet를 찾아보았다.
<svg onload=>가 있음.=> 이건 사실 댓글에서 힌트를 얻었음.

위와 같이 익스플로잇으로 해결한다. 문제를 해결하기 위해 /vuln 엔드포인트에서 XSS취약점을 통해 임의 이용자의 쿠키를 탈취해야한다. 탈취한 쿠키를 전달받기 위해서는 외부에서 접근가능한 웹 서버를 사용하거나 memo 엔드포인트를 사용할 수 있다.
나는 memo 엔드포인트를 사용해서 플래그값을 받았다.

Q3) simple-web-request 문제

드림핵 simple-web-request
이 문제는 step1을 풀면 step2로 넘어가고, step2를 풀면 flag가 나오는 방식이다.
코드에서 힌트를 많이 얻었다(엄청 많이 ㅎㅎ)

step1은

위 이미지에 있는 밑줄 친 부분에서 파라미터값을 알 수 있어서 풀었다.

step2는 step1에서 step2로 넘어가면 아래와 같이 URL을 받을 수 있음.

하지만 위 두개 이미지에서 힌트를 얻을 수 없었다. prev_step_num이 파라미터값인 줄 알았지만 그 코드는 주석과 같이 풀이와 관계없는 것이었다 ㅠㅠ
밑에 있는 코드를 보았다.

코드에서 param과 param2값을 쉽게 알 수 있었다!!

따라서 플래그값도 쉽게 얻을 수 있었다.

profile
보안전문가 되기 위한 과정기록

0개의 댓글