no image
webhacking.kr challenge 41
※ 작년 말 ~ 올해 초에 작성한 라이트업으로 사이트 개편 전의 문제가 섞여있습니다. ※ 255보다 큰 길이의 file 이름을 가지게 되면 copy 함수에서 에러가 나고, 에러 메시지를 통해서 {$upload_dir}이 출력된다. 그 이후에 정상적인 파일을 업로드하고, 업로드 파일을 들어가보면 FLAG가 나온다.
2020.06.27
no image
webhacking.kr challenge 39
※ 작년 말 ~ 올해 초에 작성한 라이트업으로 사이트 개편 전의 문제가 섞여있습니다. ※ 39번 문제는 특정 값을 입력해서 제출을 하는 것이다. 소스를 확인해보면 쿼리가 전달되는데, id의 값에 ‘가 열린 채로 전송이 된다. 또한 조건을 보면 ‘은 ‘’로 바뀌고, 15개의 문자만이 전달이 된다. 따라서 글자 수를 조절해 ‘가 닫히도록 하면 된다. “admin ‘”라고 입력해서 문제를 풀었다. 꼭 admin을 입력해야 하는 건 아니고, “1234 ‘”처럼 ‘이 15번째 문자로 들어가면 문제가 해결된다.
2020.06.27
no image
webhacking.kr challenge 38
※ 작년 말 ~ 올해 초에 작성한 라이트업으로 사이트 개편 전의 문제가 섞여있습니다. ※ 주석 처리된 a href를 해제하면 admin page 링크가 나타난다. 이동해보면 log viewe과 ‘You must logged ad “admin”’이라는 문장이 보인다. “admin”이라 입력하면 제대로 동작하지 않는다. 이는 CR-LF injection을 이용하여 풀 수 있다. Input을 textarea로 바꾼 후 줄바꿈과 ip:admin이라고 입력하면 문제가 풀린다.
2020.06.27
no image
webhacking.kr challenge 36
※ 작년 말 ~ 올해 초에 작성한 라이트업으로 사이트 개편 전의 문제가 섞여있습니다. ※ vi의 임시 파일은 swp 형식으로 저장된다. 따라서 ‘.index.php.swp’이라고 입력하면 임시 파일을 받을 수 있다.
2020.06.27
no image
webhacking.kr challenge 35
※ 작년 말 ~ 올해 초에 작성한 라이트업으로 사이트 개편 전의 문제가 섞여있습니다. ※ 문제 화면과 소스 코드이다. id가 admin이고, 접속한 ip가 컬럼에 들어있는 값과 일치해야 문제가 풀린다. 따라서 (id, ip, phone)의 양식에 맞게 (‘admin’, ‘내 ip 주소’, ‘번호’)를 넣어주면 된다. 1234),('admin','ip 주소','2345'를 phone 변수에 넣어주면 문제가 풀린다.
2020.06.27
no image
webhacking.kr challenge 34
※ 작년 말 ~ 올해 초에 작성한 라이트업으로 사이트 개편 전의 문제가 섞여있습니다. ※ 문제에 들어가면 debug me라고 뜨고는 검은 창만 뜬다. 소스 보기를 해보면 난독화 된 소스 코드가 보인다. 처음 들어갔을 때 alert가 되므로 alert를 검색해보았다. alert(b('0x1e','14cN'))라는 코드를 확인할 수 있다. 콘솔 창에 입력해보면 접속했을 때와 동일하게 debug me가 뜨는 것을 확인할 수 있다. alert가 else에 있으므로 그 앞의 if 부분을 살펴보았다. 소스 코드를 정리해보면 다음과 같다. 참일 경우에 있는 b('0x1c','4c%d')와 b('0x1d','llaF')가 무슨 뜻인지 궁금해서 alert로 띄워보았다. href와 ./?Passw0RRdd=1를 의미했다...
2020.06.27
no image
webhacking.kr challenge 32
※ 작년 말 ~ 올해 초에 작성한 라이트업으로 사이트 개편 전의 문제가 섞여있습니다. ※ 문제를 클릭하면 랭킹표가 뜬다. 하단으로 내려보면 join 버튼이 있고, 클릭하면 내 아이디로 알림이 뜨게 된다. 아이디를 찾아서 클릭하면 주소창에 hit=아이디가 뜨고, no!라는 창이 나온다. (다른 아이디를 클릭해도 동일하다.) 이거를 되게 해서 랭킹을 올리면 될 것 같다. 쿠키를 확인해보니 vote_check라는 것이 생겼다. 쿠키가 뜨지 않도록 차단한 후 다시 아이디를 클릭했다. 0에서 1로 값이 증가했다. 이것을 문제가 해결될 때까지 반복한다.
2020.06.27
no image
webhacking.kr challenge 27
※ 작년 말 ~ 올해 초에 작성한 라이트업으로 사이트 개편 전의 문제가 섞여있습니다. ※ 소스를 확인하면 preg_match("/#|select|\(| |limit|=|0x/i",$_GET['no']) 함수로 #, select, (, 공백, limit, = 등을 입력하면 “no hack”이라고 뜨게 되는 것을 확인할 수 있다. 또한 no=({$_GET['no']}) 부분을 보면 괄호 안에 값이 들어가는 것을 확인할 수 있다. 1을 입력한 후 제출을 눌러보니 guest라고 뜨는 것을 확인할 수 있다. 반면에 2를 입력해보니 query error라고 뜬다. 소스를 보면 admin’s no=2라고 나오기 때문에 2라는 값을 넘겨주어야 한다. 따라서 쿼리문이 ‘no=(0) or no=2’가 되어야 한다. 이때 ..
2020.06.27

※ 작년 말 ~ 올해 초에 작성한 라이트업으로 사이트 개편 전의 문제가 섞여있습니다.  ※ 

 

 

 255보다 큰 길이의 file 이름을 가지게 되면 copy 함수에서 에러가 나고, 에러 메시지를 통해서 {$upload_dir}이 출력된다. 그 이후에 정상적인 파일을 업로드하고, 업로드 파일을 들어가보면 FLAG 나온다.

 

 

 

728x90

'CTF > 웹 해킹' 카테고리의 다른 글

webhacking.kr challenge 43  (0) 2020.06.27
webhacking.kr challenge 42  (0) 2020.06.27
webhacking.kr challenge 39  (0) 2020.06.27
webhacking.kr challenge 38  (0) 2020.06.27
webhacking.kr challenge 36  (0) 2020.06.27

※ 작년 말 ~ 올해 초에 작성한 라이트업으로 사이트 개편 전의 문제가 섞여있습니다.  ※ 

 

 

 

 39번 문제는 특정 값을 입력해서 제출을 하는 것이다.

 

 

 소스를 확인해보면 쿼리가 전달되는데, id의 값에 가 열린 채로 전송이 된다. 또한 조건을 보면 ‘’로 바뀌고, 15개의 문자만이 전달이 된다. 따라서 글자 수를 조절해 가 닫히도록 하면 된다.

 

 

 “admin         ‘”라고 입력해서 문제를 풀었다. admin을 입력해야 하는 건 아니고, “1234          ‘”처럼 15번째 문자로 들어가면 문제가 해결된다.

728x90

'CTF > 웹 해킹' 카테고리의 다른 글

webhacking.kr challenge 42  (0) 2020.06.27
webhacking.kr challenge 41  (0) 2020.06.27
webhacking.kr challenge 38  (0) 2020.06.27
webhacking.kr challenge 36  (0) 2020.06.27
webhacking.kr challenge 35  (0) 2020.06.27

※ 작년 말 ~ 올해 초에 작성한 라이트업으로 사이트 개편 전의 문제가 섞여있습니다.  ※ 

 

 

주석 처리된 a href를 해제하면 admin page 링크가 나타난다. 이동해보면 log viewe‘You must logged ad “admin”’이라는 문장이 보인다.

 

 

 

 

 “admin”이라 입력하면 제대로 동작하지 않는다. 이는 CR-LF injection을 이용하여 풀 수 있다.

 

 

 

 Inputtextarea로 바꾼 후 줄바꿈과 ip:admin이라고 입력하면 문제가 풀린다.  

 

 

728x90

'CTF > 웹 해킹' 카테고리의 다른 글

webhacking.kr challenge 41  (0) 2020.06.27
webhacking.kr challenge 39  (0) 2020.06.27
webhacking.kr challenge 36  (0) 2020.06.27
webhacking.kr challenge 35  (0) 2020.06.27
webhacking.kr challenge 34  (0) 2020.06.27

※ 작년 말 ~ 올해 초에 작성한 라이트업으로 사이트 개편 전의 문제가 섞여있습니다.  ※ 

 

 

 

vi의 임시 파일은 swp 형식으로 저장된다. 따라서 ‘.index.php.swp이라고 입력하면 임시 파일을 받을 수 있다.

 

 

728x90

'CTF > 웹 해킹' 카테고리의 다른 글

webhacking.kr challenge 39  (0) 2020.06.27
webhacking.kr challenge 38  (0) 2020.06.27
webhacking.kr challenge 35  (0) 2020.06.27
webhacking.kr challenge 34  (0) 2020.06.27
webhacking.kr challenge 32  (0) 2020.06.27

※ 작년 말 ~ 올해 초에 작성한 라이트업으로 사이트 개편 전의 문제가 섞여있습니다.  ※ 

 

 

 

 문제 화면과 소스 코드이다.

 

 

 idadmin이고, 접속한 ip가 컬럼에 들어있는 값과 일치해야 문제가 풀린다. 따라서 (id, ip, phone)의 양식에 맞게 (‘admin’, ‘ip 주소’, ‘번호’)를 넣어주면 된다.

 

 

 

 1234),('admin','ip 주소','2345'phone 변수에 넣어주면 문제가 풀린다.

 

 

728x90

'CTF > 웹 해킹' 카테고리의 다른 글

webhacking.kr challenge 38  (0) 2020.06.27
webhacking.kr challenge 36  (0) 2020.06.27
webhacking.kr challenge 34  (0) 2020.06.27
webhacking.kr challenge 32  (0) 2020.06.27
webhacking.kr challenge 27  (0) 2020.06.27

※ 작년 말 ~ 올해 초에 작성한 라이트업으로 사이트 개편 전의 문제가 섞여있습니다.  ※ 

 

 

 

 문제에 들어가면 debug me라고 뜨고는 검은 창만 뜬다.

 

 

 소스 보기를 해보면 난독화 된 소스 코드가 보인다.

 

 

 처음 들어갔을 때 alert가 되므로 alert를 검색해보았다. alert(b('0x1e','14cN'))라는 코드를 확인할 수 있다.

 

 

 콘솔 창에 입력해보면 접속했을 때와 동일하게 debug me가 뜨는 것을 확인할 수 있다. alertelse에 있으므로 그 앞의 if 부분을 살펴보았다.

 

 

 소스 코드를 정리해보면 다음과 같다.

 

 

 

 참일 경우에 있는 b('0x1c','4c%d')b('0x1d','llaF')가 무슨 뜻인지 궁금해서 alert로 띄워보았다. href./?Passw0RRdd=1를 의미했다. , 코드를 정리해보면 location[href]= ./?Passw0RRdd=1가 되는 것이다.

 

 

  주소 뒤에 /?Passw0RRdd=1를 붙여서 들어가니 문제가 풀렸다.

728x90

'CTF > 웹 해킹' 카테고리의 다른 글

webhacking.kr challenge 36  (0) 2020.06.27
webhacking.kr challenge 35  (0) 2020.06.27
webhacking.kr challenge 32  (0) 2020.06.27
webhacking.kr challenge 27  (0) 2020.06.27
webhacking.kr challenge 26  (0) 2020.06.27

※ 작년 말 ~ 올해 초에 작성한 라이트업으로 사이트 개편 전의 문제가 섞여있습니다.  ※ 

 

 

 

문제를 클릭하면 랭킹표가 뜬다.

 

 

 하단으로 내려보면 join 버튼이 있고, 클릭하면 내 아이디로 알림이 뜨게 된다.

 

 

 아이디를 찾아서 클릭하면 주소창에 hit=아이디가 뜨고, no!라는 창이 나온다. (다른 아이디를 클릭해도 동일하다.) 이거를 되게 해서 랭킹을 올리면 될 것 같다.

 

 

 쿠키를 확인해보니 vote_check라는 것이 생겼다.

 

 

 쿠키가 뜨지 않도록 차단한 후 다시 아이디를 클릭했다.

 

 

0에서 1로 값이 증가했다. 이것을 문제가 해결될 때까지 반복한다.

728x90

'CTF > 웹 해킹' 카테고리의 다른 글

webhacking.kr challenge 35  (0) 2020.06.27
webhacking.kr challenge 34  (0) 2020.06.27
webhacking.kr challenge 27  (0) 2020.06.27
webhacking.kr challenge 26  (0) 2020.06.27
webhacking.kr challenge 25  (0) 2020.06.27

※ 작년 말 ~ 올해 초에 작성한 라이트업으로 사이트 개편 전의 문제가 섞여있습니다.  ※ 

 

 

 

소스를 확인하면 preg_match("/#|select|\(| |limit|=|0x/i",$_GET['no']) 함수로 #, select, (, 공백, limit, = 등을 입력하면 “no hack”이라고 뜨게 되는 것을 확인할 수 있다. 또한 no=({$_GET['no']}) 부분을 보면 괄호 안에 값이 들어가는 것을 확인할 수 있다.

 

 

 

 

 

 1을 입력한 후 제출을 눌러보니 guest라고 뜨는 것을 확인할 수 있다.

 

 

 반면에 2를 입력해보니 query error라고 뜬다. 소스를 보면 admin’s no=2라고 나오기 때문에 2라는 값을 넘겨주어야 한다. 따라서 쿼리문이 ‘no=(0) or no=2’가 되어야 한다.

 

 

 

 이때 쿼리문의 ‘)’ 괄호를 무시해야 하기 때문에 주석을 붙여서 ‘no=(0) or no=2 -- ‘라고 입력이 되어야 한다. 하지만 preg_match로 인해서 공백과 = 기호가 입력될 경우 ‘no hack’이 출력되기 때문에 우회를 해야 한다. 공백은 %09, = 기호는 like로 변환을 해준다. , 최종 입력 값은 ‘0)%09or%09no%09like%092%09--%09’가 된다.

 

 

728x90

'CTF > 웹 해킹' 카테고리의 다른 글

webhacking.kr challenge 34  (0) 2020.06.27
webhacking.kr challenge 32  (0) 2020.06.27
webhacking.kr challenge 26  (0) 2020.06.27
webhacking.kr challenge 25  (0) 2020.06.27
webhacking.kr challenge 24  (0) 2020.06.27