문제 : 파라미터에 hello 를 넣으면 hello.txt 파일의 내용을 보여주는 것으로 보인다. 파라미터를 변조해서 password.php의 내용을 읽으면 키가 있을 것 같다. PHP urldecode() 또는 rawurldecode() 를 사용할 경우 %00 넣으면 null byte attack 이 가능하므로 파라미터에 password.php%00 을 넣어서 시도 성공!…
읽어보기 →
문제 : 먼저 admin으로 로그인을 시도하면, you are not admin 이라고 나온다.. 그래서 test으로 로그인을 시도하면, 로그인이 된다. 이 때 proxy으로 response 를 잡아보면 cookie에 아래와 같은 userid 정보를 확인 할 수 있다. 인코딩 되어있는 것으로 보여서 base64으로 디코딩을 해보면, 계속…
읽어보기 →
문제 : 글자를 보니, base64로 인코딩 된 것 같아서 디코딩을 했다. 입력해보았지만, 답은 아니였다.. 뭔가 또 hash 가 된 것 같아 보여, 여러 해시 디코딩을 하다보니 SHA1 으로 풀렸다. 150점인데 이렇게 쉬워도 되나?
읽어보기 →
문제 : Password is 하면서 뭔가가 글자가고 마지막에는 ?가 나타난다.. 해당 문자를 조합하면 password 일것이라고 추측하며서 일단 소스를 확인해봤다. <html> <head> <title>Challenge 54</title> </head> <body> <h1><b>Password is <font id=aview></font></b></h1> <script> function wtf(){ if(window.ActiveXObject){ try { return new ActiveXObject('Msxml2.XMLHTTP'); } catch (e)…
읽어보기 →
문제 : 문제 소스를 보니, index.phps 가 있다는 힌트를 확인했다.. <html> <head> <title>Chellenge 39</title> </head> <body> <? $pw="????"; if($_POST[id]) { $_POST[id]=str_replace("\\","",$_POST[id]); $_POST[id]=str_replace("'","''",$_POST[id]); $_POST[id]=substr($_POST[id],0,15); $q=mysql_fetch_array(mysql_query("select 'good' from zmail_member where id='$_POST[id]")); if($q[0]=="good") @solve(); } ?> <form method=post action=index.php> <input type=text name=id maxlength=15 size=30>…
읽어보기 →
문제 : Log Injection 이라고 한다.. 뭐지? 하면서 test 를 입력하고 login을 눌렀더니 아무 반응이 없다.. 그래서 admin을 입력하고 login을 눌렀더니 you are not admin 이란다.. 그럼 일단 admin 계정을 얻는것이 목표로 보이고... 아무것도 입력안한채로 admin 버튼 눌러보니, 로그가 보였다.. 로그는…
읽어보기 →
문제 : 소스만 달랑있다.. <? if(eregi("admin",$_GET[id])) { echo("<p>no!"); exit(); } $_GET[id]=urldecode($_GET[id]); if($_GET[id]=="admin") { @solve(); } ?> <br><br> <a href=index.phps>index.phps</a> GET방식으로 id값을 받아서 admin 인지 확인하는 루틴이 있고.. 다시 id값을 urldecode 를 해서 admin이 나오면 성공인듯.. urlencoding 의 원리는 두자리 hex code에…
읽어보기 →
문제 : 웬 IP와 Agent 가 있다.. 일단 소스보기를 하니, index.phps 가 있네.. <html> <head> <title>Challenge 24</title> </head> <body> < ? extract($_SERVER); extract($_COOKIE); $ip=$REMOTE_ADDR; $agent=$HTTP_USER_AGENT; if($_COOKIE[REMOTE_ADDR]) { $ip=str_replace("12","",$ip); $ip=str_replace("7.","",$ip); $ip=str_replace("0.","",$ip); } echo("<table border=1><tr><td>client ip</td><td>$ip</td></tr><tr><td>agent</td><td>$agent</td></tr>"); if($ip=="127.0.0.1") { @solve(); } else { echo("<p><hr…
읽어보기 →
요즘 포트 스캔 탐지 도구를 좀 알아보니, 크게 3가지가 있었다.. portsentry, scanlogd, psad 셋다 포트스캔을 탐지하는 도구인데, 각각의 특징이 있다.. portsentry와 psad는 iptables와 연동되어 포트스캔이 탐지되면 자동으로 룰을 등록해서 차단한다. 하지만 scanlogd는 syslogd와 연동되어 scan에 대한 로그를 남긴다. 내가 하고자 하는…
읽어보기 →
서버를 모니터링 해야 할 일이 생겨 좋은 도구를 찾다가 발견했다. MUNIN ( http://munin-monitoring.org/ ) 설치를 해보자.. ]# yum -y install munin munin-node Loaded plugins: fastestmirror, security Loading mirror speeds from cached hostfile * base: centos.tt.co.kr * extras: centos.tt.co.kr * updates: centos.tt.co.kr…
읽어보기 →