본문 바로가기

(78)
webhacking.kr 6번 6번을 들어가면 아이디와 비밀번호의 값이 보이면서 바로 소스코드를 확인할 수 있습니다. 위의 코드가 6번의 소스코드입니다. 소스코드를 해석해서 쿠키값을 바꿔주면 쉽게 해결되는 문제입니다. 먼저 html태그 윗 부분 부터 해석을 해보겠습니다. 1. id=quest, pw='123qwe'로 설정해서 20번 base64로 인코딩 해준 후 해당하는 문자열들을 규칙에 맞게 변환하여 쿠키값 user, password로 설정해준 부분을 소스코드로 보여주었습니다. 2. html 태그 안의 내용은 user, password의 쿠키 값을 가져와서 규칙에 맞게 대체한 문자들을 원래의 값으로 다시 대치시켜 준후 base64 디코딩을 20번하여 처음에 어떤 값으로 id,pw값을 설정했는지 확인 하는 과정이 포함됩니다. 이때 i..
webhacking.kr 5번 5번을 들어가면 login버튼과 join버튼 2가지 말고는 아무것도 없습니다. 그래서 login 버튼을 눌러보면 로그인 화면이 보이고 여기에 아무 아이디를 넣어서 로그인 시도를 하면 Wrong password 표시가 뜨면서 로그인을 할 수 없습니다. 그래서 join 버튼을 누르면 위처럼 메시지가 뜨면서 페이지에 접근할 수 가 없습니다. 그래서 소스코드를 분석해보면 소스코드 부분에서 각 버튼의 onclick 핸들러를 주목해서 보면 login버튼은 move함수를 통해 동작하고, join버튼은 no함수를 통해 동작하는데 no함수를 보면 무조건 alert를 띄워주는 형식입니다. 그래서 문제를 해결하기 위한 join페이지를 다른 방법으로 찾아야합니다. 소스코드를 보면 mem/login.php로 이동하는 문구가 있..
webhacking.kr 10번 10번 문제를 들어가면 이렇게 되어 있습니다. 따로 소스코드가 나와있는 것도 아니어서 개발자 도구를 통해 코드를 분석했습니다. 이 부분을 보면 이름이 hackme로 되어 있는 것을 보아 이 부분을 공략해야 할 것 같습니다. 자세히 보면 조건이 this.style.left=1600px가 되면 이동하는 것으로 보아 이 값을 맞춰주면 해결 될 것 같습니다. 그리고 0값을 클릭하면 1칸씩 왼쪽으로 이동합니다. 처음에 저는 영어로 Goal 부분에 가야 하는 줄 알고 임의로 위치를 조정해주었지만 문제가 해결되지 않았습니다. 아마 한 번은 클릭해야 하는 것 같습니다. 그래서 다시 삽질하다가 위치 부분이 99부분에서 1500을 더해주면 되지 않을까(사실 100에서 1500을 더하기도 했습니다.) 이 역시 풀리지 않았습..
webhacking.kr 7번 문제와 소스코드 입니다. 문제를 보면 go값을 get형식으로 받고 go의 값에 따라 해당 레벨의 값을 가져와서 레벨의 값이 2이면 문제가 해결되는 구조입니다. 단순히 2를 넣어보려 했지만 역시 필터링문자에서 2가 막혀 있습니다. 그래서 아래의 사이트를 참조해서 2를 나타내는 다른 값들을 찾았습니다. ostermiller.org/calc/ascii.html ASCII Chart ostermiller.org 여기 값들 중에서 2가 들어가지 않은 char(50)을 이용하려고 했지만 단순히 char(50)을 넣어주면 문제가 해결되지 않습니다. query error로 뜨는 것으로 보아 이렇게 값을 가져오면 숫자 2와 구분되어 다르게 가져오거나 아니면 해당 데이터가 없는 것 같습니다. 그래서 union문을 통해서 ..
webhacking.kr 23번 문제를 보면 를 삽입하라고 되어 있습니다. 당연히 이 문구 그대로 입력하면 되지 않습니다. 그래서 어떤 문자가 필터링되는지 확인해보기 위해서 이것저것 넣어보며 삽질해보니 제 생각에는 script와 alert중가 중간에 다른 문자가 들어가도 공백이나 널값이 중간에 없으면 무조건 필터링 되는 것 같았습니다. 그래서 이전에 sfw6에서 배웠던 방법을 썼습니다. 일단 a등 특수문자와 영문자가 연속으로 입력되는 값은 필터링 되지 않았습니다. 그래서 연속으로 영문자가 입력되는 사이사이에 %00인 널값을 넣어주어 우회해서 문제를 해결했습니다.(필터링 문자가 있을 때 중간에 널값을 넣어서 우회하는 방법이 sfw6 문제와 유사합니다.) a%00l%00e%00r%00t%00(1);
webhacking.kr 3번 3번을 들어가면 이런 화면이 나옵니다. 처음에 당황해서 nonogram에 대해 검색해 보니 namu.wiki/w/%EB%85%B8%EB%85%B8%EA%B7%B8%EB%9E%A8 노노그램 - 나무위키 입체 피크로스 / Picross 3D (NDS, 2009) 형태 신발견! 입체 피크로스 2 / Picross 3D Round 2 (3DS, 2015) HAL 연구소에서 발매한 피크로스의 파생 게임. 칸수 자체가 많기 때문에 2D 피크로스보다는 시간이 많이 namu.wiki 뭐 이런 종류의 퍼즐(?) 비슷한 것이었스니다. 자세한건 나무위키같은 간단한 자료를 찾아보면 좋을 것 같습니다. 검색 후 아래 그림처럼 퍼즐을 풀었습니다. 그리고 들어가보니 이런화면이 떴고, 여기에 단순히 제 아이디를 입력하니 이렇게 떳습..
webhacking.kr 1번 1번 문제를 보면 cookie 값이 6이상이면 쿠키 값을 1로 설정하고, 5 초과이면 문제가 해결된다고 합니다. 그렇다면 cookie 값이 5
sfw8 (페이지 변조 XSS) sfw8입니다. 문제를 보면 admin을 alert하면 될 거 같긴합니다. 위의 그림처럼 단순히 admin을 script태그로 alert할려고 하면 필터링 되어서 안되는 것 같습니다. 그리고 아무 글자를 입력해서 버튼을 누르면 화면에 그대로 출력되는 것 같습니다. 그렇다면 일단 소스코드를 보겠습니다. script부분을 주목해야 할 것 같습니다. admin이 일단 필터링 되는 것처럼 보이고 onload, onerror의 핸들러, write나 char을 통해 함수를 사용하는 방법 등도 필터링 되어 있는 것 같습니다. 간단하게 필터링 하는 방법으로는 admin을 hex값으로 바꾸어서 우회하는 방법이 있습니다. 먼저 hex값으로 바꾼 코드는 아래의 코드였습니다. 이렇게 넣은 이유는 sql injection을 할..