hakcing

    Webhacking.kr Level 41 문제풀이

    Webhacking.kr Level 41 문제풀이

    Level 41 코드를 보면 파일을 받아 파일이름을 필터링 하고 hidden_dir이라는 곳에 카피한 후, 패스워드를 그 곧에 쓴다. 따라서 우리는 hidden_dir의 주소를 알아야 한다. 코드를 자세히 보면, eregi함수를 통해 필터링 하는 부분과 str_replace를 통해 필터링 하는 부분이 있다. 이 두가지 특성이 있는데, str_replace는 치환을 하는 반면, eregi는 치환은 하지 않지만, 해당 문자열이 존재하면 종료시켜 버린다. 여기서 한가지 생각을 해야 한다. fn값이 '.' 이나 '' 이면 공백으로 치환되는데 이럴때 어떻게 처리가 될까? 이 소스에서 예외처리 하는 부분은 없다. 따라서 시도해 보았다. 어이없는 삽질을 기록해 보자면, 실제 파일의 이름을 '.', '>', '

    webhacking.kr Level 9 문제풀이

    webhacking.kr Level 9 문제풀이

    Level 9 숫자 버튼이 1~3 까지 있고, 패스워드 입력 창이 보인다. 1번을 누르면 "Apple"이 보여지고, no값이 1이 된다. 2번은 "Banana" 이다. 3번은 "Secret" 이라고 나오면, 힌트들이 보여진다. 길이는 11자리이며, 컴럼에는 'id'와 'no' 가 있다고 나와있다. 일단 no에 값에 따라서 나오는 문자열들이 id값이라고 추측해볼 수 있다. 우리가 넣을 수 있는 input값은 no 파라미터이다. 즉, no파라미터를 조작하여 no=3의 id를 알아내면 될 것같다. 일단, "Apple", "Banana"가 id값이 맞는지 테스트해 보았다. 위와 같은 쿼리문으로 id값이 맞는지 확인해 보려고 했으나, (') 문자 필터링 되어 있었다. 그래서 필터링 되는 문자들을 몇개 찾아보니 '..

    webhacking.kr Level 12 문제풀이

    webhacking.kr Level 12 문제풀이

    Level 12 javascript challenge 라고 뜬다. 소스코드를 살펴보자. 괴상한 숫자들이 들어있다. WorkTimeFun 부분을 크롬 개발자모드 콘솔에 넣어보자. fromCharCode 함수가 유니코드 문자값을 문자열로 바꿔주는 함수이다. 즉, 난독화 되어 있었던 코드였던 것이다. 이제 추출된 코드를 정리해서 보면 다음과 같다. var enco = ''; var enco2 = 126; var enco3 = 33; var ck = document.URL.substr(document.URL.indexOf('=')); for (i = 1; i < 122; i++) { enco = enco + String.fromCharCode(i, 0); } function enco_(x) { return en..

    webhacking.kr Level 11 문제풀이

    webhacking.kr Level 11 문제풀이

    Level 11 $pat에 이상한 정규 표현식들이 들어있고, if문을 살펴보면 pat와 val값이 같으면 풀리는 것 같다. 먼저 php 정규포현식에 대해 알아보았다. 대괄호 안에 있는 패턴의 일부를 "캐릭터 클래스"라고 하는데, '캐릭터 클래스'에서 사용할 수 있는 메타 문자는 다음과 같다. 다음은 이스퀘이프 시퀀스에 대한 정규식이다, 위 내용들을 종합하여 문제의 정규식을 해석하면, 참고 "/[1-3][a-f]{5}_.\*223.52.120.172.*\tp\ta\ts\ts/" / : 구분기호[1-3] : 1부터 3까지 중 하나[a-f]{5}_ : a부터 f까지 중 하나의 문자를 5번 반복하는 문자를 찾음, 마지막에 '_'를 붙임 ( x{n} : 'x'를 n 번 반복 )\t : tab을 의미함. (url ..

    webhacking.kr Level 7 문제풀이

    webhacking.kr Level 7 문제풀이

    ※ 2018. 07. 30. 기준 Webhacking.kr Level 7문제는 문제가 풀리지 않는 상태임을 알립니다. (카더라통신: 현재 서버가 union 명령어를 쓸 수 없다고 합니다.) Level 7 'auth' 버튼을 누르니 "Access_Denied!" 경고창이 뜬다. 소스코드를 살펴보자.