webhacking 10

webhacking.kr 42번 풀이

webhacking.kr 42번 풀이 [HINT] 1. Base642. File Download3. Brute Force Attack 페이지에 접근하면 두개의 다운로드 링크를 볼 수 있는데, read me 의 test.zip은 다운 경로가 없고 권한이 없다는 메세지를 띄우는 JS코드가 박혀있다.test.zip을 열어보는 것이 목표일 것이다. test.txt의 다운로드 URL을 보면 파라미터로 base64의 값을 보내는 것을 확인 할 수 있다. 이는 test.txt의 base64 encode한 값이다.예상으로 파라미터를 test.zip의 base64 encode한 값을 넣으면 다운 받을 수 있을 것 같다. test.zip을 base64 인코딩 한 값은 dGVzdC56aXA= 이고, 이를 파라미터에 넣으면 ..

webhacking.kr 18번 풀이

webhacking.kr 18번 풀이 간단한 인증우회 문제 [HINT] 1. SQL Injection2. space bypass no를 get 파라미터로 받는다.no는 특정 문자열이 들어가있으면 필터링하고들어가있지 않은 경우, sql query를 요청한다. 반환값으로 admin이면 문제를 풀 수 있다. table에 있는 값은 1이 guest, 2가 admin이다. where 조건문의 id가 guest로 고정되어 있으므로 no에서 sql injection을 시도하여 admin 값을 반환하게 한다.간단하게 2 or 1=1로 시도했다. 참고로 int형의 컬럼에 조건문을 걸 때는 싱글쿼터 등의 구분자를 적지 않고 숫자만을 입력할 수 있으니int형의 컬럼 조건문에 sql injection을 걸 때에는 싱글쿼터가 ..

webhacking.kr 34번 풀이

webhacking.kr 34번 풀이 문제 자체를 푸는데 있어서는 왜 이렇게 높은 배점이 책정되어있는가 조금 의문이 들 정도로 무슨 의도인지 모르겠는 문제 [HINT] 1. JavaScript2. 난독화(????) 문제에 접근하면 Wrong이라는 메세지 박스가 뜨고 검은 화면밖에 보이지않는다.페이지의 소스를 보면 난독화가 되어 있다. 글자는 왜 깨져있는지 모르겠다. 하지만 개발자 도구로 보게 되면 언패킹 된 JS코드가 보이게 된다.url에 0lDz0mBi2라는 문자열이 있으면 Passw0RRdd.pww 페이지로 이동하고 아니면 메세지 박스를 띄운다. 난독화 문제인데 왜 소스 코드 막 줄에 구지 언패킹 된 소스를 노출시킨건지 이해가 되지 않았다.바쁜 웹 해킹.kr 개발자의 의도는 지금은 잘 알턱이 없고 난..

webhacking.kr 8번 풀이

webhacking.kr 8번 풀이 [HINT] 1. SQL Injection in INSERT query2. 환경 변수 문제에서는 클라이언트의 HTTP_USER_AGENT와 REMOTE_ADDR를 가져와 각각 $agent,$ip에 저장한다.$agent 변수에서 문자열 앞 뒤 공백 제거, 일부 문자열 치환 및 필터링, 소문자 치환 과정을 거친다. 이후 $_SERVER를 통해 HTTP_USER_AGENT를 가져와서 싱글쿼터(')와 \를 필터링한다.싱글 쿼터(')와 \를 필터링한 HTTP_USER_AGENT의 값으로 쿼리를 불러오고 쿼리의 반환 값으로 "admin"이 있다면 문제를 해결할 수 있다."admin" 값이 없다면 agent, ip, id 테이블 안에 각각 변수 $agent,$ip 와 문자열 'gu..

webhacking.kr 17번 풀이

webhacking.kr 17번 풀이 [HINT] 1. javascript JS는 client side script이므로 클라이언트 측에서 소스를 열람할 수 있고 변조할 수 있다. 소스에선 unlock 변수에 계산하기 힘든 사칙연산의 결과값을 저장하고 있고,sub()함수는 페이지에 있는 textbox의 값이 unlock 변수에 저장된 값과 같으면 Password is (unlock/10)를 출력한다. 열람도 가능하고 변조도 가능하기 때문에 풀이 방법은 여러가지 방법이 될 수 있다.첫 번째로 소스코드를 열람 할 수 있는 성질을 이용할 수 있다. 사칙 연산의 내용을 볼 수 있기에 python이나 다른 스크립트를 통해 unlock의 값을 계산해낼 수 있다.직접 손으로도 가능하긴 하다. 두 번째 방법으로는 페이..

webhacking.kr 4번 풀이

webhacking.kr 4번 풀이 webhacking.kr은 문제 목표가 뚜렷해서 공부하기 편하지만가끔 무슨 의도의 문제인지 모르는 문제들이 있다.그 중 하나인 문제 같다. [HINT] 1. base 642. Rainbow Table 문제는 Password를 입력할 수 있는 textbox와 summit 버튼, 알 수 없는 문자열을 볼 수 있다.뒤에 '==' 패딩되어 있는 것을 보아 base64로 인코딩된 문자열인 것을 확인 할 수 있다.알파벳 대소문자, "+", "/" , "="으로 이루어져있고, 24bit단위로 인코딩 되기 때문에 24bit단위가 아닌 문자열의 끝에는 "=", "=="으로 패딩된다. 24bit 단위인 문자열은 패딩 문자 "="가 붙지 않으므로 패딩 문자가 없다해서 base64가 아닐거..

webhacking.kr 14번 풀이

webhacking.kr 14번 풀이 자바스크립트가 어디서 동작하는지만 알면 클리어 되는 문제이다. [HINT] 1. javascript URL을 보면 알 수 있지만, JS, 자바스크립트에 관한 문제임을 알 수 있다.JavaScript와 PHP의 차이라고 한다면 어디서 소스가 실행되느냐를 따질 수 있다. 웹 페이지에서 실행되는 JS의 경우, PHP와 다르게 소스를 클라이언트가 볼 수 있고 그것을 변조할 수도 있다.그러므로 소스보기나 개발자 도구(F12)를 통해 소스를 보게 되면 javascript 구문을 볼 수 있다. 사이에 있는 이 소스가 js 소스이며 문제 페이지에 있는 입력 칸에 적은 값이 ul의 값과 같다면 password의 값을 내놓고 그 값은 ul의 제곱과 같다.(입력 값(pw.input_pw..

webhacking.kr 6번 풀이

webhacking.kr 6번 풀이webhacking.kr의 100점짜리로 매우 쉬운 문제이다.php 소스만 읽을 줄 안다면 약간의 노가다로도 풀어지는 문제고필자도 처음엔 일일이 인코딩해서 풀었다. [HINT] 1. base64 Encoding 문제의 첫 화면을 보게 되면 ID : guest 와 PW : 123qwe 을 볼 수 있다.그리고 HINT인 base64와 php source 파일 링크가 있다. 여기에서 정보는 이 정도이니 phps 파일을 보도록 하자. 소스 파일을 열게 되면 가장 먼저 보이는 소스인데,먼저 문제 풀이에 쿠키를 사용함을 볼 수 있다. 이 소스를 해석하자면만약 user라는 이름의 쿠키가 존재하지 않을 때, $val_id 와 $val_pw인 'guest'와 '123qwe'를 base6..

webhacking.kr 15번 풀이

webhacking.kr 15번 풀이 문제가 매우 쉽고 풀이 방법도 많은 데다가 사실,문제의 답을 대놓고 보여주는 문제답게 점수도 낮다. 이 문제에 대한 풀이가 필요할까 싶다. [HINT] 1. 사륜안(?) 처음 페이지를 들어가게 되면 Access_Denied라고 뜨며 문전박대당하게 된다. 소스를 볼 때면 이미 다 푼 거라 볼 수 있지만, 일단 소스를 보면 javascript의 alert 함수로 Access_Denied를 띄운 뒤, history.go(-1)를 이용해 자신이 이 페이지를 접하기 전의 페이지로 돌아가게 만든다. 이것을 우회할 방법이 여러 개 존재한다. 해당 풀이는 전부 크롬에서 할 수 있다. 1. view-source: 이용하기 크롬은 프로그램 내 특수한 주소명령체계를 이용하는데 그중 하나..

webhacking.kr 1번 풀이

webhacking.kr 1번 풀이 webhacking.kr 의 첫 번째 문제이다. [HINT] 1. 정규표현식 문제의 화면을 보면 검은 화면에 level 그리고 index.phps라는 문자열을 볼 수 있다.webhacking.kr 에서 자주 보게 될 phps 는 PHP Source를 뜻하는 것이며, 이 확장자 명은 설정을 통해 변경 할 수 있다. 단지 PHP 소스를 보기 위해 만든 형식이므로문제나 예제 같은 곳에서 소스를 출력하기 위해는 유용하게 쓰일 수 있지만함수가 사람들에게 보이면 안되는 보안이 필요한 페이지는 PHP Source 기능을 잘 쓰지 않는다. 하여튼, 이 문제에 대해 힌트를 얻기 위해 index.phps로 이동하게 되면 다음과 같은 소스를 볼 수 있다.1번 문제는 PHP 함수와 정규표현..