-
webhacking.kr 문제 3번 풀이web/webhacking.kr 2019. 7. 7. 15:30
webhacking.kr 3번 문제를 풀어보도록 하겠습니다.
문제를 처음 마주하게 되면 문제 속 문제가 나오는데 네모네모 로직을 학창 시절에 많이 해서
빠르게 풀었습니다.
풀 문제를 풀면 다음 화면이 이렇게 나옵니다. name 입력 칸에 입력을 하고 버튼을 눌러보도록 하겠습니다.
그렇게 하니 name 은 내가 입력한 값이 나오고, answer는 로직에서 풀당시 빈칸은 0, 채워진 칸은 1로
표시가 된 거 같습니다. 하지만 문제를 해결했다고 나오지 않아서 처음 당황을 했고 어떻게 해결해야
나올까 라는 의문이 생겼습니다.
그래서 소스 코드를 보았습니다. 보시게 되면 answer의 value는 고정값으로 되어 있고
타입 히든으로 숨어있습니다.
하지만 이걸로도 문제의 유추가 힘들었다가, DB 생성과 로드일 것이라는 추측에 의해 sql inject을
시도해 볼 수 있었습니다.
대략 이페이지 에서는 "insert into 테이블명 (id, answer, ip) value (입력값, 101....., 아이피 주소);"로
만들어질 것이라는 추측과 다음 로드해오는 페이지에서는
"select*from 테이블명 where ..." 이렇게 조건문을 통해서 검증을 통해 답을 띄울 것이라 생각을 했습니다.
여기서 좀더 개인적 견해를 넣는다면, 아마 answer과 ip로 조건 검증을 할거 같다는 의견입니다.
그렇기에 answer을 언제나 참으로 하기 위해 "||True"로 만들어서 인젝션을 했습니다.
하고 나니 모든 데이터 베이스가 출력되는 것을 볼 수 있습니다. 최고권한자 admin의 answer는 다르네요.ㅎㅎ
admin이 가진 answer을 통해 답을 auth에 입력해 주시면 문제를 해결하실 수 있습니다.
이렇게 3번 문제를 해결해 보았습니다.
반응형'web > webhacking.kr' 카테고리의 다른 글
webhacking.kr 문제 27번 풀이 (0) 2019.07.07 webhacking.kr 문제 18번 풀이 (0) 2019.07.07 webhacking.kr 문제 54번 풀이 (0) 2019.06.16 webhacking.kr 문제 34번 풀이 (0) 2019.06.16 webhacking.kr 문제 23번 풀이 (0) 2019.06.16