webhacking.kr

webhacking.kr

[webhacking.kr] old-35 (sqli → insert)

문제분석 & 풀이페이지에 접속하면 빈칸과 코드가 주어져있다. 코드를 분석해보자.1) phone, id 파라미터가 있는지 검증한다. (3번줄)2) phone, id 파라미터가 존재하면 다음을 수행한다. (4~9번줄)2-1. phone 값에 * , / , = , select , - , # , ;   가 들어가면 프로그램을 강제종료한다. (4번줄)2-2. id 값이 5자리를 넘으면 안된다. (5번줄)2-3. id 에 admin이 들어가면 프로그램이 강제종료된다. (6번줄)2-4. 위 3가지 검증을 모두 넘기면 sql 쿼리를 실행하여 새로운 레코드를 DB에 넣는다. (7번줄)3) sql 쿼리를 실행하여 ip값을 가져와 $isAdmin 에 저장한다. (11번줄)4) isAdmin['ip'] 값이 클라이언트의 ip..

webhacking.kr

[webhacking.kr] old-34

문제에 접속하니 디버그하라는 문구가 나온다. 개발자도구(F12)를 켜서 소스를 확인해보니 script 태그에 위와 같이 소스가 있다. 소스를 옮겨서 확인해봐도 들여쓰기가 전혀 안 된 상태로 나오다보니 보기가 까다로웠고결국 자바스크립트 난독화 해제 프로그램을 이용해 난독화를 해제하여 소스를 확인해봤다. 난독화를 해제하니 소스가 보기 편해졌다. 하지만 313줄로 긴 소스였고 여기서 뭘 해야되지?라는 생각이 들었지만 딱히 생각나는 것이 없어서 코드오더링을 쭉 해봤다. 코드오더링을 하던 중에 처음에 페이지에 접속했을때 "debug me"라는 alert창이 떴던 것이 생각났고 alert를 바로 검색해봤다. alert 검색결과 313줄의 소스중 alert가 딱 하나만 존재했고 위 사진에 나온 alert가 처음에 "..

webhacking.kr

[webhacking.kr] old-33

문제분석 & 풀이주어진 코드를 확인해보자. 소스를 보니 GET 방식으로 get 이라는 파라미터를 "hehe" 라는 값으로 전송하면 문제가 해결되는 것 같다. URL을 통해 값을 전송해보니 Next 라는 하이퍼링크가 뜬다. Next를 눌러보니 33-2 단계가 나온다. 아마 33번 문제는 여러개의 스테이지로 나눠져있는 것 같다. 소스를 보니 이번에는 POST 방식으로 post, post2 라는 두개의 데이터값을 전송하면 문제가 해결된다. post 방식으로 값을 전송하기 위해 버프스위트를 이용하여 패킷을 잡아서 POST 방식으로 변경하여 DATA 영역에 값을 넣어서 패킷을 전송했다. 패킷을 전송하니 이번에도 NEXT가 뜬다. 다음문제로 가보자. 33-3번의 소스를 보니 이번에는 myip 라는 파라미터에 PC ..

webhacking.kr

[webhacking.kr] old-32

문제분석 & 풀이문제에 접속하면 투표 랭킹이 뜬다. 이번 문제의 의도는 무엇일까?라고 고민하던 중 혹시하는 마음으로 나의 닉네임을 검색했다. 검색결과 내 닉네임이 있었고 0표 970등이였다. 아하! 1등이 37표였으니 내 투표결과를 1등으로 만들면 해결되겠구나!라고 생각했다. 나의 닉네임을 클릭하니 투표가 됐고 확인해보니 0표에서 1표로 늘었다. 그리고 다시 한번 나의 닉네임을 눌러서 투표하니 이미 투표했다고 하면서 투표가 무효된다. 아마 서버쪽에 투표를 했는지 안했는지 정보를 넘기는 것이라고 추정되는데... 그래서 바로 쿠키부터 확인했다. 쿠키를 확인해보니 vote_check 라는 쿠키가 존재했으며 값도 ok이다. 쿠키 값을 없애고 다시 투표를 해보니 정상적으로 투표가 된다! 쿠키값을 없애고 투표하는 ..

webhacking.kr

[webhacking.kr] old-31

페이지에 접속하니 간단한 php 코드와 경고 문구가 있다. 코드를 분석하고 요약해봤다.1. server 파라미터의 값으로 전송된 ip주소의 소켓을 연다.2. 이때, 포트는 10000 ~ 10100중 랜덤이다.3. 연결에 실패할 경우 에러창을 띄운다. 이어서 경고문을 보면 [PC ip]:10067 포트가 연결이 되지 않아서 경고가 발생한 것을 알 수 있다. 기본적으로 10000번대 포트의 경우 막혀있을 것이고 따라서 연결이 되지 않아 경고가 발생한 것 같다. 접속 포트를 개방해줘야 할 것 같은데 문제는 포트값이 10000 ~ 10100번중 랜덤이라는 것이다. 어떻게 해야 정상적으로 연결을 할 수 있을까??? 포트포워딩을 하면 문제가 해결될 것 같다.  포트포워딩이 무엇인지 알기 위해서는 공유기에 대한 간단..

webhacking.kr

[webhacking.kr] old-28 (apache → .htaccess)

문제분석 & 풀이페이지에 접속하면 "upload/~/flag.php" 라는 파일이 존재하고 해당 파일을 읽는 것이 목표라고한다. 하이퍼링크로 지정된 해당 경로로 접속하면 아무 화면도 뜨지않는다. 아마도 php 코드로 작성된 flag를 읽는 것이 목표인듯 하다. 그렇다면 어떻게 해당 코드를 읽을 수 있을까? 마침 flag.php와 파일을 업로드 하는 경우 저장되는 경로가 upload/~ 라는 경로로 똑같은 경로임으로 .htaccess 파일을 업로드하는 것이 가능하다면 디렉토리에 대한 설정을 변경하여 flag.php 파일을 읽을 수 있을 것이다. 즉, apache 서버의 보안 설정이 미흡하다면 .htaccess 파일을 직접 업로드하여 upload/~ 디렉토리에 대한 설정을 바꿀 수 있다. ○ .htacces..

keyme
'webhacking.kr' 태그의 글 목록 (5 Page)