뉴비에욤
Webhacking.kr 61번 본문
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
- 위 쿼리에서 사용되는 AS 는 테이틀 컬럼의 이름을 임시로 변경할 수 있다
- SELECT "admin" FROM c_61
- 위 쿼리가 실행되면 admin 은 컬럼 이름이 아니라 문자열로 인식되어 "admin" 이 출력된다.
- as id 부분을 추가함으로써, "admin"을 출력하는 컬럼 이름을 id로 변경한다.
php에서 제공하는 magic_quotes_gpc 우회를 위해 "admin" 문자열을 hex 값으로 변경하였다.
'Webhacking.kr' 카테고리의 다른 글
Webhacking.kr 60번 (0) | 2015.08.16 |
---|---|
Webhacking.kr 59번 (0) | 2015.08.16 |
Webhacking.kr 58번 (0) | 2015.08.16 |
Webhacking.kr 57번 (0) | 2015.08.16 |
Webhacking.kr 56번 (0) | 2015.08.16 |
Comments