전체 글

전체 글

    Root-me : [Web_Server]File upload - Double extensions

    Root-me : [Web_Server]File upload - Double extensions

    파일 업로드 문제다. 이전부터 깊게 연습해보고 싶었는데 이번 기회에 제대로 풀어보도록 하자. /.passwd 를 실행하도록 코드를 짜면 된다. 보통 웹쉘을 만들어서 inject 해줘야 하는데 다음과 같은 형식으로 코드를 짜줘야 한다.

    LOS-rubiya : nightmare

    6) exit("No Hack ~_~"); $query = "select id from prob_nightmare where pw=('{$_GET[pw]}') and id!='admin'"; echo "query : {$query}"; $result = @mysqli_fetch_array(mysqli_query($db,$query)); if($result['id']) solve("nightmare"); highlight_file(__FILE__); ?>id 값이 존재하면 되는 문제.길이가 6 이하여야 된다. 필터링 내용은  prob _ . () # - 주석 종류를 많이 막아놨다.;%00  주석이 남아있다 이제 ')=0;%00 을 넣어주면 된다. -> 문자열의..

    LOS-rubiya : Zombie_assassin

    query : {$query}"; $result = @mysqli_fetch_array(mysqli_query($db,$query)); if($result['id']) solve("zombie_assassin"); highlight_file(__FILE__); ?>id값을 가져오기만 하면 문제는 풀린다. 문제 자체에 strrev 함수와 addslashes 함수가 관건일거같은데 한번 알아보자 strrev 함수의 경우 문자열을 거꾸로 뒤집는 함수라고 한다. nimda 를 주면 admin으로 읽는 것이지.  이점을 이용해서 '를 \'에서 '\로 바꿀수 있다. pw 쿼리에 들어가길 원하는 것은.pw=''or 1=1%23 'or 1=1%23 를 입력값으로 주게되는데, 이것..

    LOS-rubiya : Succubus

    query : {$query}"; $result = @mysqli_fetch_array(mysqli_query($db,$query)); if($result['id']) solve("succubus"); highlight_file(__FILE__); ?>드디어 single quotation 을 우회하는 기법이다. \를 이용해서 '를 문자로 만들어버리면 된다.그러면  and pw= 가 id 의 입력값이 되어버리겠지?id=\&pw=or 1=1%23

    LOS-rubiya : Assassin

    query : {$query}"; $result = @mysqli_fetch_array(mysqli_query($db,$query)); if($result['id']) echo "Hello {$result[id]}"; if($result['id'] == 'admin') solve("assassin"); highlight_file(__FILE__); ?>' 필터링 한다.그냥 찾아야하는거같은데, %붙으면 탐색하는 기능을 사용해보자.-> magic quote 라고했었던 거 같다. 일단 query 안에 들어가는 문자열을 찾아야 한다.파이썬으로 코드 짜서 보자.?pw=%________ 넣어서 비밀번호 길이가 8인것도 알았다.['0', '1', '2', '9', 'D', 'E'..

    LOS_rubiya : Giant

    LOS_rubiya : Giant

    query 가 이렇다.from 사이의 $_GET[shit] 에 공백을 넣어주면 해결된다. 공백문자를 시도해보자 %0a, %0b . . . %0b 가 된다. ?shit=%0b

    LOS_rubiya : Bugbear

    query : {$query}"; $result = @mysqli_fetch_array(mysqli_query($db,$query)); if($result['id']) echo "Hello {$result[id]}"; $_GET[pw] = addslashes($_GET[pw]); $query = "select pw from prob_bugbear where id='admin' and pw='{$_GET[pw]}'"; $result = @mysqli_fetch_array(mysqli_query($db,$query)); if(($result['pw']) && ($result['pw'] == $_GET['pw'])) solve("bugbear"); highlight..

    LOS -rubiya : Golem

    query : {$query}"; $result = @mysqli_fetch_array(mysqli_query($db,$query)); if($result['id']) echo "Hello {$result[id]}"; $_GET[pw] = addslashes($_GET[pw]); $query = "select pw from prob_golem where id='admin' and pw='{$_GET[pw]}'"; $result = @mysqli_fetch_array(mysqli_query($db,$query)); if(($result['pw']) && ($result['pw'] == $_GET['pw'])) solve("golem"); highlight_fil..