Web Hacking

webhacking.kr

[webhacking.kr] old-13 (sqli → blind)

문제분석 & 풀이sql injection 문제라고 언급하고있다. FLAG{something}이라고 써있는 곳에 옳바른 flag를 입력하는 것이 목표다. 첫번째 폼에 1을 넣어 제출해보니 result 속성에 1이라는 값이 담긴 테이블을 연상하시키는 정보가 나왔다.url을 보면 우리가 폼에 넣어 전송한 값이 no 파라미터로 전송되고있다는 것을 알 수 있다. 다른 값들도 넣어보았는데 2 이상의 값들을 넣었을 경우에는 위와 같은 결과가 나온다. 처음에 sqli 문제라고 언급을 했기 때문에, no 파라미터를 통해 sqli를 수행하면된다. 위에서 결과에 대한 출력값의 차이가 2가지로 존재했으므로 이를 이용하여 blind sqli를 시도하면 될 것이다. 목표는 위에서 언급한 것처럼 flag를 가져오는 것이다. 처음에..

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 속성값을 가져와 최종적으..

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