Wargame/webhacking.kr (old)
-
[Webhacking.kr] 34번 풀이Wargame/webhacking.kr (old) 2019. 5. 7. 17:14
문제를 클릭하면 Wrong이라는 alert 창이 뜨고 검정화면이 뜬다.검정 페이지 소스를 보았다. 소스 코드가 난독화되어 읽기 어렵다. 변수에 문자열이 들어가 있는 듯하다.개발자도구의 Console을 이용하여 변수에 어떤 문자열이 들어가 있는지 확인해보았다. 소스 코드를 모두 복사하고 붙여넣은 후, 마지막에 변수 이름을 입력해주면해당 변수의 문자열을 출력해준다. script문 같은 문자열이 들어가 있다.결과 값이 마우스를 올리면 아래와 같이 문자열을 깔끔하게 볼 수 있다. if(document.URL.indexO~'0lDz0mBi2')!=-1){l~ation.href='Passw0RRdd.pww';}else{alert('Wr~6g~)~N 완전한 문장은 아니지만 URL에 0lDz0mBi2가 존재하면 pas..
-
[Webhacking.kr] 33번 풀이Wargame/webhacking.kr (old) 2019. 5. 7. 16:41
[ 33-1 ] /challenge/bonus/bonus-6/index.phps 를 클릭하여 소스 코드를 보았다. get 방식으로 hehe를 넘겨주면 a 태그가 뜬다. url?get=hehe Wrong에서 Next로 바뀌었다. Next 클릭 다음 문제로 ㄱ~ [ 33-2 ] 이번에는 post 방식으로 hehe와 hehe2를 넘겨주면 된다.post 형식으로 값을 전송하기 위해 개발자 도구를 이용하여 form을 생성하였다. submit 버튼을 클릭하면, 다음 문제로 넘어갈 수 있다. [ 33-3 ] get 방식으로 remote_addr (나의 ip 주소 값)의 값을 보내주면 풀린다. url?myip=000.000.0.0 [ 33-4 ] get 방식으로 time 함수의 결과 값을 md5 암호화한 값을 전송해주..
-
[Webhacking.kr] 32번 풀이Wargame/webhacking.kr (old) 2019. 5. 7. 16:05
뭔가 등수가 있고 밑에 join버튼이 있다.내 아이디는 없는걸보니 join해야하는 것 같다. join 버튼을 눌렀더니 나의 아이디가 추가되었다.내 아이디를 클릭해보니 1이 증가하고 등수도 올랐다. 100번 hit하면 되는 것 같다.이렇게 100번 눌리면 되는 쉬운 문제인가?! 한번 더 눌러보았다. no!역시 이렇게 쉽게 해뒀을리가 없다..ㅎㅎ소스 코드를 보았는데,, 별게 없었다. 쿠키 값을 보자..! vote_check라는 쿠키가 생성되어 있다. 이 쿠키 값때문에 한 번만 hit되는 것 같았다.ok라고 되어있는 값을 no로 수정한 후 다시 한번 hit해보았지만 여전히 no!라는 alert창이 떴다. 흠,,vote_check 쿠키 값을 삭제하고 hit해보았다. 된다..!쿠키 값이 생성되지 않은 상태로 10..
-
[Webhacking.kr] 31번 풀이Wargame/webhacking.kr (old) 2019. 5. 7. 03:10
31번 문제를 들어가보면, 10025에 연결할 수 없다는 에러가 출력된다. 페이지 새로고침을 하면 이번에는 포트 번호가 10073이다.랜덤 함수에 의해 포트 번호는 계속 바뀐다. fsockopen()소켓 연결을 열기 위한 함수 fsockopen ("연결할 Domain / IP", "포트 번호", "에러", "에러 메시지", "연결 시도 시간") 소스 코드를 해석해보면, get 방식으로 나의 외부 IP를 전송해준다.나의 외부 IP로 연결을 하면서 통신할 포트 번호는 10000~10100이고, 3초 내에 연결이 되지 않으면에러가 발생한다. 포트포워딩을 통해 10000~10100의 포트를 열어주고, 연결시켜주면 될 것 같다. 포트포워딩 하는 방법은 다음과 같다.(나는 ipTIME을 사용하기 때문에 192.16..
-
[Webhacking.kr] 29번 풀이Wargame/webhacking.kr (old) 2019. 5. 7. 02:49
파일을 업로드 할 수 있다. c29_tb 테이블에서 password를 알아내는 문제이다.str_replace 함수로 파일 이름의 .을 공백으로 치환하며, 문제의 소스 코드는 없다. 우선 파일 ghghgh를 업로드하여 어떻게 구성되어 있는지 알아보았다. 파일을 업로드하니 time, ip, file의 테이블 형식으로 페이지에 출력된다.insert 구문을 사용하여 time, ip, file을 DB에 저장하고 불러오는 것 같다. insert into c29_tb values('\$time', '\$ip', '\$file'); 추측대로 위와 같은 insert 구문을 사용하는지 다중 데이터를 삽입해 보았다. insert into c29_tb values('\$time', '\$ip', 'zz'),(1, 2, 3)-..