본문 바로가기

old/Cyber Security

웹 해킹 예제: 인증과 인가 취약점_CTF: 로그인 우회하기

반응형

목표

로그인 페이지를 우회하고, 그 시스템에서 미사일 발사 버튼을 클릭하세요! :D

공격

공격순서

홈페이지 접속시 일단 burp suite으로 내부 코드 확인

일단 기본 페이지인 /auth1/(/auth1/index)에 연결된뒤, 로그인 페이지인 /auth1/login.php로 리디렉션 되는것을 확인 할수 있다.

다른 웹싸이트로 이동하는 경우 status code는 300번때 이여야 하는데. 기본 페이지인 /auth1/의 status code는 200번으로 성공이면서 이동한게 이상하므로, 응답된 페이지를 살펴보자.

response 된 웹싸이트 코드를 자세히 살펴보기

서버에서 리디렉션를 하는게 아닌 웹싸이트의 자바 스트립트에서 <script>location.href='./login.php';</script>이라는 코드로 리디렉션 하는것을 확인.

이는 서버에서 처리하는 방식이 아니라 내 클라이언트 에서 작동하는 것이므로, burp suite을 이용해서 수정(응답변조) 하는게 가능함

burp suite을 이용해서 응답변조

burp suite으로 응답변조 하는 법

자바스트립트에서 <script>location.href='./login.php';</script>이라는 코드를 제거

이후, 실행을 하면

(/auth1/index.php)위치에 있는 핵미사일 시스템이라는 곳에 도착한다

잘 봐야 할점은 위의 http주소가 step1.php로 연결되어 있다는 것이다. 관리자만 사용할수 있다고 뜨는것으로 보아, step2페이지 에서 관리자인지 확인하는것이리라 추측할수 있다.

확인 버튼를 누른다

예상이 맞아떨어지므로, 우리는 step3가 관리자 인증을 한 싸이트 라는것을 추측해 볼수 있다.

인증 코드 html 부분을 확인해보면, document.getElementById('auth')라는 자바스트립트를 사용하고 있는것을 볼수 있다. 

주소창에 http://ctf.segfaulthub.com:3481/auth1/step3.php를 입력하면 관리자 인증없이 바로 들어가지는것을 볼수 있다.

이후 fire버튼을 누르면, 팝업창으로 flag가 뜬다.

정리

이 문제는 각 페이지마다 개발자가 인증을 확인하는 코드를 넣어야 하는데 이를 하지 않아서 일어나는 인증 우회 취약점이다.

페이지1(인증 안함)→페이지2(인증 해야지만 볼수 있음)→페이지3(인증 안함)→페이지4(인증 안함)

페이지3과 4의 주소를 추측하여, 페이지2를 거치지 않고 바로 접속하는 방법이다.

반응형