Wargame
-
[Webhacking.kr] 57번 풀이Wargame/webhacking.kr (old) 2019. 5. 9. 13:23
secret key를 알아내서 입력하는 문제인 것 같다. 소스를 보자. pw가 \$secret_key와 같으면 문제가 풀리고 se 문자열이 from, union등이 필터링되어 있다. insert문을 이용하여 데이터가 저장된다. 처음에는 insert문을 이용하여 secret 키의 값을 조작해서 푸는 건줄 알았으나, 잘보면 \$secret_key는 값이 초기화되는 채로 pw와 값을 비교하기때문에 \$secret_key는 조작할 수 없다. \$secret_key의 값을 알아내야한다. 일단 페이지의 반응을 보자. message에 값을 입력해주면 get 방식으로 msg와 se의 값이 전송된다. se는 secret의 라디오 버튼 값이다. (yes : 1, no : 0) 값이 올바르게 전송되면 Done이 출력된다. ..
-
[Webhacking.kr] 56번 풀이Wargame/webhacking.kr (old) 2019. 5. 9. 12:54
게시판이다. readme를 읽는 문제인 것 같다. readme를 클릭하였는데 접근이 거부되었다. id가 guest인 hi~는 읽어진다. 게시판에 검색창이 주어져 있다. 우선 admin과 guest를 입력해 검색해보았다. 아무 값도 나오지 않는다...;; id로 검색하는게 아닌 것 같다. subject로 검색하는지 알아보기 위해 hi를 입력해보았다. subject에 의해 검색되는게 맞다. hi~가 아닌 hi를 검색했는데 결과가 나오는 것을 보니 쿼리문은 다음과 같이 예상할 수 있다. select * from challenge56 where subject like '%$search%' SQL Whild Card % : 0개 이상의 임의의 문자 _ : 한개의 임의의 문자 readme가 나오도록 search에 ..
-
[Webhacking.kr] 55번 풀이Wargame/webhacking.kr (old) 2019. 5. 8. 23:23
마우스를 움직일때마다 점수가 바뀐다. rank를 클릭해 순위를 보았다. 1등의 점수를 눌러보니 get 방식으로 score가 전송되고, id와 score가 페이지에 출력되었다. 나의 id 값을 출력하면 되는건가 싶어 이전 페이지의 게임에서 나온 나의 score를 입력하여 나의 id를 출력하였으나,,, 아무런 반응이 없었다. (게임은 Chrome에서는 작동하지 않고 Internet Explorer에서 할 수 있다.) 일단 소스를 보자. rank table은 ip, score, password로 구성되어 있다. password가 있는 것을 보니 관리자 계정의 password를 찾는 문제인 것 같다. 관리자 계정의 id를 찾아보기로 하였다. 존재하지 않는 score의 값을 입력해보았다. url?score=-1 ..
-
[Webhacking.kr] 54번 풀이Wargame/webhacking.kr (old) 2019. 5. 8. 22:47
값이 빠르게 바뀌면서 password를 알려준다.소스를 보자. run() 함수는 http를 통해 메시지를 받기 위한 사전 작업이다.password를 알아내기 위해 password를 출력해주는 부분인 answer함수를 보았다. aview 값에 http 요청에 대한 응답 값(password)이 없을 때까지 0.1초 간격으로 응답 값을 출력시켜준다.응답 값이 없으면 aview의 값을 ?로 설정한다.페이지가 로드되고 10초 후부터 password를 출력한다. (setTimeout 함수) answer 함수를 조금 고치면 password를 알아낼 수 있을것 같다. aview의 값이 누적되도록 +=로 바꾸어주고,응답 값이 없을 경우 aview의 값을 ?로 변경하는 구문을 삭제하였다. 그리고 개발자 도구의 Consol..
-
[Webhacking.kr] 53번 풀이Wargame/webhacking.kr (old) 2019. 5. 8. 22:35
hello world만 출력되어 있다.소스를 보자. hidden_table의 값을 get 방식으로 전송해주면 문제가 풀린다.val의 값은 union 등의 문자열이 필터링되어 있고 쿼리문을 살펴보면 '가 없다.숫자인 것으로 추측할 수 있다. val 값을 입력해보자. 1. val = 1 2. val = 2 3. val = 3 4. val = 4 5~ 의 숫자에는 페이지에 아무것도 출력되지 않는다.데이터가 4개인 것으로 추측해본다. 우선 MySQL을 통해 테이블 명을 알아보자.num_53이라는 테이블을 생성하였다. 1. information_schemaselect test1 from num_53 where test2=1union select table_name from information_schema.tab..