python 썸네일형 리스트형 webhacking.kr [문제 23번] 23번 문제를 풀어보겠다. 해당 문제의 배점은 200point이다. 23번 문제를 접속해보니, 입력 폼 한가지가 있고, 힌트로는 를 인젝션하라고 한다. 그럼 한번 해당 스크립트를 인젝션해보자. 당연히 이렇게 쉽게 될리가 없다. 특정 문자들이 필터링 되어 있는 것으로 확인된다. 어떤 문자열들이 필터링 되어 있는지 체크해보자. 해당 문자열을 토큰 단위로 쪼개어 체크해보았다. 1) 4) alert 5) ( 6) 1 7) ) 8) ; 9) / 해당 필터링 된 문자들을 확인해보면, 각 특수문자들을 필터링 되어있지 않지만, 'script'와 'alert'문자열들은 필터링 되어있는 것으로 확인됬다. 그렇다면 해당 문자열을 이루고 있는 문자들도 필터링 될까? 다행이 아닌 것으로 확인되었다. 그렇다면 해당 문자들을 nu.. 더보기 webhacking.kr [문제 22번] 오늘은 22번 문제를 풀어보겠다. 사실은 며칠전에 풀었지만, 포스팅하지 못하였다. 해당 문제의 배점은 500point이며, 점수 배점이 높은거로 봤을 때, sql injection문제가 아닐까 조심스레 예상해본다. 해당 페이지 접속시, 다음과 같은 로그인 폼이 보인다. 힌트에 유의해야 할 부분이 있는 데, if($id=='admin') echo("good! Password is $solution"); 해당 부분에서 로그인한 아이디($id)가 'admin'이면 패스워드를 출력하는 것으로 확인된다. 먼저 해당 입력폼의 임의의 아이디를 넣고 로그인해보자. 역시나 Wrong! 이라는 메세지를 보여주면서 로그인 실패한다. 한번 회원가입해볼까? username은 'lidron'으로 password는 'crack'으.. 더보기 webhacking.kr [문제 21번] 잠깐 여행을 다녀오느라 문제풀이를 하지 못하였다. 오늘은 웹해킹 21번 문제를 풀어보겠다. 배점은 250point이다. 해당 문제 클릭 다음과 같이 BLIND SQL INJECTION이라는 힌트가 주어져있고, 인풋박스가 한가지 있다. 해당 문제는 BLIND SQL INJECTION기법을 이용하여 풀이하는 문제로 예상된다. 실제로 데이터를 입력해보자. 1~10까지 차례대로 입력해보았다. 1과2는 참(TRUE)이였고, 3~10까지는 거짓(FALSE)이였다. 또 한가지 입력시 URL을 통해 GET방식을 통해 서버에 전달되는 정보가 무엇인지 확인해보았다. no값 말고도 id와 pw가 전달되어지는 것을 확인하였다. 이를 통해 예상해볼 때 정보를 가져오는 테이블은 아이디와 비밀번호를 저장해둔 데이터 테이블이고 구조.. 더보기 webhacking.kr [문제 20번] webhacking.kr 19번에 문제가 있다. 해당 문제는 잠시 보류해두고 20번 문제부터 풀어보겠다. 이제 해당 문제를 클릭해보자. 상단의 다음과 같은 메세지와 3개의 인풋박스가 나열되어 있다. 또한 힌트로 "do not programming!""this is javascript challenge" 주어져 있다. 자바스크립트 문제라고 명시되어있기 때문에 소스코드를 확인해보자. 눈여겨봐야할 부분 두 부분을 체크해놓았다. 해당 입력폼에 조건 4가지가 붙어 있고, 다음과 같은 조건이 성립되지 않으면 해당 부분을 포커싱하게 되어있다. 1. if(lv5frm.id.value=="") { lv5frm.id.focus(); return; } 해당 입력폼이 공백이면, 해당 입력폼에 포커스를 맞춘다. 2. if(lv.. 더보기 webhacking.kr [문제 17번] 17번 문제를 풀어보겠다. 해당 문제의 배점은 100point이다. 사실 풀이과정을 작성하면서 문제를 풀어보려고 했으나, 무의식중으로 해당 문제를 풀어버려서 이미 문제가 풀린 상태이다. 허나 도움받을 분들을 위해서 풀이를 작성하겠다. 해당 문제를 접속하게 되면 input box하나가 보인다. 혹시나 쿠키를 이용하나 해서 어떤 쿠키가 존재하는 지 확인하였다, 다른 쿠키정보는 존재하지 않았다. 그렇다면 소스코드를 확인해보겠다. 해당 스크립트를 확인하니 input box의 입력값이 unlock이란 변수의 값과 같으면 password를 출력하고 그렇지 않으면 틀린 메세지박스를 출력하고 있다는 것을 확인하였다. 결과적으로 unlock값을 알아내기 위해서는 다음과 같은 소스코드의 값을 알아내야 한다. 허나 연산이 .. 더보기 webhacking.kr [문제 16번] 오늘은 16번 문제의 풀이를 작성해보도록 하겠다. 해당 문제의 배점은 100point이다. 해당 문제를 클릭하자 16번 문제 페이지의 좌측 상단에 뚱이(별) 한마리가 자리 잡고 있다. 기계적으로 소스코드를 확인해보자. 해당 소스코드를 확인하면 바디태그에 onload와 onkeypress 메소드가 등록되어 있는 것을 확인할 수있다. onload : 바디가 로딩될 때 실행될 루틴이 저장되어있다, onkeypress : 바디 요소가 활성화 되어있을 때 키입력시 발생할 이벤트가 등록되어 있다. onkeypress에 등록되어 있는 함수를 확인해보자. 특정한 정수값에 따라 star요소(별)이 이동하는 것을 확인할 수 있다. (단, 크롬브라우저에서 해당 스크립트는 작동하지 않는다.) 여기서 특정한 정수값은 뭘 뜻할까.. 더보기 webhacking.kr [문제 9번] 중간에 알바면접이 있어서 포스팅을 못했다. 미루고 미루던 웹해킹 9번 문제를 풀어보겠다. 9번문제 무려 900point로 전체 문제 중 두번째로 점수 배점이 높다. 해당 문제를 풀면 대략적인 다른 문제들의 난이도를 예상할 수 있을 것으로 예상된다. 문제 클릭시 다음과 같은 페이지를 보여준다. 소스코드를 확인해보자. 별다른 정보는 없지만 각 페이지가 no=1, no=2, no=3로 하이퍼링크 되어 있는 것을 확인할 수 있다. 실제 각각의 페이지를 확인해보자. 1번 페이지 2번 페이지 3번 페이지ㅓ 다음과 같은 페이지를 분석해보니. 데이터베이스에서 no일때의 각각의 id값을 가져와 화면에 뿌려주는 것으로 확인된다. 또한 no=3일때의 id값의 길이는 11로 힌트가 주어졌다. 과연 해당 가설이 맞는지 no=4.. 더보기 webhacking.kr [문제 5번] 문제 5번을 풀어보겠다. 300point의 5번 문제를 클릭하자. 웹 페이지가 단순하게 두개의 버튼만을 가지고 있다. 로그인 페이지가 보이고 일반적으로 UI가 상단은 아이디 하단은 비밀번호로 생각되어 아무거나 치고 로그인 해보자. 예상했던 결과다 싶이 admin이 아닐경우 로그인이 되지않는다고 한다. admin과 비밀번호를 입력한 후 로그인해보자. 이전과는 다른 메세지를 보인다. 그렇다면 한번 회원가입을 클릭해보자. Join버튼을 누른결과 접근이 거부되었다는 메세지가 뜬다. 소스코드를 확인해보자. 소스코드를 확인하여보니 Join버튼 클릭시 당연히 no()라는 함수가 실행되어 'Acess_Denied'라는 메세지 박스를 띄운다. 여기서 유의해봐야 할 점이 디렉터리의 구조이다. login버튼 클릭시 들어가지.. 더보기 이전 1 2 3 4 다음