Wargame
-
[Webhacking.kr] 9번 풀이Wargame/webhacking.kr (old) 2019. 3. 2. 19:35
Password를 알아내는 문제이다. 소스 코드를 볼려고 하였으나 소스코드가 존재하지 않는다...;; 1, 2, 3을 순서대로 눌러보았다. 1을 누르면, get 방식으로 no=1가 전송되고 'Apple'이 페이지에 출력된다. 2를 누르면, 역시 get 방식으로 no=2가 전송되고 'Banana'가 페이지에 출력된다. 3을 누르면, 역시 no=3이 전송되지만 C로 시작하는 단어가 출력되지 않고 Secret이 출력되고, hint, column이 주어진다. column이 id와 no만 있는 것을 보면, Apple과 Banana는 id 값이고 Secret의 id 값을 알아내는 건가?! 일단 숨겨진 아이디가 있을 수도 있으니, no의 값을 1, 2, 3이외의 값으로 넣어보았다. no=0일 때는 첫 페이지가 뜨고,..
-
[Webhacking.kr] 8번 풀이Wargame/webhacking.kr (old) 2019. 3. 2. 18:56
index.phps로 접근해 소스 코드를 보았다. getenv()환경 변수의 값을 가져오는 함수 trim()맨 앞과 맨 뒤의 여백 제거 strtolower()문자열 소문자로 변환 소스를 해석해보면, \$agent는 나의 접속 환경 값, \$ip는 나의 IP주소 값으로 초기화한다.str_replace()를 이용하여 .과 /의 값을 _로 대체한 후,union 등의 필터링된 문자열을 포함하는지 검사한다. \$_SERVER[HTTP_USER_AGENT] 값도 str_replace()를 이용하여 '(싱글 쿼터), \" 를 공백으로 대체하고,이 값을 이용하여 쿼리를 검색한다.[$_SERVER 변수 값 정리] https://intro0517.tistory.com/111 쿼리를 검색한 결과 값이 존재하면 'hi \$c..
-
[Webhacking.kr] 6번 풀이Wargame/webhacking.kr (old) 2019. 3. 2. 18:18
idex.phps를 클릭하여 소스 코드를 보았다. 소스를 해석해보면,val_id에 guest, 변수 val_pw에 123qwe의 값으로 초기화한 후, 20번의 base64 인코딩을 수행하고str_replace 함수를 이용하여 숫자들을 특수기호로 치환한다.연산이 완료되면 val_id와 val_pw 값으로 user, password의 쿠키를 생성한다. 생성된 user, password 쿠키 값을 변수 decode_id, decode_pw의 값으로 초기화 한 후,위에서 수행한 연산과 반대로 수행한다. 마지막으로 decode_id와 decode_pw의 값이 admin인지 비교 후,admin일 경우 문제가 풀린다. 위에서 수행한 연산과 반대로 수행하기 때문에 str_replace 함수는 무시하면 된다. user,..
-
[Webhacking.kr] 5번 풀이Wargame/webhacking.kr (old) 2019. 3. 2. 17:59
Login, Join 버튼이 두 개만 있다. 일단 Join을 해보았다. 접근이 거부되었다...아무것도 안했는데.. 접근 거부부터 당했다..;;이럴땐 소스를 보아야한다. Join 버튼을 누르면 alert 창이 뜨고, Login버튼을 누르면 mem/login.php 페이지로 이동한다.Join도 mem/join.php 페이지로 접근하지 않을까? 일단 접근해보았다. 404에러 없이 검정화면이 뜬다..!하지만 join할 수 있는 form이 존재하지 않는다.소스를 보자..! 페이지 소스가 난독화되어 있다.정확하게 뭔지는 알 수 없지만 느낌적으로 bye, alert('access_denied')가 걸려있는 if문을 제거해야 할 것 같다. 위 if 구문을 지워주고 개발자 도구의 Console 창에 소스 그대로 붙여넣기..
-
[Webhacking.kr] 4번 풀이Wargame/webhacking.kr (old) 2019. 3. 2. 17:07
암호화된 문자열과 Password를 입력하는 칸이 주어져 있다.암호화된 문자열을 복호화해서 Password 값으로 넣어주면 풀리는 문제인 것 같다. 암호화된 문자열을 보면 마지막이 =으로 끝나는 것을 보니 Base64로 암호화되어 있다. Base64로 복호화해보았다.(Webhacking.kr 메인 페이지에는 암/복호화, 문자열 변환 등을 편리하게 하는 기능을 제공한다.) 복호화하니 또 뭔자 문자열이 주어져있다.회원가입할때 처럼 또 암호화된 것 같아 Base64로 한번 더 복호화 해보았다. 두 번째 주어진 문자열은 Base64가 아닌 다른 방식의 암호화가 되어있는 것 같다. MD5출력 값 길이 128bit (16진수로 32byte) SHA-1출력 값 길이 160bit (16진수로 40byte) SHA-25..