Web Hacking

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..

webhacking.kr

[webhacking.kr] old-27

문제분석 & 풀이sql injection 문제다. ○ 코드 분석1. no 파라미터를 통해 값을 전송받고 있다.2. no는 # , select , ( , 공백 , limit , = , 0x 중 하나라도 있을시 hack으로 간주한다.3. sql 쿼리를 실행해서 결과로 나온 id값이 "admin"이면 문제가 해결된다. 필터링을 우회하는 인젝션 쿼리는 다음과 같다.# Injection Query0) or id like 'admin'--# Complete Queryselect id from chall27 where id='guest' and no=(0) or id like 'admin'-- ) where문을 보면 or 를 이용해서 id='guest' 를 무효시키고 id가 'admin'인 값을 찾고 있다. 여기서 ..

webhacking.kr

[webhacking.kr] old-26

문제분석 & 풀이1. id 파라미터를 이용해 값을 전송받으면 id 파라미터에 "admin"이 들어가면 hack으로 간주한다.2. id 값을 url 디코딩하여 id 변수에 저장한다.3. id 값이 "admin"이면 클리어 "admin" 은 정규표현식 필터링에 걸리기 때문에 "admin"을 url 인코딩해서 보내도 필터링에 걸린다. 원래 url 인코딩이 된 값도 서버에서는 알아서 해석하기 때문에 자동으로 디코딩이 된다. 이 점을 이용하면, "admin"을 2번 url 인코딩해서 서버로 전송하면 자동으로 디코딩 한번되고 이후 3번 줄에서 한번 더 디코딩을 해서 총 2번의 디코딩을 거쳐 id값이 "admin"이 될 수 있다. 정규표현식에 의한 필터링 검사를 2번째 디코딩 수행 전에 하기 때문에, id가 "adm..

keyme
'Web Hacking' 태그의 글 목록 (11 Page)