목록Web/webhacking.kr (10)
김승현
들어가면 이렇게 생겼고 동그라미가 있고 오른쪽 끝엔 Goal이라는 목표지점이 있다. 마우스를 가져다대면 yOu라고 바뀌고 클릭하면 미세하게 오른쪽으로 이동한다. 이 코드가 이동하는 지점의 코드인데 posistion을 보면 나는 left: 1px이고 if(구문을 보면 this.style.left==1600px라는 게 있는 걸 봐선 1600px까지 이동해야 되는 것 같아 보인다. 그리고 onclick을 봐선 클릭하면 1만큼 이동하는 것 같다. 내 위치를 1590으로 고쳐주고 여기서 10만큼 이동하도록 10번만 클릭해보자. 짠 25점짜리 답게 되게 간단한 문제였다. 도착지점을 2px위치로 해도 되지 않을까라고 생각이 들어서 해봤는데 이렇게 왼쪽 아래에 no hack이라고 뜨며 막았다. 내가 푼 방법이 정석적인..
접속하면 이렇게 생겼다. 1번을 누르면 apple 2번은 바나나 3번은 Secret이다. column으로 id와 no가 있다는 걸 보면 sqli와 관련이 있어보인다. password에 입력해봤는데 pw파라미터로 입력되는 걸 알 수 있었고 숫자는 no 파라미터인 걸 알 수 있다. 처음엔 password에 시도를 계속 해봤는데 딱히 변하는 게 없었다. password는 아마 secret의 id 값을 입력하는 데인 것 같은데 입력이 11자로 제한된 걸 보니 id가 11자리 문자열인 것 같다. no파라미터에 length(5)라는 값을 입력했는데 apple이 뜨는 걸로 봐선 여기에 sqli를 시도하면 될 것 같다. if(length(id)like(11),3,0) 이렇게 입력해줬다. 만약 id의 길이가 11이면 n..
접속하면 이렇게 hi guest라는 게 뜬다. 딱히 이 페이지의 소스를 보거나 해서는 얻을 힌트가 없는 것 같으니 view-source를 눌러 코드를 확인해보자. view-source를 보면 이렇게 긴 코드를 볼 수 있다. 해석해보자.
7번 문제에 접속해보면 admin page라고 뜨고 auth라고 적힌 버튼이 하나 있고 밑에는 소스를 보는 링크가 있다. 여기 주소를 보면 val이라는 파라미터가 처음부터 주어져 있는 걸 볼 수 있는데 저걸 활용해서 푸는 문제인 것 같다. auth 버튼을 누르면 access_denied! 뜬다. 소스코드를 확인해 보자.
문제 분석 접속하면 이런 어두운 화면에 소스 보기와 id, pw를 볼 수 있다. 소스부터 확인해 보자. 이번 문제는 되게 간단한 문제이다. 대충 코드를 분석해보면 val_id에 guest, val_pw에123qw를 저장 val_id와 val_pw를 20번 base64 인코딩 함 두 변수들에 있는 1~8의 숫자들을 새로운 특수문자로 인코딩 함. user이라는 쿠키에 val_id 값을 저장, password라는 쿠키에 val_pw 값을 저장(time()내용은 만료시간인데 신경x) --------------------------------------------인코딩 파트↑ ↓디코딩 파트--------------------------------------------------------------- decode..
문제 분석 접속하면 이렇게 검은 화면에 login과 join 버튼이 있다. login은 말 그대로 login을 하는 창이 뜬다. join을 누르면 Access_Denied가 뜨면서 거절됐다고 뜬다. 개발자도구로 소스코드를 확인해보자. 풀이 login과 기본 페이지를 확인해봤는데 딱히 특별한 건 없어서 주소를 살펴봤더니 login 페이지의 주소가 mem/login.php인 걸 볼 수 있었다.비슷하게 mem/join.php로 한 번 접속해보자. 사진에서 볼 수 있듯이접속해보면 bye가 뜨고 그냥 검은 화면만 보인다. 소스코드를 확인해보자. 부분에 난독화된 javascript를 볼 수 있다. beautify js 사이트를 이용해서 일단 보기 좋게 만들어보자. l = 'a'; ll = 'b'; lll = 'c'..
문제 분석 접속하면 볼 수 있는 화면으로 새로고침을 할 때마다 문자열이 변경되는 걸 볼 수 있다. 중요한 부분만 보면 isset()함수를 통해 chall4의 세션이 있는지 확인하고 POST로 입력받은 key와 chall4의 세션이 동일하면 4번 문제가 풀리는 방식으로 진행된다. 10000000,99999999까지의 임의의 숫자와 뒤에 salt_for_you를 붙여서 임의의 8자리 숫자salt_for_you가 hash에 저장되게 하는 방식이다. chall4 세션에 이런 hash를 넣고 이 값을 500번 sha1 인코딩으로 암호화하는 방식이다.python을 이용해서 숫자salt_for_you를 500번 sha1해서 저장하고 검색해서 찾아봐야겠다. 코드 돌리는 중.....
문제 분석 문제에 접속하면 nonogram이라고 뜨면서 게임판이 뜬다. nonogram에 대해서 찾아보니까 위의 그림으로 예시를들면 3이라고 적혀있으면 그 줄에 3개의 네모가 이어지게 색칠을 하고 (예시) 1 1 1 이렇게 적혀져 있으면 띄워서 세 개를 색칠해야 한다. (예시) 이 방식대로 문제를 다 풀면 이런 모양으로 생긴 판이 나온다. 이제 solved를 누르면 이런 화면이 나온다. 주소는 넘어가고 우리 이름을 log에 입력하라고 뜨는데 일단 아무거나 입력해봤다. 그랬더니 이렇게 name과 answer 그리고 ip가 출력되어 있다. 입력창에 sql injection을 시도해보자. sql injection을 해봤는데 이렇게 딱히 바뀐 건 없는 걸 볼 수 있는데 answer이 그대로인 걸 볼 수 있다. ..
문제 분석 2단계에 접속하면 이렇게 Restricted area Hello stranger. Your IP is logging...이라고 뜬다. 개발자도구 - Elements로 코드를 살펴보자. 살펴보면 주석이 총 두 개가 있는데 하나는 시간이고 하나는 admin.php가 있다는 내용이다. (첫 번째 주석은 처음 접속하면 원래 내가 접속한 시간이 출력되는데 나는 이미 풀던 중에 찍은 거라 임의의 값이 나옴) 주석에서 알려준 admin.php로 가보자. admin.php로 가면 secret passwod를 입력하라고 하는데 일단 넘어가자. 개발자 도구 - Application - cookie를 확인해보면 time이라는 쿠키가 있는 걸 확인할 수 있다. 위 사진처럼 특정 숫자를 입력하면 2070-01-01 ..