Wargame/webhacking2017. 5. 2. 00:59

webhacking.kr 사이트의 1번 문제


1번 문제에 들어가 보면 위와 같은 화면이 나타난다.


뭔지 모르겠지만 일단 index.phps를 열어보자.

주소창 끝에 index.phps를 입력하면 아래와 같이 나타난다.

코드를 보니 user_lv 라는 이름의 쿠키 값을 1로 설정한다.

중간에 있는 if 문을 보면 eregi 함수로 문자열을 비교한다.

eregi("[^0-9],.", $_COOKIE[user_lv]) 이 함수의 의미는 user_lv에 있는 값을 0~9 까지의 숫자와 .( dot ) 을 제외한 모든 문자열과 비교한다는 의미이며 이 값이 True이면 user_lv 값을 1로 설정한다.

두 번째 if문을 보면 user_lv 값이 6 이상이면 user_lv 값을 1로 설정한다.

마지막 if 문을 보면 user_lv 값이 5보다 크면 solve() 함수를 호출하는 것을 볼 수 있다.


즉 우리가 해야 할 것은 5 보다 크고 6보다 작은 수를 user_lv 값에 넣어야 한다는 것이다.


이를 위해 프록시를 이용한다. 필자는 burpsuite를 사용한다.


먼저 burpsuite를 실행한다. 

proxy 탭에 가보면 위와 같은 화면이 나타난다. Intercept is on 이라고 되어 있으면 프록시가 동작하는 것이다.

options 탭에 들어가서 Intercept Server Responses 부분에도 체크를 해준다.

그러면 서버에서 응답해주는 것까지 받아올 수 있다.


burpsuite 설정을 하고나서 이제 브라우저에서 프록시를 사용하도록 설정해야 한다.

필자는 Safari를 이용하기 때문에 Safari 환경설정에 들어가 프록시를 설정해 준다.

보통 프록시의 포트는 8080으로 설정한다.

프록시 설정할 때 기본적으로 local domain에 대해서 예외를 설정하는데 이 부분을 제거해 주어야 한다.


* 다른 브라우저를 사용할 경우 해당 브라우저의 설정에 들어가 네트워크 관련된 부분을 보면 프록시 설정을 할 수 있는 설정창이 나타난다.


설정이 완료된 후 webhacking 1번 문제 페이지를 새로고침 하면 burpsuite에서 다음과 같은 화면을 볼 수 있다.


3번 째 줄에 보면 user_lv=1 로 되어 있는데 이 부분을 5.x 로 설정하고 intercept is on을 클릭하게 되면 다음과 같이 1번 문제를 풀었다는 메시지를 확인할 수 있다.

* 여기서 x는 원하는 숫자를 쓰면 된다. 앞서 코드를 분석했을 때 숫자와 .( dot )은 첫 번째 if 문에서 걸리지 않기 때문에 소수점을 이용해 5와 6사이의 값을 설정할 수 있다.



'Wargame > webhacking' 카테고리의 다른 글

[webhacking.kr] 6번 문제  (0) 2017.05.02
[webhacking.kr] 5번 문제  (0) 2017.05.02
[webhacking.kr] 4번 문제  (0) 2017.05.02
[webhacking.kr] 3번 문제  (0) 2017.05.02
[webhacking.kr] 가입하기  (0) 2017.05.01
Posted by Imp3rio
Wargame/webhacking2017. 5. 1. 23:57

webhacking.kr 사이트에 접속해 보면 다음과 같은 화면을 볼 수 있다.



login 부분만 보이고 아이디를 입력 하는 부분과 비밀번호를 입력하는 부분 그리고 회원가입 하는 부분은 보이지 않는다.


우선 페이지의 소스를 보도록 하자.




소스를 보다보면 위 그림과 같이 나타나는 것을 알 수 있다.

회원가입 하는 부분이 주석처리가 된 것을 확인할 수 있다.

즉, 이 주석을 제거해주면 다음과 같이 회원가입 할 수 있는 버튼이 나타나는 것을 확인할 수 있다.


Register를 누르면 다음과 같은 화면이 나타난다.


decode me 부분에 암호문이 있다. 이 암호문의 끝을 보니 '==' 로 끝나는 것으로 봐서 base64 암호화 방식인 것을 유추할 수 있다.

해당 부분의 값을 복사해서 base64 디코드 사이트에서 디코딩 해보자.


여전히 읽을 수가 없다. 읽을 수 있는 문자가 나올 때까지 반복하면 자신의 IP 주소가 나타나는 것을 확인할 수 있다. 디코딩 한 값을 회원가입 페이지의 decode me 부분에 넣고 가입을 하자.

'Wargame > webhacking' 카테고리의 다른 글

[webhacking.kr] 6번 문제  (0) 2017.05.02
[webhacking.kr] 5번 문제  (0) 2017.05.02
[webhacking.kr] 4번 문제  (0) 2017.05.02
[webhacking.kr] 3번 문제  (0) 2017.05.02
[webhacking.kr] 1번 문제  (0) 2017.05.02
Posted by Imp3rio

1. MITM( Man In The Middle )


MITM 공격은 글자 그대로 누군가의 사이에 끼어드는 것이다. 

클라이언트와 서버의 통신에 암호화된 채널을 이용하게 되면서 등장했다.

MITM은 전달되는 패킷의 MAC 주소와 IP 주소 뿐만 아니라 패킷의 내용까지 바꿀 수 있다.

네트워크 통신을 조작하여 내용을 도청하거나 조작하는 공격


* CAUTION

프로토콜 취약점을 이용한 공격으로 현재까지도 카페, 도서관 등의 공공장소에서 공격이 가능하다

ARP 스푸핑 공격만으로도 범죄다.

절대 공공장소에서 테스트하지 말고 가상환경에서 테스트해야 한다.


MITM 공격 방법은

ARP 스푸핑 공격을 하면서 Packet 포워딩을 하는 것이다.


필자는 ettercap 툴과 etterfiler 툴을 이용한다.


kali linux 터미널창을 열고 아래와 같이 명령을 입력하면 공격을 수행한다.


ettercap -T -M arp:remote //victim ip/ //gateway ip/



희생자 컴퓨터에서 인터넷 접속을 하게 되면 다음과 같이 나타난다.



즉 패킷에 대한 정보들을 화면에 출력해준다.


ettercap을 이용하면 이와 같이 패킷을 캡쳐할 수 있다.


이번에 볼 것은 etterfilter를 이용해 love 라는 단어를 hate라는 단어로 변조시키는 것이다.

이를 위해 먼저 코드를 작성해야 한다.

kali linux에서 vi 또는 edit 을 이용해 파일을 하나 생성한다. 파일의 확장자는 어느것으로 해도 상관 없다.

필자는 txt 롹장자로 하겠다.


코드를 작성한 후 다음 명령으로 적용할 필터 파일을 생성한다.

etterfilter -o love.elf love.txt


위와 같은 명령이 수행되면 love.elf 파일이 만들어진다. elf 파일은 ettercap 툴에서 필터링 할때 사용하는 파일이다.



ettercap -T -M arp:remote -F love.elf //victim ip/ //gateway ip/

위 명령을 수행하면 위 그림과 같이 나타나며 공격이 수행된다.


희생자가 인터넷에 'love'를 검색하면 'hate'로 변경되는 것을 확인할 수 있다.


* 희생자가 브라우저를 통해 'love'를 검색하는 화면


문자를 변경하는 것을 해봤으니 이제 이미지를 변경시키는 공격을 해보자.


우선 앞서 공격한 방식대로 코드를 먼저 작성한다.

필자는 image.txt 파일을 만들었다.



위 파일을 다음 명령을 수행해 필터 파일을 생성한다.

etterfilter -o image.elf image.txt


ettercap -T -M arp:remote -F image.elf //victim ip/ //gateway ip/

명령으로 공격한다.


희생자가 웹 사이트에 접속하면 이미지가 변경되는 것을 확인할 수 있다.


'NCS보안3기 > 네트워크 해킹' 카테고리의 다른 글

[Network Hacking] 세션 하이재킹  (0) 2017.05.01
[Network Hacking] 스푸핑 공격  (0) 2017.04.30
[Network Hacking] 스니핑  (0) 2017.04.30
[Network Hacking] TCP 스캔  (0) 2017.04.30
[Network Hacking] ICMP스캔  (0) 2017.04.30
Posted by Imp3rio