Webhacking.kr 57번
·
Webhacking.kr
문제 페이지 초기 화면이다. "index.phps" 페이지로 이동하여 소스를 분석하면 아래와 같다. 1. 문제 페이지에서 올바른 키를 입력하면 문제 클리어 2. "from,union,select" 등 함수 필터링 3. 사용자의 ID, 입력한 msg 값, 비밀번호, 입력한 se 값을 "challenge57msg" 테이블의 각 "id,msg,pw,op" 컬럼에 저장한다. * insert 문으로 데이터 삽입 시 se 변수에서 취약점 발생 * 저장된 값을 출력해주는 구문이 없기 때문에 time based blind injection을 해야 함
Webhacking.kr 56번
·
Webhacking.kr
56번 문제 초기 화면으로, "readme" 글을 읽으려고 하면 "Access Denied"가 뜨면서 읽어지지 않고,"hi~" 글은 읽을 수 있다. 삽질하다가 위와 같이 "_" 글자를 3번 입력하여 검색하면 모든 글이 보여진다. "_" 글자를 4번 입력하면 "hi~" 글이 사라진다. * 이번 문제는 SQL 인젝션에서 "LIKE"와 함께 사용되는 정규식을 이용하는 것으로써, "_" 글자는 한 글자를 의미한다. * 즉 "hi~" 게시물의 내용은 제목과 동일한 ("hi~") 3글자 이기 때문에 "____" 4번 입력하면 검색 되지 않는다. "_" 글자를 6번 입력하여 검색하면 보여지고, 7번 입력하면 보여지지 않는다. 즉, 해당 게시물의 내용은 총 6글자이다.
Webhacking.kr 55번
·
Webhacking.kr
랭크 페이지 확인 랭크 페이지는 위 사진과 같이 이루어 짐 랭크 페이지 소스를 확인해 보면 위와 같이 힌트가 존재 참 조건 입력 = "localhost / 0" 리턴 거짓 조건 입력 = "//" 리턴 * scroe 파라미터가 인젝션 포인터 * 출력 값을 통해 참/거짓 구분 가능 * information_schema 필터링 * procedure analyse() 사용 * LIMIT 사용하여 테이블 / 컬럼명 확인 가능 * procedure analyse() => 테이블명, 첫 번째 컬럼 리턴 * limit 1,1 procedure analyse() => 두 번째 컬럼 리턴 * limit 2,1 procedure analyse() => 세 번째 컬럼 리턴 패스워드 컬럼명을 알아내고 블라인드 인젝션 스크립트를..