Webhacking.kr 52번
·
Webhacking.kr
$id 변수에 GET 메소드로 넘어온 id 파라미터 값이 대입된다. id 파라미터 값을 다음과 같이 입력한다. URL 인코딩 : id=wraith%0a%0dSet-Cookie:%20id=wraith UIRL 디코딩 : id=wraith Set-Cookie: id=wraith %0a%0d는 개행을 의믜한다 ('\n'와 동일)
Webhacking.kr 51번
·
Webhacking.kr
입력받은 pw를 md5 함수를 이용하여 $input_pw 변수에 저장 (md5 함수 2번째 인자는 'true') * php에서 md5 함수를 사용할 때, 두번째 인자를 'true'로 설정하면 md5 해쉬 결과를 바이너리 형태로 반환함 이 때 반환된 바이너리는 magic_quotes_gpc 옵션에 영향을 받지 않음 따라서 조건을 참으로 만들어주는 바이너리를 얻으면 문제 클리어 * 그러나 'or 1=1 # 과 같은 인젝션 쿼리가 반환되는 바이너리는 찾기 힘듬 따라서 mysql 문자열 처리 방식을 이용하여 간단한 쿼리를 사용 * 두 개의 다른 문자 비교시 거짓 반환 'a' = 'b' => 거짓, 0 반환 * 세 개의 다른 문자 비교시 참 반환 'a' = 'b' = 'c' => 참, 1 반환 'a' = 'b' ..
Webhacking.kr 50번
·
Webhacking.kr
GET id 변수에서 "mb_convert_encodin" 함수를 사용함 (인젝션 포인터) 'from', 괄호, 비교구문,공백 등 필터링 id 변수에 "union" 포함 시 종료 사용자가 입력한 id,pw를 기반으로 해당 유저 정보를 조회 함 조회된 값이 '3'일 경우 문제풀이 성공 * mb_convert_encoding 이용하여 문제 클리어 * 참고로 테이블에는 lv3 유저가 존재하지 않음 * LIKE 구문으로 테스트 가능 (%bf%27||lv%0alike%0a3) * 기타 문자열 함수는 괄호 필터링으로 인해 사용 불가 * 따라서 '3' 이라는 데이터를 생성하기 위해 union 사용 * 사용자가 입력한 패스워드는 md5 함수 인자로 사용 * 값 변조 불가 ( 모든 입력 값이 32바이트 16진수로 변환 ..