Home

[Web.kr]Level 11

$pat에 이상한 정규 표현식들이 들어있고, if문을 살펴보면 pat와 val값이 같으면 풀리는 것 같다. 먼저 php 정규포현식에 대해 알아보았다. 대괄호 안에 있는 패턴의 일부를 “캐릭터 클래스”라고 하는데, ‘캐릭터 클래스’에서 사용할 수 있는 메타 문자는 다음과 같다. 다음은 이스퀘이프 시퀀스에 대한 정규식이다, 위 내용들을 종합하여 문제의 정규식을 해석하면, 참고 "/[1-3][a-f]{5}_.\*223.52.120.172.*\tp\ta\ts\ts/" / : 구분기호 [1-3] : 1부터 3까지 중 하나 [a-f]{5}_ : a부터 f까지 중 하나의 문자를 5번 반복하는 문자를 ...

Read more

[Web.kr]Level 10

<a id=hackme style="position:relative;left:0;top:0" onclick="this.style.posLeft+=1;if(this.style.posLeft==800)this.href='?go='+this.style.posLeft" onmouseover=this.innerHTML='yOu' onmouseout=this.innerHTML='O'>O</a><br> 소스코드에서 중요한 부분만 가져왔다. 해석하자면 id가 hackme이고 ‘O’ 라는 문자의 위치는 (0,0)이다. 그리고 클릭할 때 마다 left좌표가 1씩 증가한다. 즉, 오른쪽으로 1씩...

Read more

[Web.kr]Level 09

숫자 버튼이 1~3 까지 있고, 패스워드 입력 창이 보인다. 1번을 누르면 “Apple”이 보여지고, no값이 1이 된다. 2번은 “Banana” 이다. 3번은 “Secret” 이라고 나오면, 힌트들이 보여진다. 길이는 11자리이며, 컴럼에는 ‘id’와 ‘no’ 가 있다고 나와있다. 일단 no에 값에 따라서 나오는 문자열들이 id값이라고 추측해볼 수 있다. 우리가 넣을 수 있는 input값은 no 파라미터이다. 즉, no파라미터를 조작하여 no=3의 id를 알아내면 될 것같다. 일단, “Apple”, “Banana”가 id값이 맞는지 테스트해 보았다. 위와 같은 쿼리문으로 id값이 맞...

Read more

[Web.kr]Level 08

<? $agent=getenv("HTTP_USER_AGENT"); $ip=$_SERVER[REMOTE_ADDR]; $agent=trim($agent); $agent=str_replace(".","_",$agent); $agent=str_replace("/","_",$agent); $pat="/\/|\*|union|char|ascii|select|out|infor|schema|columns|sub|-|\+|\||!|update|del|drop|from|where|order|by|asc|desc|lv|board|\([0-9]|sys|pass|\.|like|and|\'\'|sub/"; $agent=strto...

Read more

[Web.kr]Level 07

‘auth’ 버튼을 누르니 “Access_Denied!” 경고창이 뜬다. 소스코드를 살펴보자. <!-- db에는 val=2가 존재하지 않습니다. union을 이용하세요 --> <? $answer = "????"; $go=$_GET[val]; if(!$go) { echo("<meta http-equiv=refresh content=0;url=index.php?val=1>"); } $ck=$go; $ck=str_replace("*","",$ck); $ck=str_replace("/","",$ck); echo("<html><head><title>a...

Read more

[Web.kr]Level 06

<?php if(!$_COOKIE[user]) { $val_id="guest"; $val_pw="123qwe"; for($i=0;$i<20;$i++) { $val_id=base64_encode($val_id); $val_pw=base64_encode($val_pw); } $val_id=str_replace("1","!",$val_id); $val_id=str_replace("2","@",$val_id); $val_id=str_replace("3","$",$val_id); $val_id=s...

Read more

[Web.kr]Level 05

Login 버튼과 Join 버튼이 존재한다. 소스코드를 보자. <input type=button value='Login' style=border:0;width:100;background=black;color=green onmouseover=this.focus(); onclick=move('login');> <input type=button value='Join' style=border:0;width:100;background=black;color=blue onmouseover=this.focus(); onclick=no();> <script> function no() ...

Read more

[Web.kr]Level 04

대소문자알파벳 + 숫자 + ‘=’가 있는 것으로 보아 base64인것 같다. c4033bff94b567a190e33faa551f411caef444f2 flag 인줄 알았더니 .. 아니였다. 이렇게 쉬울리가 없지. 사이즈를 보니 40바이트이다. 구글에 “40바이트 암호화”라고 치고 확인해보니 SHA1의 암호화 출력값 길이는 160비트(40바이트)라고 한다. ✌️ SHA1 decrypt 사이트에서 값을 넣어 복호화 하니 또 다시 40바이트 짜리 암호문이 나왔다. 그래서 한번더 복호화 하니 flag값을 얻을 수 있었다. flag : test

Read more