no image
webhacking.kr challenge 24
※ 작년 말 ~ 올해 초에 작성한 라이트업으로 사이트 개편 전의 문제가 섞여있습니다. ※ 쿠키의 REMTE_ADDR이 ip가 되므로 “127.0.0.1”을 입력해야 한다. 하지만 “..”은 “.”으로, “12”, “7.”, “0.”은 지워지므로 변형이 필요하다. 따라서 REMOTE_ADDR이라는 쿠키를 만들고 값을 “112277…00…00…1”이라고 설정하면 ip에 127.0.0.1이 들어가면서 문제가 풀린다.
2020.06.27
no image
webhacking.kr challenge 23
※ 작년 말 ~ 올해 초에 작성한 라이트업으로 사이트 개편 전의 문제가 섞여있습니다. ※ 23번 문제에 들어가니 alert(1); 명령을 실행시켜서 1이 출력되면 문제가 풀리는 것을 확인할 수 있다. 먼저 alert(1);를 그대로 입력하니 ‘no hack’이 출력되었다. 어떤 상황에서 ‘no hack’이 출력되는지 확인하기 위해 여러 값을 입력해보았다. 일단 1212라는 숫자를 입력했더니 1212가 그대로 출력되었다. 그 다음으로는 아무 문자열이나 입력해보았더니 ‘no hack’이 출력되었다. 다음으로 0x를 입력했더니 그대로 출력이 되었다. 이것을 통해 연속된 문자열은 걸러지는 것을 확인할 수 있다. 예측한 대로 ‘a b’라고 공백을 주어서 입력하니 문자열이 그대로 출력되었다. 역시 따로 필터링 되지..
2020.06.27
no image
webhacking.kr challenge 20
※ 작년 말 ~ 올해 초에 작성한 라이트업으로 사이트 개편 전의 문제가 섞여있습니다. ※ script의 ck 함수를 살펴보면 lv5frm.id.value와 lv5frm.cmt.value, lv5frm.captcha.value의 값이 공백이 아니고, lv5frm.captcha.value의 값이 lvm5frm.captcha_.value와 동일하면 lv5frm.submit()이 되면서 문제가 풀린다. chaptcha의 값이 새로 고침을 할 때마다 바뀌고, 2초의 time limit가 있기 때문에 콘솔 창을 이용해서 2초 안에 위의 코드를 입력하면 문제가 풀린다.
2020.06.26
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

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

 

 

 

 쿠키의 REMTE_ADDRip가 되므로 “127.0.0.1”을 입력해야 한다. 하지만 “..”“.”으로, “12”, “7.”, “0.”은 지워지므로 변형이 필요하다. 따라서 REMOTE_ADDR이라는 쿠키를 만들고 값을 “112277…00…00…1”이라고 설정하면 ip127.0.0.1이 들어가면서 문제가 풀린다.

 

 

728x90

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

webhacking.kr challenge 26  (0) 2020.06.27
webhacking.kr challenge 25  (0) 2020.06.27
webhacking.kr challenge 23  (0) 2020.06.27
webhacking.kr challenge 20  (0) 2020.06.26
webhacking.kr challenge 19  (0) 2020.06.26

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

 

 

 

 23번 문제에 들어가니 <script>alert(1);</alert> 명령을 실행시켜서 1이 출력되면 문제가 풀리는 것을 확인할 수 있다.

 

 

먼저 <script>alert(1);</alert>를 그대로 입력하니 ‘no hack’이 출력되었다.

 

  

 어떤 상황에서 ‘no hack’이 출력되는지 확인하기 위해 여러 값을 입력해보았다. 일단 1212라는 숫자를 입력했더니 1212가 그대로 출력되었다.

  

 

 그 다음으로는 아무 문자열이나 입력해보았더니 ‘no hack’이 출력되었다.

 

  

 다음으로 0x를 입력했더니 그대로 출력이 되었다. 이것을 통해 연속된 문자열은 걸러지는 것을 확인할 수 있다.

 

  

 예측한 대로 ‘a b’라고 공백을 주어서 입력하니 문자열이 그대로 출력되었다.

 

  

<> 역시 따로 필터링 되지 않고 출력되었다.

 

 

 문제를 풀기 위해서 ‘<s c r i p t>a l e r t(1);</s c r i p t>’ 라고 공백을 두어서 입력했다. ‘no hack’이 출력되지는 않았지만 문제가 풀리지 않고 alert(1)에 줄이 그어져서 출력되었다.

 

 

 주소창에서 %20 %0a로 바꿔서 ’<s%0ac%0ar%0ai%0ap%0at>a%0al%0ae%0ar%0at(1);</s%

0ac%0ar%0ai%0ap%0at>’라고 입력했지만 여전히 문제가 해결되지 않았다.

 

 

 검색을 해보니 이 문제의 경우 %00(null)을 사이에 넣어줘야 한대서 ‘<s%00c%00r%00i%00p%00

t>a%00l%00e%00r%00t(1);</s%00c%00r%00i%00p%00t>’라고 입력하니 문제가 풀렸다.

 

728x90

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

webhacking.kr challenge 25  (0) 2020.06.27
webhacking.kr challenge 24  (0) 2020.06.27
webhacking.kr challenge 20  (0) 2020.06.26
webhacking.kr challenge 19  (0) 2020.06.26
webhacking.kr challenge 18  (0) 2020.06.26

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

 

 

 

 scriptck 함수를 살펴보면 lv5frm.id.value lv5frm.cmt.value, lv5frm.captcha.value의 값이 공백이 아니고, lv5frm.captcha.value의 값이 lvm5frm.captcha_.value와 동일하면 lv5frm.submit()이 되면서 문제가 풀린다. chaptcha의 값이 새로 고침을 할 때마다 바뀌고, 2초의 time limit가 있기 때문에 콘솔 창을 이용해서 2초 안에 위의 코드를 입력하면 문제가 풀린다.

 

 

 

728x90

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

webhacking.kr challenge 24  (0) 2020.06.27
webhacking.kr challenge 23  (0) 2020.06.27
webhacking.kr challenge 19  (0) 2020.06.26
webhacking.kr challenge 18  (0) 2020.06.26
webhacking.kr challenge 17  (0) 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