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