Webhacking.kr 61번
·
Webhacking.kr
GET 메소드로 전송되는 id 파라미터 값이 없을경우(사용자가 입력하지 않을 경우) 자동으로 "guest"로 세팅한다. 그리고 함수 필터링과 길이를 제한한다. $q 변수에는 id 변수를 포함하는 쿼리의 실행 결과가 저장되는데, 실행 결과에서 리턴되는 id 값이 "admin" 일때만 문제가 풀린다. "id=id" 입력 시 실행되는 쿼리는 다음과 같다. - SELECT id FROM c_61 order by id desc limit 1 - c-61 테이블에서 id 컬럼을 기준으로 첫 번째 데이터를(zombie) 출력한다 id="admin" as id 입력 시 실행되는 쿼리는 다음과 같다. - SELECT "admin" as id FROM c_61 order by id desc limit 1 - 위 쿼리에서 ..
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 변수 앞, 뒤쪽에 ..