본문 바로가기

war game/웹 워게임(los)22

load of sql inejction golem include "../config.php";   login_chk();   dbconnect();   if(preg_match('/prob|_|\.|\(\)/i', $_GET[pw])) exit("No Hack ~_~");   if(preg_match('/or|and|substr\(|=/i', $_GET[pw])) exit("HeHe");   $query = "select id from prob_golem where id='guest' and pw='{$_GET[pw]}'";   echo "query : {$query}";   $result = @mysql_fetch_array(mysql_query($query));   if($result['id']) echo "Hello {$result[id]}";  .. 2016. 9. 14.
load of sql injection skeleton include "../config.php";   login_chk();   dbconnect();   if(preg_match('/prob|_|\.|\(\)/i', $_GET[pw])) exit("No Hack ~_~");   $query = "select id from prob_skeleton where id='guest' and pw='{$_GET[pw]}' and 1=0";   echo "query : {$query}";   $result = @mysql_fetch_array(mysql_query($query));   if($result['id'] == 'admin') solve("skeleton");   highlight_file(__FILE__); ?>소스코드 분석음... 딱히 어려운 부분이 없.. 2016. 9. 13.
load of sql injection vampire include "../config.php";   login_chk();   dbconnect();   if(preg_match('/\'/i', $_GET[id])) exit("No Hack ~_~");   $_GET[id] = str_replace("admin","",$_GET[id]);   $query = "select id from prob_vampire where id='{$_GET[id]}'";   echo "query : {$query}";   $result = @mysql_fetch_array(mysql_query($query));   if($result['id'] == 'admin') solve("vampire");   highlight_file(__FILE__); ?>소스코드 분석음... .. 2016. 9. 13.
load of sql injection troll if(preg_match('/\'/i', $_GET[id])) exit("No Hack ~_~"); if(@ereg("admin",$_GET[id])) exit("HeHe"); $query = "select id from prob_troll where id='{$_GET[id]}'"; 새로운 필터링 함수가 나왔다. ereg()이다.이 함수가 admin이라는 문자열을 필터링하고 있기 때문에 이 함수의 우회방법이 있나 확인해보자. 이 함수는 null을 만나기 전까지의 문자들을 전부다 필터링한다. 즉 %00admin과 같이하면 admin은 null이후에 있기 때문에 필터가 되야 하지만 필터가 안된다.. 그 이유는 싱글쿼터를 preg_match에서 필터해주기 떄문이다.또 다른 방법은 ereg는 대소문자를 구분하.. 2016. 9. 13.