풀이

    [CodEngn]Basic RCE_Level 03 문제풀이

    [CodEngn]Basic RCE_Level 03 문제풀이

    Level 02 풀이에 이어 Level 03문제도 풀어보자. (Msvbvm50.dll 에러가 나타나면 아래 파일을 다운받아 프로그램과 같은 경로에 넣어두자) 문제가 단순하다. 비주얼베이직에서 스트링 비교함수 이름을 찾으라는 것 같다. 프로그램을 실행 시켜보자. 해당 메시지 창이 뜨고 '확인' 버튼을 누르면 다음과 같이 Regcode를 넣는 창이 뜨게 된다. 값을 입력하였을 때, 패스워드가 틀리다는 메시지가 뜬다. 해당 프로그램에서 패스워드를 비교하는 함수가 있는데, 그때 사용되는 함수명을 찾으라는 문제 인 것같다. 올리디버그로 살펴보자. 이전 풀이 문제들과 다르게 String값과 어셈블리어는 보이지 않는다. 문제에서는 함수명을 찾는 것이기 때문에, PE구조만 확인하면 해당 프로그램에서 사용된 함수명들을 ..

    [CodEngn]Basic RCE_Level 02 문제풀이

    [CodEngn]Basic RCE_Level 02 문제풀이

    Level 01에 이어 Level 02문제를 풀어 보겠습니다. 패스워드를 찾으라는 문제인 것 같다. 파일을 실행해 보면 다음과 같은 메시지창이 뜬다. 해당 파일이 16bit 환경이라는 것 같다. 그리고 CS:0591 같은 문자들이 보기이도 한다. '닫기'를 누르면 프로그램이 종료되고, '무시'를 누르면 프로그램이 아무런 동작을 하지 않는다. 일단 올리디버그로 뜯어보자. 올리디버그 조차 에러를 뿜어내며 실행되지 않는다. 황당할 수 있지만, 올리디버그가 안되면 HxD를 이용해서 바이너리값을 확인해 보자. 바이너리 값을 확인하다보면 특별한 문자들을 확인 할 수 있다. 비밀번호가 틀렸을 때와, 맞았을때 나타나는 메시지 구문 같다. you did it! 이라는 메시지 뒤에 Crackme#1 문자와 JK3FjZh라..

    [SuniNaTaS] 5번 문제, eval함수 난독화

    [SuniNaTaS] 5번 문제, eval함수 난독화

    2017/08/28 - [Study :)/WarGame] - [SuniNaTaS] 4번 문제, 자바스크립트 우회 5번 문제 key 값을 입력해서 맞추는 문제인것 같다. 소스코드를 보니 eval 함수와 힌트가 보인다. 처음에는 아무생각 없이 힌트를 입력하여 check해봤으나.. 당연히 안됨... ㅋㅋ 음... MSDN에는 이렇게 설명되어 있다... 그래서? 자바스크립트 난독화 기법 / 분석 방법론 위 링크를 보면 eval 함수를 이용해서 난독화를 할 수 있다는 것을 알 수 있다. 그러면 복호화를 어떻게 할까? http://kwangguevara.tistory.com/20 좀더 검색해보니 위 링크 설명처럼 eval함수를 alert함수로 복호화 가능하다는 사실을 알게 되었다. 그래서 eval함수 부분을 모두 ..

    [SuniNaTaS] 4번 문제, 브라우저 우회

    [SuniNaTaS] 4번 문제, 브라우저 우회

    2017/08/17 - [Study :)/WarGame] - [SuniNaTaS] 3번 문제, 게시판 글쓰기 우회 4번 문제 처음 화면은 이러하다."Plus"버튼을 누르면 Point가 1씩 증가하다가 25가 되는 순간 이러한 경고창이 뜨게 된다. 자기는 SuNiNaTaS 브라우저를 좋아한다고 한다.... 어쩌라고.. ㅋㅋ 그리고 더이상 25포인트에서 올라가지 않고 저 경고창만 계속 출력하게 된다. 그래서 웹 소스코드를 살펴보았다. 소스 마지막 부분에 힌트가 제고되어 있었다. 포인트를 50을 만들어야 된다고 쓰여있다. 그리고 "SuNiNaTaS"라고 쓰여 있었다. 힌트는 2가지 인것 같다. 포인트를 50으로 만들어야 된다는점. SuNiNaTaS 브라우저를 좋아한다는 점. 그래서 일단 Fiddler를 이용하..

    [SuNiNaTaS] 1번문제, replace함수, mid함수

    [SuNiNaTaS] 1번문제, replace함수, mid함수

    위는 SuNiNaTaS(써니나타스)의 문제 목록입니다.WEB부터 시스템 문제까지 총 32문제 입니다. 1번 문제부터 하나씩 차근차근 풀어나가 보려고 합니다 :) 1번 문제 짧고 간단한 코드이다. 해당 페이지의 소스를 보자. 해당 파일은 asp 파일이 라는 것을 알 수 있다. 하지만, asp를 다뤄 보지 않았더라도 php나 다른 언어를 어느정도 접한 사람이라면 코드를 보고 대충 어떤 의미의 코드인지는 인지할 수 있을 것이다. 1번 문제에서 등장하는 함수는 총2개이다. Replace함수와 Mid함수이다. Replace함수는 말그대로 치환함수이고, Mid함수는 문자열의 일부를 자르는 함수이다. 예를들어, str = "HelloWorld"result = Replace(str, "World", "Global") ..

    [LOS]Level10 skeleton 문제풀이

    [LOS]Level10 skeleton 문제풀이

    쿼리문에 id값은 'guest'값이 들어가있고, 'and 1=0' 값이 붙어있다. 9번째줄을 보면 id값이 'admin'이여야 풀린다. 'and 1=0'값은 무조건 거짓이다. id값에 'admin'을 넣고 pw값 뒷부분을 주석처리한다. (pw=%27%20||%20id=%27admin%27%23)

    [LOS]Level9 vampire 문제풀이

    [LOS]Level9 vampire 문제풀이

    6번째줄에 str_replace()함수를 이용해서 'admin'을 빈값으로 대체한다.(str_replace(A,B,C) : C문자열에서 A를 찾아서 B로바꾼다) 10번째줄에 id값이 'admin'이여야지 문제가 풀린다. [풀이 1] 해당문제는 매우 간단하다. admin이 빈값으로 대체되도 admin이 되도록 하면 된다. 무슨말인지 예제를 보자. adadminmin -> admin 으로 바뀐다. admadminin -> admin 으로 바뀐다. 이런식으로 응용하면 될 것이다. [풀이 2] 또다른 방법으로 troll문제와 같은 방법으로 풀어도 된다. 소문자 admin만 대체하기 때문 :)

    [LOS]Level8 troll 문제풀이

    [LOS]Level8 troll 문제풀이

    6번째줄에 admin을 필터링하고 있다. 10번째줄에 id값이 admin이여야 문제가 풀린다. 'admin'이라는 값을 넣지않고, id값에 admin을 넣어야 한다. 처음에는 hex값으로도 넣어보고해봤으나 풀리지 않았다. 그러던중 6번째 줄에 ereg()함수가 보였다. php에서 ereg()함수는 대소문자를 구별하여 'admin'을 검사한다. (즉, admin은 필터링되어도 Admin, aDmin 등은 필터링되지 않는다.) -> preg_match()함수를 사용해야한다. 하지만 db로 들어가면 대소문자를 구별하지 않는다.