sweetchip's blog

이번에는 49번을 풀어보겠습니다.


바로 이 직전에 했던 문제와 98% 비슷한 문제입니다.


약간 필터링이 더해진 것뿐입니다.


힌트만 보실분은 아래에 힌트를 눌러주세요 :D


힌트






그러면 바로 소스 분석으로 들어가보겠습니다.


<?
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

}

?>


이번에도 역시 매우 간단한 소스들입니다.


하지만 이전 비슷한 문제보다 더 많은 필터링을 하고 있습니다.


우리의 최종목표는 admin으로 접속하는 것입니다.


지난번엔 concat()을 이용해서 admin으로 했지만, 이번에는 ( 도 )도 ',' 도 죄다 필터링을 합니다.


그리고 or 도 필터링하니 말 다했네요 ㅠ-ㅠ


하지만 우회 방법이 있습니다.


프로그래밍을 해본분이라면 다 알만한 || <- or 이라는 뜻입니다.


||의 특징은 or 처럼 띄어쓰기를 하지 않아도 된다는 것입니다.


= 은 따로 필터링 하지 않으니 바꿀 필요는 없습니다.


문제는 admin을 어떻게 집어넣느냐 인데, 바로 Hex 를 이용하면 가능합니다.


0xFF 이런형식으로 집어넣을수 있습니다.


admin => 0x61646d696e


공격 구문을 간단하게 생각해보면


123 or id=admin


이런식으로 하면 됩니다.


위에 말씀드린 것을 바탕으로 시도하면 문제가 풀립니다.


저작자 표시 비영리 변경 금지
신고

'0x10 정보보안 > 0x16 Web' 카테고리의 다른 글

webhacking.kr 57번  (0) 2012.11.28
Webhacking.kr 55번 중간 풀이.  (10) 2012.11.05
webhacking.kr 49번 write up  (5) 2012.11.05
Webhacking.kr 46번 write up  (2) 2012.11.04
Webhacking.kr 37번 Write up  (2) 2012.11.04
webhacking.kr 45번 write up  (2) 2012.11.02

Comment 5

  • 2013.04.25 18:20 수정 답글

    비밀댓글입니다

    • 2013.04.25 19:03 신고 수정

      확실하짅 않지만.. 아마 띄어쓰기로 넘어가서 그러지 않을까 하네요..
      다른것도 아마 안걸릴겁니다.

  • 2013.05.08 23:35 수정 답글

    비밀댓글입니다

    • 2013.05.10 20:40 신고 수정

      음.. 그것에 대해서는 확실히는 몰라서 정확히 집어서 답변을 드리긴 어려울것 같습니다... ㅠㅠ

  • 2013.11.15 02:08 수정 답글

    비밀댓글입니다