http://webhacking.kr/challenge/web/web-02/




메인 페이지의 소스코드를 먼저 확인해 보았다.




페이지에서 볼 수 없었던 admin 페이지와



주석처리된 시간이 나와있다.




메인페이지에서 용을 누르거나

http://webhacking.kr/challenge/web/web-02/admin/ 주소로 들어가면,

로그인 할 수 있는 페이지가 나온다.

SQL Injection을 시도했지만, ...ㅠㅠ





페이지를 더 살펴보다보니 FreeB0aRd라는 BOARD 페이지에 비밀글이 남겨져 있었다.

여기서도 SQL Injection을 시도했지만, ...ㅠㅠ



(https://www.epochconverter.com/)



그러다 쿠키를 확인해봤는데, 

메인 페이지 소스코드에서 주석처리된 시간 값과 같은 time 쿠키가 있었다.

이를 이용해 Blind SQL Injection 취약점이 있는지 확인해보았다.


(Blind SQL Injection이란, 쿼리가 참과 거짓일 때 서버의 반응을 이용해 SQL Injection을 수행하는 것이다.)



거짓일 경우(1=0), 소스 코드와



참일 경우(1=1), 소스코드가 다른 것을 확인할 수 있다.

  이를 이용해 BOARD과 admin 페이지의 비밀번호를 알아내보자.


BOARD 페이지의 테이블명은 FreeB0aRd

admin 페이지의 테이블명은 admin으로 시도해 보았다.




1500002895 and (select length(password) from FreeB0aRd) = 9



1500002895 and (select length(password) from admin) = 10


위와 같이 비밀번호의 길이를 알아내었다.



비밀번호는 다음과 같은 코드로

Blind SQL Injection을 통해 알아낸다.


 1500002895 and (select ascii(substring(password,1,1)) from FreeB0aRd = 48

1500002895 and (select ascii(substring(password,1,1)) from admin = 65


9글자/10글자를 하나씩 다 해보기는 힘드므로,

파이썬을 사용하였다.


 findPW.py

(참고 : http://dosnipe.tistory.com/67)



두 테이블의 비밀번호를 얻었다.



FreeB0aRd 테이블의 비밀번호 값으로 비밀글을 확인하면, 
압축 파일을 얻을 수 있다.




압축을 풀려고 하니 비밀번호를 입력하라고 했다.




admin 테이블의 비밀번호 값으로 페이지에 로그인 해보니, 
압축 파일 비밀번호가 나와있었다.




압축 파일에 들어있던 .html 파일을 열어보니 패스워드가 나왔고

이 패스워드를 http://webhacking.kr/index.php?mode=auth 사이트에 입력하면 된다.





'문제풀이 > webhacking.kr' 카테고리의 다른 글

webhacking.kr - 5번  (0) 2017.08.01
webhacking.kr - 4번  (0) 2017.07.31
webhacking.kr - 3번  (0) 2017.07.31
webhacking.kr - 1번  (0) 2017.07.31
webhacking.kr - 회원가입  (0) 2017.07.31



http://webhacking.kr/challenge/web/web-01/





1번 문제 화면이다.

index.phps를 클릭하면 페이지 소스가 나온다.


소스를 살펴보자.



SetCookie 함수를 사용해 1의 값을 가지는 user_lv 쿠키를 생성한다.

(참고 : https://www.w3schools.com/php/func_http_setcookie.asp)




if(eregi("[^0-9, .]", $_COOKIE[user_lv])) $_COOKIE[user_lv]=1;

// 쿠키 값이 숫자 0-9를 제외한 값으로 나오면 쿠키 값을 1로 


if($_COOKIE[user_lv]>=6) $_COOKIE[user_lv]=1;

// 쿠키 값이 6보다 크거나 같으면 쿠키 값을 1로


if($_COOKIE[user_lv]>5) @solve();

// 쿠키 값이 5이상일 경우 solve 함수 호출



즉, 5보다 크면서 6보다 작은 쿠키 값을 주면 문제를 해결할 수 있다.



크롬 브라우저에서 쿠키 값을 변조하기 위해

EditThisCookie 확장 프로그램을 설치한다.





EditThisCookie을 이용하여 쿠키 값을 변경한다.




쿠키 값을 변경한 뒤 다시 사이트에 접속하면 문제 해결!











'문제풀이 > webhacking.kr' 카테고리의 다른 글

webhacking.kr - 5번  (0) 2017.08.01
webhacking.kr - 4번  (0) 2017.07.31
webhacking.kr - 3번  (0) 2017.07.31
webhscking.kr - 2번  (0) 2017.07.31
webhacking.kr - 회원가입  (0) 2017.07.31

 

http://webhacking.kr/

 

 

 

메인 화면에 로그인 버튼은 보이지만, 회원가입 버튼은 보이지 않는다.

 

 

회원가입 할 수 있는 방법을 찾기 위해 페이지 소스를 확인해본다.

(마우스 우클릭 → 페이지 소스 보기)

 

소스를 확인해보니, 회원가입 버튼 관련 부분이 주석 처리되어 있었다.

 

 

 

소스에 나와있는 주소를

 

http://webhacking.kr/ 뒤에 붙여 접속하면 회원가입 할 수 있는 페이지가 나온다.

 

 

 

 

각 항목에 알맞은 값을 입력하면 회원가입을 할 수 있다.

 

decode me 항목은 적혀있는 값을 base64로 통해 디코딩을 하다보면 올바른 값을 얻을 수 있다.

 

 

(base64 디코딩 사이트 : http://www.convertstring.com/ko/EncodeDecode/Base64Decode)

 

 

 

 

'문제풀이 > webhacking.kr' 카테고리의 다른 글

webhacking.kr - 5번  (0) 2017.08.01
webhacking.kr - 4번  (0) 2017.07.31
webhacking.kr - 3번  (0) 2017.07.31
webhscking.kr - 2번  (0) 2017.07.31
webhacking.kr - 1번  (0) 2017.07.31

+ Recent posts