반응형

간단한 크랙미다.


이정도는 가뿐하게 리버싱해주자.

'Write up > Wargame' 카테고리의 다른 글

[Wargame.kr] adm1nkyj  (0) 2016.09.08
[Wargame.kr] strcmp (550p)  (0) 2016.04.29
[Wargame.kr] md5 password  (0) 2016.04.29
[Wargame.kr] md5 compare (500p)  (0) 2016.04.29
[Wargame.kr] fly me to the moon (500p)  (0) 2016.04.29
블로그 이미지

KuroNeko_

KuroNeko

,
반응형

아래와 같은 소스가 있다.

<?php
 
if (isset($_GET['view-source'])) {
  
show_source(__FILE__);
  exit();
 }

 if(isset(
$_POST['ps'])){
  
sleep(1);
  
mysql_connect("localhost","md5_password","md5_password_pz");
  
mysql_select_db("md5_password");
  
mysql_query("set names utf8");
  
/*
  
  create table admin_password(
   password char(64) unique
  );
  
  */

  
include "../lib.php"// include for auth_code function.
  
$key=auth_code("md5 password");
  
$ps mysql_real_escape_string($_POST['ps']);
  
$row=@mysql_fetch_array(mysql_query("select * from admin_password where password='".md5($ps,true)."'"));
  if(isset(
$row[0])){
   echo 
"hello admin!"."<br />";
   echo 
"Password : ".$key;
  }else{
   echo 
"wrong..";
  }
 }
?>


지금 보면 md5함수에 true 인자값이 보일 것이다.


이 인자는 원래 md5함수가 32byte 해쉬를 가지는데 true를 해주면 16byte로 변경해준다.


만약 해쉬가 ~~'=' 을가지면 유니코드를 인식을 하는 mysql은 auto typecasting에 의해서 0으로 변환되고


0='' 이기때문에 로그인에 성공한다.

'Write up > Wargame' 카테고리의 다른 글

[Wargame.kr] strcmp (550p)  (0) 2016.04.29
[Wargame.kr] Easy_CrackMe (500p)  (0) 2016.04.29
[Wargame.kr] md5 compare (500p)  (0) 2016.04.29
[Wargame.kr] fly me to the moon (500p)  (0) 2016.04.29
[Wargame.kr] DB is really good (500p)  (0) 2016.04.27
블로그 이미지

KuroNeko_

KuroNeko

,
반응형

아래와 같은 소스를 보자

<?php
    
if (isset($_GET['view-source'])) {
         
show_source(__FILE__);
         exit();
    }

    if (isset(
$_GET['v1']) && isset($_GET['v2'])) {
        
sleep(3); // anti brute force

        
$chk true;
        
$v1 $_GET['v1'];
        
$v2 $_GET['v2'];

        if (!
ctype_alpha($v1)) {$chk false;}
        if (!
is_numeric($v2) ) {$chk false;}
        if (
md5($v1) != md5($v2)) {$chk false;}

        if (
$chk){
            include(
"../lib.php");
            echo 
"Congratulations! FLAG is : ".auth_code("md5_compare");
        } else {
            echo 
"Wrong...";
        }
    }
?>


알파벳 문자열의 해쉬와 숫자들로 이루어진 문자열의 해쉬를 비교하고 있는데


md5는 Collision이 발견된 해쉬이다.


검색해서 간단하게 값을 얻을 수 있다.

'Write up > Wargame' 카테고리의 다른 글

[Wargame.kr] Easy_CrackMe (500p)  (0) 2016.04.29
[Wargame.kr] md5 password  (0) 2016.04.29
[Wargame.kr] fly me to the moon (500p)  (0) 2016.04.29
[Wargame.kr] DB is really good (500p)  (0) 2016.04.27
[Wargame.kr] WTF_CODE (450p)  (0) 2016.04.27
블로그 이미지

KuroNeko_

KuroNeko

,
반응형

간단하게 Header변조로 가능한데, 시간내로 변경해야지 FLAG를 획득 가능하다.


Header변조로는 프록시툴인 Burp suite를 사용하자~

'Write up > Wargame' 카테고리의 다른 글

[Wargame.kr] md5 password  (0) 2016.04.29
[Wargame.kr] md5 compare (500p)  (0) 2016.04.29
[Wargame.kr] DB is really good (500p)  (0) 2016.04.27
[Wargame.kr] WTF_CODE (450p)  (0) 2016.04.27
[Wargame.kr] login filtering (450p)  (0) 2016.04.27
블로그 이미지

KuroNeko_

KuroNeko

,
반응형

admin을 넣어서 진행하려하면 되지않는다.


database를 불러들일 때 파일명을 사용할 것 같아 /를 입력하니

Fatal error: Uncaught exception 'Exception' with message 'Unable to open database: unable to open database file' in /home/www/db_is_really_good/sqlite3.php:7 Stack trace: #0 /home/www/db_is_really_good/sqlite3.php(7): SQLite3->open('./db/wkrm_/.db') #1 /home/www/db_is_really_good/memo.php(14): MyDB->__construct('./db/wkrm_/.db') #2 {main} thrown in /home/www/db_is_really_good/sqlite3.php on line 7


같은 에러메세지를 뿜는다.


파일명인 /을 admin으로 고치고 다운받은후 sqllite로 확인하면 된다~

'Write up > Wargame' 카테고리의 다른 글

[Wargame.kr] md5 compare (500p)  (0) 2016.04.29
[Wargame.kr] fly me to the moon (500p)  (0) 2016.04.29
[Wargame.kr] WTF_CODE (450p)  (0) 2016.04.27
[Wargame.kr] login filtering (450p)  (0) 2016.04.27
[Wargame.kr] flee button (450p)  (0) 2016.04.27
블로그 이미지

KuroNeko_

KuroNeko

,
반응형

source_code.ws 같은 파일이 주어지는데 아무 것도 안보인다.


갓 구글에 검색을 해보면 white space 언어임을 단번에 알 수 있는데,


Decode하면 성공이다.

'Write up > Wargame' 카테고리의 다른 글

[Wargame.kr] fly me to the moon (500p)  (0) 2016.04.29
[Wargame.kr] DB is really good (500p)  (0) 2016.04.27
[Wargame.kr] login filtering (450p)  (0) 2016.04.27
[Wargame.kr] flee button (450p)  (0) 2016.04.27
[Wargame.kr] QR CODE PUZZLE (300p)  (0) 2016.04.27
블로그 이미지

KuroNeko_

KuroNeko

,
반응형

간단한 SQL injection 문제다.


<?php

if (isset($_GET['view-source'])) {
    
show_source(__FILE__);
    exit();
}

/*
create table user(
 idx int auto_increment primary key,
 id char(32),
 ps char(32)
);
*/

 
if(isset($_POST['id']) && isset($_POST['ps'])){
  include(
"../lib.php"); # include for auth_code function.

  
mysql_connect("localhost","login_filtering","login_filtering_pz");
  
mysql_select_db ("login_filtering");
  
mysql_query("set names utf8");

  
$key auth_code("login filtering");

  
$id mysql_real_escape_string(trim($_POST['id']));
  
$ps mysql_real_escape_string(trim($_POST['ps']));

  
$row=mysql_fetch_array(mysql_query("select * from user where id='$id' and ps=md5('$ps')"));

  if(isset(
$row['id'])){
   if(
$id=='guest' || $id=='blueh4g'){
    echo 
"your account is blocked";
   }else{
    echo 
"login ok"."<br />";
    echo 
"Password : ".$key;
   }
  }else{
   echo 
"wrong..";
  }
 }
?>


mysql_real_escape_string을 우회하기 위해서 멀티바이트를 이용하면된다.


Payload는 아래와 같다.


id=%bf'%0Aor%0Atrue%23&pw=


Clear~

'Write up > Wargame' 카테고리의 다른 글

[Wargame.kr] DB is really good (500p)  (0) 2016.04.27
[Wargame.kr] WTF_CODE (450p)  (0) 2016.04.27
[Wargame.kr] flee button (450p)  (0) 2016.04.27
[Wargame.kr] QR CODE PUZZLE (300p)  (0) 2016.04.27
[Wargame.kr] already got (200p)  (0) 2016.04.27
블로그 이미지

KuroNeko_

KuroNeko

,
반응형

간단한 문제다.


버튼을 클릭하면 되는 문제인데, 소스코드를 보면 onclick이벤트가 지정되있다.


그 지정된 값을 웹사이트에 get Method로 보내면 성공

'Write up > Wargame' 카테고리의 다른 글

[Wargame.kr] WTF_CODE (450p)  (0) 2016.04.27
[Wargame.kr] login filtering (450p)  (0) 2016.04.27
[Wargame.kr] QR CODE PUZZLE (300p)  (0) 2016.04.27
[Wargame.kr] already got (200p)  (0) 2016.04.27
[Webhacking.kr]12번 문제  (0) 2014.10.30
블로그 이미지

KuroNeko_

KuroNeko

,