본문 바로가기

[CodeEngn Challenges] Advance RCE 01 Basic RCE 19번 문제와 같은 문제이다. UPX 패킹되어 있으니, unpack 해주자. 그 후, IsDebuggerPresent 함수를 통해, 디버거를 감지한다. 디버거가 작동중이니 1(TRUE)를 반환하는데, 0(FALSE)로 패치해주자. 시스템 시간을 반환하는 timeGetTime 함수를 호출하는 주소를 찾는다. 육감적으로 가장 돋보이는 주소에 BP를 건다. 그 주소에서 Step over 몇 번 해보면, 다음과 같은 종료 분기점을 볼 수 있다. Stack에 있는 0x337B가 답이다. 이 값을 10진수로 변환하고, 문제에서 시키는 대로 md5 hash 결과값(대문자)으로 웹페이지에서 인증하면 된다. 더보기
[HackThis!!] [SQLi] LEVEL 2 Level 1과 같은 로그인 Form이 보인다. 관리자 계정으로 접속하라고 한다. Level 1처럼 입력값을 넣고 테스트해봤더니 별다른 메시지를 표시해주지 않는다. 아래쪽에 Browse Members라는 버튼이 신경쓰인다. 알파벳 순으로, 해당 알파벳으로 시작하는 member 리스트를 보여준다. 다른 알파벳을 클릭하니 마찬가지인데, URL을 보니 q 라는 파라미터가 추가되었다. 이 파라미터를 통해 넘기는 값으로 시작하는 member를 테이블에서 검색하는 것 같다. 이 가설을 검증하기 위해, 위 이미지에서 Daw gulf만을 표시하기 위해, q=da라고 변경해보았다. 생각이 맞았다. URL을 이용하여, 관리자인 계정을 찾은 후, 그 계정의 패스워드를 알아내면 될 것 같다. 그 전에, 오류가 있는 쿼리에 대.. 더보기