분류 전체보기

webhacking.kr

[webhacking.kr] old-12

문제분석 & 풀이javascript challenge다. 개발자도구를 사용해서 코드를 확인했다. 코드가 보기 힘들게 구성됐다. 처음에 이것을 봤을때 막막했다. (오랜시간 삽질했다.) javascript 코드 1줄 마지막을 뜻하는 " ; " 가 몇 개가 있는지 검색했다.  ";"는 상단 코드에 다수 분포하고 마지막에 1개 있었다. 추측하자면, " ; " 를 기준으로 나눠져 있는 상단 코드는 변수 선언부고 아래 코드들이 선언부를 통해 표현된 부분이라고 생각했다. 만약, 변수 선언부라면 뜬금없이 마지막에 " ; " 가 하나만 있는 것이 좀 이상하다고 생각했고 마지막 이모티콘 같은 모양을 검색했다. 검색결과가 1개만 뜨는 것을 확인 할 수 있고 이 부분이 오류인가 싶어서 이 부분을 빼고 console에 입력했다..

webhacking.kr

[webhacking.kr] old-11 [Regex]

문제분석 & 풀이코드를 확인해보자. Wrong"); echo("");?>$pat에 정규표현식이 저장된다.  해당 정규표현식은 $_GET['val']를 검증하는 과정에서 사용한다. 정규표현식 패턴을 분석해서 val 파라미터로 전송할 데어티를 만들어보자. 정규표현식은 .을 기준으로 3가지로 분류할 수 있다.[(1~3 사이의 숫자) 또는 (a~f 사이의 알파벳) 5자리].[IP 주소].[탭+p+탭+a+탭+s+탭+s]위 조건을 만족하는 3가지를 구성해서 완성하면된다. 필자는 다음과 같이 완성했다. 1aaaaa_.[본인 pc IP 주소].%09p%09a%09s%09s %09는 tab을 url 인코딩한 값이다. 정규표현식을 보면, "pass" 사이마다 tab을 했기 때문에 사용했다. GET 방식으로 파라미터를 통..

webhacking.kr

[webhacking.kr] old-10

문제분석 & 풀이 페이지에 접속하면 위와 같은 페이지가 나온다. 페이지에서 o 표시에 마우스 커서를 가져가면 "y0y" 와 같은 모양으로 바뀌는 것을 확인 할 수 있다. 클릭하면 조금씩 오른쪽으로 이동한다. 여기가 수상하다 싶어서 개발자도구(F12)를 켜고 소스를 확인했다.id가 "hackme"인 것을 확인 할 수 있다. 페이지에서 오른쪽에 Goal 이라는 목표지점이 있는 것을 보았을때 o 모양을 맨 오른쪽으로 옮기는 것이 문제의 목표인 것 같다. o 모양 태그에서 onclick 속성을 보면 if문에서 1600px일 경우 문제가 클리어되는 것을 확인 할 수 있다. "?go=1600"으로 직접 이동을 시도해보았지만 아쉽게도 no hack 이라는 문구가 뜬다. 출제자의 의도가 아닌 듯 하다. for(i=0;..

webhacking.kr

[webhacking.kr] old-09

문제에 접속하니 위와 같은 페이지가 나왔다.아마 password를 맞추는 것이 문제인 것 같다.  하이퍼링크가 걸린 숫자들을 하나씩 눌러보자.숫자를 누르면 no 파라미터를 통해 해당 숫자값이 전송되는 것을 확인 할 수 있었고 각각 위와 같은 결과가 나왔다. 마지막으로 3을 눌러보니 secret이라는 문구와 함께 속성이 id,no 이며 no=3의 id 값이 password라고 언급됐다.아마 DB의 테이블의 속성이 id,no 두 가지이며 우리가 구해야하는 password는 no가 3인 레코드의 id값인듯 하다. 결론적으로 password인 no=3의 id값을 구하는게 이번 문제의 목표가 될 것이다. no=3의 id값을 구하기 위해서는 blind sqli를 진행해야 하는데 사실 딱봐도 no 파라미터를 이용해야..

webhacking.kr

[webhacking.kr] old-08

문제에 접속하니 "done!" 라는 문구와 함께 소스가 주어져있다. 소스를 봐보도록 하자. 소스코드를 분석해보자. 1. 클라이언트의 브라우저, os 정보를 가져와 공백제거 후 $agent 변수에 저장(2번 줄)2. 클라이언트의 ip 주소를 가져와서 $ip 변수에 저장(3번 줄)3. $agent 변수에 "from"이 포함되어있으면 프로그램 종료(4~7번 줄)4. chall8 테이블의 id 속성의 레코드 갯수를 가져온 후 $count_ck 변수에 저장 (10번 줄)만약, $count_ck 값 즉, 카운팅 갯수가 70이상이면 chall8 테이블을 삭제 (브루트 포스 방지용 인 것 같다.) (11번 줄)5. 클라이언트의 http_user_agent 정보를 가져와 그 정보에 해당하는 id 속성값을 가져와 최종적으..

webhacking.kr

[webhacking.kr] old-07

문제에 접속하니 Admin page 가 나타났다. auth 버튼을 눌러보니 "access denied" 가 뜨는 것을 확인 할 수 있다.이번문제는 admin page에서 admin이라는 것을 버튼을 눌러서 인증을 해내는 것이 목표가 될 것 같다.다음으로 소스를 봐보자. 소스를 간단히 분석하면 다음과 같다.1. "val" 라는 파라미터의 값을 받고 $go 변수에 저장 후 5번줄을 통해 그 값을 정규표현식을 이용하여 필터링 검증을 받는다. (2,5번줄)2.  rand(1,5)를 통해 1~5 까지 숫자중 랜덤값을 받고 if문으로 들어간다. (7~22번줄)3. 들어간 if문의 sql 쿼리를 실행하고 그 결과(레코드)를 $data 변수에 넣는다. (8~22번줄)4. $data[0]  즉, 결과로 받은 레코드의 l..

keyme
'분류 전체보기' 카테고리의 글 목록 (31 Page)