no image
webhacking.kr challenge 19
※ 작년 말 ~ 올해 초에 작성한 라이트업으로 사이트 개편 전의 문제가 섞여있습니다. ※ 풀이 1. admin을 입력하면 ‘you are not admin’이라고 뜨고, 그 외의 문자를 입력하면 정상적으로 로그인이 된다. 따라서 admin이라는 값을 우회해야 한다. 입력 창에는 최대 5글자만 입력이 가능하므로 주소창을 통해서 직접 값을 전달한다. ?id=admin으로 입력을 하되, admin 사이에 ‘%09’로 공백을 주어 입력하면 문제가 풀린다. 풀이 2. a를 입력했을 때와 aa를 입력했을 때의 base 64 값과 쿠키 값이다. 이를 살펴보면 입력 값의 한 알파벳 마다의 base 64 값이 쿠키의 값으로 들어가는 것을 확인할 수 있다. 따라서 admin을 구성하는 알파벳의 base 64 값을 구하여 ..
2020.06.26
no image
webhacking.kr challenge 18
※ 작년 말 ~ 올해 초에 작성한 라이트업으로 사이트 개편 전의 문제가 섞여있습니다. ※ 문제 하단의 ‘index.phps’를 클릭하면 하단의 코드가 나온다. if($_GET[no]) { if(eregi(" |/|\(|\)|\t|\||&|union|select|from|0x",$_GET[no])) exit("no hack"); $q=@mysql_fetch_array(mysql_query("select id from challenge18_table where id='guest' and no=$_GET[no]")); if($q[0]=="guest") echo ("hi guest"); if($q[0]=="admin") { @solve(); echo ("hi admin!"); } } get 방식으로 no의 값을..
2020.06.26
no image
webhacking.kr challenge 17
※ 작년 말 ~ 올해 초에 작성한 라이트업으로 사이트 개편 전의 문제가 섞여있습니다. ※ 소스코드를 살펴보면 unlock이라는 복잡한 식이 있고, unlock과 일치하는 값을 입력할 경우 문제가 풀린다. 따라서 alert(unlock)으로 unlock 값을 확인한 후 그 값을 입력한다.
2020.06.26
no image
webhacking.kr challenge 16
※ 작년 말 ~ 올해 초에 작성한 라이트업으로 사이트 개편 전의 문제가 섞여있습니다. ※ 16번 문제를 처음 누르면 *이 뜬다. 키보드로 아무 버튼이나 클릭하면 작은 별이 생기고 큰 별은 이동하게 된다. 페이지 소스코드를 보면 100, 97, 119, 115를 입력 받으면 상하좌우로 움직이고, 124를 입력 받으면 특정한 동작을 한다고 되어있다. 아스키 코드표를 확인하면 각각 숫자에 d, a, w, s, 그리고 |가 해당되는 것을 확인할 수 있다. d, a, w, s를 입력하면 큰 별이 움직이게 된다. 또한 |를 입력하면 문제가 풀린다.
2020.06.26
no image
webhacking.kr challenge 15
※ 작년 말 ~ 올해 초에 작성한 라이트업으로 사이트 개편 전의 문제가 섞여있습니다. ※ 설정에 들어가서 자바스크립트를 검색 후 차단한다. 그런 다음에 문제에 접속하면 나가지지 않는다. 페이지 소스보기를 본다. ‘a href=?getFlag’ 라는 문장이 있다. 링크 뒤에다가 위의 값을 입력하면 문제가 풀린다.
2020.06.26
no image
webhacking.kr challenge 14
※ 작년 말 ~ 올해 초에 작성한 라이트업으로 사이트 개편 전의 문제가 섞여있습니다. ※ 14번 문제에 들어가서 텍스트 창에 아무 값이나 입력하고 check를 누르면 wrong이라는 알림이 뜬다. 소스코드를 열어서 자바 스크립트 부분을 확인하면 ck 함수가 있다. function ck() { var ul=document.URL; ul=ul.indexOf(".kr"); ul=ul*30; if(ul==pw.input_pwd.value) { alert("Password is "+ul*pw.input_pwd.value); } else { alert("Wrong"); } } 함수를 보면 var ul=document.URL, ul=ul.indexOf(".kr"), ul=ul*30 이라는 부분이 있다. 옆의 Cons..
2020.06.26
no image
webhacking.kr challenge 12
※ 작년 말 ~ 올해 초에 작성한 라이트업으로 사이트 개편 전의 문제가 섞여있습니다. ※ 자바 스크립트 하단의 ('_’);를 제외하고 콘솔에 입력하면 다음과 같은 코드가 나온다. 방금 얻은 자바 스크립트 코드의 if 조건문 부분을 복붙해서 alert하면 youaregood~~~~~~~!이라고 뜬다. url 뒤에 ?val로 붙여주면 문제가 풀린다.
2020.06.26
no image
webhacking.kr challenge 11
※ 작년 말 ~ 올해 초에 작성한 라이트업으로 사이트 개편 전의 문제가 섞여있습니다. ※ [1-3]: 1에서 3까지의 숫자 [a-f]{5}: a에서 f까지의 영어 소문자 5개 $_SERVER[REMOTE_ADDR]: 공인 IP 주소 \t: tab, %09 공인 IP 주소는 하단의 사이트를 사용해 구했다. https://ip.pe.kr/ 내 아이피 확인 (My ip address) - ip.pe.kr 211.249.205.141 당신의 공인 아이피 주소는 위와 같습니다. 접속하신 국가는 대한민국 (KR) 입니다. 자세히 알아보기 ip.pe.kr
2020.06.26

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

 

 

 

풀이 1. 

 admin 입력하면 ‘you are not admin’이라고 뜨고, 그 외의 문자를 입력하면 정상적으로 로그인이 된다. 따라서 admin이라는 값을 우회해야 한다.

 

 

입력 창에는 최대 5글자만 입력이 가능하므로 주소창을 통해서 직접 값을 전달한다. ?id=admin으로 입력을 하되, admin 사이에 ‘%09’로 공백을 주어 입력하면 문제가 풀린다.

 

 

 

 

풀이 2. 

 

a를 입력했을 때와 aa를 입력했을 때의 base 64 값과 쿠키 값이다. 이를 살펴보면 입력 값의 한 알파벳 마다의 base 64 값이 쿠키의 값으로 들어가는 것을 확인할 수 있다. 

 

 

따라서 admin을 구성하는 알파벳의 base 64 값을 구하여 모두 합쳐준다. 

 

 

그 다음 그 값을 base 64로 돌려준다. 이 결과가 쿠키 값이 된다. 

 

 

728x90

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

webhacking.kr challenge 23  (0) 2020.06.27
webhacking.kr challenge 20  (0) 2020.06.26
webhacking.kr challenge 18  (0) 2020.06.26
webhacking.kr challenge 17  (0) 2020.06.26
webhacking.kr challenge 16  (0) 2020.06.26

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

 

 

 

 

문제 하단의 ‘index.phps’를 클릭하면 하단의 코드가 나온다.

 

 

 

if($_GET[no]) 
{ 


if(eregi(" |/|\(|\)|\t|\||&|union|select|from|0x",$_GET[no])) exit("no hack"); 

$q=@mysql_fetch_array(mysql_query("select id from challenge18_table where id='guest' and no=$_GET[no]")); 

if($q[0]=="guest") echo ("hi guest"); 
if($q[0]=="admin") 
{ 
@solve(); 
echo ("hi admin!"); 
} 

} 

 

 get 방식으로 no의 값을 받으면 아래의 코드들이 실행되게 된다. 그리고 만약 입력 받은 값에 공백, /, \(, \), \t, |, &, union, select, from, 0x 등의 문자열이 있을 경우 exit에 의해 종료된다. 그리고 쿼리문의 결과 데이터를 배열 형식으로 저장해서 배열의 첫번째 데이터가 “admin”이라면 문제가 풀리게 된다. 임의로 숫자를 대입해보자.

       

 

임의로 0, 1, 2를 대입해보았다. 주소에 no=0, no=1, no=2 형식으로 들어가게 되고, 1을 대입했을 때 ‘hi guest’라고 뜨는 것을 볼 수 있다. select id from challenge18_table (where((id=’guest’) and (no=1)))이라는 쿼리문이 실행되면 q[0]guest라는 문자열이 저장되는 것이다. 그렇다면 특정 no 값에 ‘admin’ 데이터를 담고 있을 것이다. 이때 공백을 넣을 경우 조건문이 종료되므로 공백을 무시하는 ‘%0a’를 사용해야 한다.

 

 

 

no=2%0aor%0ano=2를 입력하면 idguest이고 no=2이거나(거짓, 1을 제외한 아무 값이나 넣어도 된다.), no2인 값을 쿼리문에 저장하게 된다. no=2인 값에 ‘admin’ 데이터를 담고있는 것이다.

728x90

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

webhacking.kr challenge 20  (0) 2020.06.26
webhacking.kr challenge 19  (0) 2020.06.26
webhacking.kr challenge 17  (0) 2020.06.26
webhacking.kr challenge 16  (0) 2020.06.26
webhacking.kr challenge 15  (0) 2020.06.26

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

 

 

 

 소스코드를 살펴보면 unlock이라는 복잡한 식이 있고, unlock과 일치하는 값을 입력할 경우 문제가 풀린다.

 

 

 

 따라서 alert(unlock)으로 unlock 값을 확인한 후 그 값을 입력한다.

 

 

728x90

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

webhacking.kr challenge 19  (0) 2020.06.26
webhacking.kr challenge 18  (0) 2020.06.26
webhacking.kr challenge 16  (0) 2020.06.26
webhacking.kr challenge 15  (0) 2020.06.26
webhacking.kr challenge 14  (0) 2020.06.26

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

 

 

 

16번 문제를 처음 누르면 *이 뜬다.

 

 

 키보드로 아무 버튼이나 클릭하면 작은 별이 생기고 큰 별은 이동하게 된다.

 

 

 페이지 소스코드를 보면 100, 97, 119, 115를 입력 받으면 상하좌우로 움직이고, 124를 입력 받으면 특정한 동작을 한다고 되어있다.  

 

 

아스키 코드표를 확인하면 각각 숫자에 d, a, w, s, 그리고 |가 해당되는 것을 확인할 수 있다. d, a, w, s를 입력하면 큰 별이 움직이게 된다.

 

 

또한 |를 입력하면 문제가 풀린다.

728x90

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

webhacking.kr challenge 18  (0) 2020.06.26
webhacking.kr challenge 17  (0) 2020.06.26
webhacking.kr challenge 15  (0) 2020.06.26
webhacking.kr challenge 14  (0) 2020.06.26
webhacking.kr challenge 12  (0) 2020.06.26

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

 

 

 

 

 설정에 들어가서 자바스크립트를 검색 후 차단한다.

 

 

 그런 다음에 문제에 접속하면 나가지지 않는다. 

 

 

 페이지 소스보기를 본다. ‘a href=?getFlag’ 라는 문장이 있다.

 

 

 링크 뒤에다가 위의 값을 입력하면 문제가 풀린다.

728x90

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

webhacking.kr challenge 17  (0) 2020.06.26
webhacking.kr challenge 16  (0) 2020.06.26
webhacking.kr challenge 14  (0) 2020.06.26
webhacking.kr challenge 12  (0) 2020.06.26
webhacking.kr challenge 11  (0) 2020.06.26

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

 

 

 

 14번 문제에 들어가서 텍스트 창에 아무 값이나 입력하고 check를 누르면 wrong이라는 알림이 뜬다. 소스코드를 열어서 자바 스크립트 부분을 확인하면 ck 함수가 있다.

 

 

function ck()

{

var ul=document.URL;

ul=ul.indexOf(".kr");

ul=ul*30;

if(ul==pw.input_pwd.value) { alert("Password is "+ul*pw.input_pwd.value); }

else { alert("Wrong"); }

}

 

 함수를 보면 var ul=document.URL, ul=ul.indexOf(".kr"), ul=ul*30 이라는 부분이 있다. 옆의 Console을 눌러서 ul*30의 값을 구해준다.

 

 

 결과를 확인해보면 ul.indexOf(“.kr”)의 값은 17, 그리고 최종 패스워드는 510가 나온다.

 

 

 텍스트 창에 510을 입력하면 ‘password is 260100’라는 알림이 뜬다.

 

 

Auth로 가서 260100이라는 값을 입력하면 문제가 해결된다.

728x90

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

webhacking.kr challenge 16  (0) 2020.06.26
webhacking.kr challenge 15  (0) 2020.06.26
webhacking.kr challenge 12  (0) 2020.06.26
webhacking.kr challenge 11  (0) 2020.06.26
webhacking.kr challenge 10  (0) 2020.06.26

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

 

 

 

자바 스크립트 하단의 ('_’); 제외하고 콘솔에 입력하면 다음과 같은 코드가 나온다.

 

 

 

방금 얻은 자바 스크립트 코드의 if 조건문 부분을 복붙해서 alert하면 youaregood~~~~~~~!이라고 뜬다. url 뒤에 ?val로 붙여주면 문제가 풀린다.

728x90

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

webhacking.kr challenge 15  (0) 2020.06.26
webhacking.kr challenge 14  (0) 2020.06.26
webhacking.kr challenge 11  (0) 2020.06.26
webhacking.kr challenge 10  (0) 2020.06.26
webhacking.kr challenge 8  (0) 2020.06.26

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

 

 

 

[1-3]: 1에서 3까지의 숫자

[a-f]{5}: a에서 f까지의 영어 소문자 5

$_SERVER[REMOTE_ADDR]: 공인 IP 주소

\t: tab, %09

 

 

공인 IP 주소는 하단의 사이트를 사용해 구했다. 

https://ip.pe.kr/

 

내 아이피 확인 (My ip address) - ip.pe.kr

211.249.205.141 당신의 공인 아이피 주소는 위와 같습니다. 접속하신 국가는 대한민국 (KR) 입니다. 자세히 알아보기

ip.pe.kr

 

 

728x90

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

webhacking.kr challenge 14  (0) 2020.06.26
webhacking.kr challenge 12  (0) 2020.06.26
webhacking.kr challenge 10  (0) 2020.06.26
webhacking.kr challenge 8  (0) 2020.06.26
webhacking.kr challenge 7  (0) 2020.06.26