Webhacking.kr 60번
·
Webhacking.kr
페이지 소스는 위 사진과 같다. 1. 일단 쿠키 값에 숫자가 들어가면 안된다. 2. GET 메소드로 전송되는 "mode" 파라미터 값이 "auth"여야 한다. 3. readme 디렉토리에서 자신의 "id.txt" 파일을 불러 f 변수에 저장한다. 4. f 변수에 저장된 파일 내용을 result 변수에 저장한다. 5. result 변수에 자신의 id가 포함되면 성공이다. 6. readme 디레곹리에 자신의 "id.txt" 파일을 생성한다. 7. 생성한 파일에 자신의 id를 입력한다. 9. 접속 ip가 "127.0.0.1"이 아니면 생성한 자신의 "id.txt" 파일을 삭제한다. 파일이 있어야 하는데 삭제된다... 즉 레이스 컨디션 공격이다. 따라서 2개의 서로 다른 세션으로 로그인하여 1. "index.p..
Webhacking.kr 59번
·
Webhacking.kr
(LOGIN Form 제출 클릭 시) POST 메소드로 전송되는 id, lv 파라미터 값을 쿼리문에 포함하여 c59 테이블에서 id,lv 컬럼 값을 조회한다. 조회한 id가 존재하는 경우 id,lv 컬럼 값을 출력한다. 그리고 lv 컬럼 값이 "admin" 인 경우 문제가 풀린다. (JOIN Form 제출 클릭 시) phone 파라미터 값의 길이가 20글자 이상이면 오류가 발생한다. id 파라미터의 값이 "admin"인 경우 오류가 발생한다. phone 파라미터 값 내에 "admin, 0x, #, hex" 등 magic_quotes_gpc 우회해 사용되는 함수가 존재하는 경우 오류가 발생한다. 인젝션 포인트는 바로 INSERT 쿼리에서 사용되는 $phone 변수이다. 특히 $phone 변수 앞, 뒤쪽에 ..
Webhacking.kr 58번
·
Webhacking.kr
플래시 파일이 보여진다. 페이지 소스를 보면 해당 플래시 파일은 메인 페이지와 동일한 디렉토리에 존재하는 "hackme.swf"를 의미한다. 플래시 파일은 디컴파일이 되긴 하지만 간단하게 "strings" 명령을 이용해서 해당 플래시 파일 안에 존재하는 모든 문자열을 추출한다.