Notice
Recent Posts
Recent Comments
Link
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
Tags
more
Archives
Today
Total
관리 메뉴

Maru's

Webhacking.kr 33번 본문

Webhacking.kr

Webhacking.kr 33번

Maru.Maru 2017. 7. 16. 17:47

이번 문제는 매우 짜증나는 33번 문제입니다. 총 10가지 문제를 한문제에다 200점짜리로 넣어놨습니다.ㅡ.ㅡ

33-1번 문제입니다. 링크를 하나주고 밑에는 Wrong이라고 되어있습니다. 소스를 확인해봅시다.

소스를 확인하면 get이라는 변수에 hehe라는 입력값이 들어가면 next라는 링크를 준다고 합니다.

get방식으로 URL에 get=hehe 를 입력해주면 쉽게 풀립니다.

33-2번문제도 똑같은 문제입니다.

다만 이번엔 POST방식으로 post에 hehe post2에 hehe2를 넣어야 Next라는 링크를 준다고 합니다. POST방식과 GET방식의 차이는 GET방식은 URL에 노출되고 POST방식은 폼안에 쓰인다고 합니다.(URL에 보이지 않습니다.)

문제를 푸는 방법은 크롬의 개발자도구를 사용하여 추가해주어도 되고 저는 Brup Suite를 사용하여 첨부하였습니다. 이렇게 푼다면 Submit할 수 있는 칸과 test를 적는 칸이 생기는데 저는 value값을 미리 주어서 (따로 적기 귀찮아서) 바로 풀었습니다.

 

33-3번문제는 33-1번 문제와 별 다를 것이 없습니다. REMOTE_ADDR이 무엇인지만 이해한다면 쉽게 풀 수 있습니다. 현재페이즈를 보고있는 자신의 IP를 (공인IP) 를 GET방식으로 입력 해 준다면 풀 수 있습니다.

 

33번의 4번 문제는 좀 까다로운 문제입니다. 소스를 보면 Password에 GET방식으로 MD5해쉬화 된 Time 함수를 받는다. Time 함수는 현재 시간을 알려줍니다. 그리고 hint는 time()함수가 그대로 들어가있는데 저 힌트값을 MD5해쉬화 해서 get에 입력하면 되는데 이게 실시간으로 변하는 거라 넉넉하게 hint값에서 50정도 더해주어서 MD5해쉬화 한 후 Password에 계속 넣어주는 식으로 했습니다.  

 

 

33-5번 문제의 소스를 보면 GET 방식으로 imget이 존재하고 POST방식으로 impost가 존재하고 COOKIE 값에 imcookie란 이름으로 존재하면 NEXT를 준다고 합니다.

이 문제의 주의점은 이것을 모두 한꺼번에 주어야 한다는 것입니다. POST로 폼을 만들 때 action해주는 URL에 겟방식으로 imget을 추가하여 줍시다.

그럼 이렇게 입력할 수 있는 창이 생기고 이것을 입력하여 Burp Suite로 잡아서 Cookie값에 imcookie를 만들어 주면 문제를 해결 할 수 있습니다.

개인적으로 조금 짜증났던 33-6번 문제이빈다. hint 값으론 USER_AGent 값이 주어집니다.

소스를 보면 test라는 쿠키에는 md5로 해쉬화 한 REMOTE_ADDR 값을 넣고 kk에는 POST방식으로 md5로 해쉬화 한 USER_AGENT 값을 넣으라고 합니다.

크롬의 확장프로그램인 EditthisCookie툴을 이용하여 test에 자신의 공인아이피를 해쉬화 하여서 넣어 주고 Post방식으로 짜넣은 다음 크롬의 개발자 모드에서 넣어 주었습니다. (스크린샷은 Burp Suite로 잡은 모양입니다.)

이렇게하면 풀립니다.

--------------

여담으로 저는 익스플로어에선 hint값에 있는 Agent 값의 해쉬화 한 값과 Burp Suite에서 잡은 Agnet 값을 해쉬 한 값이 서로 달라서 고생했습니다. hint값만 주구장창 해쉬했었었는 데 왜 다른지 아직도 모르겠습니다.

--------------

33-7번 문제는 REMOTE_ADDR값에서 자신의 아이피 주소에 .를 없애주고 그 값을 변수의 이름으로 변수의 값을 넣어주면 됩니다.

예를 들면 123.456.789.555가 있따면 .을 없애주고 123456789555를 GET방식으로 변수로 123456789555=123456789555 라고 주면 됩니다.

 

33-8번은 addr에 127.0.0.1이 입력되면 넘어가는 군요. 간단한 문제입니다.  위에 있는 if문은 addr에 값이 없으면 자신의 IP값이 addr이 된다는 겁니다. addr에 값을 넣어주면 쉽게 풀립니다.

 

33-9번 문제는 i는 97 (a)이고 2씩 증가하면서 answer에 이어진다고 합니다. .= 연산자는 연결해주는 연산자라고 합니다.

for문이 작아 직접 풀어봐도 무방하니 직접 풀어보면 answer은 acegikmoqsuwy가 됩니다. ans변수에 GET방식으로 입력해 줍시다.

 

대망의 33-10번 문제입니다. 소스를 보면 ip에는 자신의 공인 ip 주소 값을 넣고 ip변수의 주소의 길이만큼 for문을 돌려 ip 변수에 있는 값을 치환하여 주고 for문이 끝나면 .을 없애 주고 substr함수로 0번째부터 10번째까지를 반환해주고 ~~ 되게 많은 작업을 합니다.

일일이 다 계산 할 수도없고 맨 밑부분을 보자면 answerip/$ip/$answer.$ip에 파일이 있고 그것을 열면 패스워드가 나온다고 합니다.

$ip값과 $answer값을 찾아봅시다.

구글을 검색해보고 알았는데 webhacking.kr 에는 PHPPAD를 제공한다고 합니다.  http://webhacking.kr/pds/phppad/index.php 

이곳으로 들어가서 패드에 소스값을 넣어주고 나오도록 변경시켜 줍시다.

이런식으로 왼쪽의 패드에  짜넣으면 answer과 ip값을 알 수 있습니다. answer값과 ip 값을 토대로 다시 answerip/$ip/$answer.$ip를 만들 수 있습니다.

들어가보면 password와 clear ip를 알려줍니다.

 

auth에 password를 입력하면 문제가 클리어됩니다.

'Webhacking.kr' 카테고리의 다른 글

webhacking.kr 12번  (0) 2017.07.16
Webhacking.kr 42번  (0) 2017.07.16
webhacking.kr 25번  (0) 2017.07.16
webhacking.kr 26번  (0) 2017.07.11
webhacking.kr 24  (0) 2017.07.11