본문 바로가기

전체 글

(99)
webhacking.kr 20번 20번을 들어가면 이렇게 값을 입력하는 창이 뜹니다. 바로 소스코드를 확인해보겠습니다. 크게 별다른 것은 없지만 조건을 만족하지 않으면 focus()를 통해 해당 입력창에 커서로 넘어가게 됩니다. 즉 조건을 모두 만족해주어야 할 것 같습니다. 그래서 아래처럼 직접 입력해주면 너무 느리다는 문구가 나옵니다. 화면에 뜨는 시간 2초 제한이 실제로 걸려 있는 것 같습니다. 여기서 막혀서 열심히 검색을 해보니 console창을 이용해 자바 스크립트 변수의 값을 지정해 놓을 수 있다는 사실을 알았습니다. 이렇게 조건문에 맞게 값을 설정해두면 직접 입력할 필요 없이 원하는 변수의 값이 알아서 설정되게 됩니다. 이 문제를 통해 개발자 도구의 console을 이용하는 방법 한 가지를 더 배우게 되었습니다. 위의 그림처..
webhacking.kr 19번 이번 문제는 제가 실수로 풀기 전에 문제 초기 부분을 캡쳐를 해놓지 못했습니다. 그래서 다른 블로그 글의 사진으로 대체합니다. 가장 처음 접속하면 위와 같은 화면이 뜨고 제출버튼을 누르게 되면 아래처럼 admin이 아니라고 뜹니다. 항상 풀었던 방법처럼 소스코드를 먼저 보겠습니다. 소스코드를 봐도 무엇인가 힌트를 얻을만한 부분이 보이지 않습니다. 처음에는 gtools_scp_screen_capture_injected="true" 이 부분을 변조하거나 이용해서 푸는 문제인가 싶어서 열심히 찾아보았지만 별다른 내용이 나오지 않았습니다. 그래서 admin을 guestfh 바꾸고 제출을 눌러보니 이렇게 뜨면서 오류는 뜨지 않지만 로그아웃이 되지 않습니다. 그래서 생각하다가 많이 출제되는 유형 중 하나인 쿠키 값..
webhacking.kr 17번 17번은 14번과 유사하게 문자를 넣는 공간과 버튼 하나가 존재합니다. 바로 소스코드를 보겠습니다. unlock이라는 변수에 복잡하 사칙연산이 적혀있고, 이 계산의 결과를 login.pw.value와 비교하여 같을 경우 문제가 풀리는 것처럼 보입니다. 즉, unlock의 값을 계산해서 페이지에 존재하는 form에 넣으면 될것 같습니다. 계산은 난독화된 코드를 쉽게 해석해주는 개발자 도구의 console 창을 이용하면 간단하게 구할 수 있습니다. 이렇게 넣어주면 바로 결과 값이 화면에 보입니다. 이 값을 넣어주면 깔끔하게 문제가 풀립니다. console 부분을 사용해본 사람이라면 간단하게 풀 수 있는 자바스크립트 문제였습니다.
webhacking.kr 16번 16번도 자바스크립트 문제입니다. 문제에 들어가면 이러한 그림말고는 별다른게 보이지 않습니다. 소스코드입니다. 이 문제에서 핵심은 onkeypress였습니다. onkeypress는 키보드의 키가 눌렸을 때, 어떤 동작을 해주는 이벤트 핸들러입니다. 아래의 링크에 들어가서 직접 해보면 확실하게 이해할 수 있습니다. crivius.tistory.com/3 [HTML] onkeypress, onkeyup, onkeydown 사용법 onKeydown(KeyCode 값) : 사용자가 키보드의 키를 눌렀을 때 onKeyup(KeyCode 값) : 사용자가 키보드의 키를 눌렀다가 땠을 때 onKeyPress(ASCII 값) : 사용자가 키보드의 키를 눌렀을 때 정확히 어떤 경우에 발생 crivius.tistory.c..
webhacking.kr 14번 14번을 들어가면 위와 같은 화면이 뜹니다. 어떤 값을 입력할 수 있습니다. 소스 코드도 간단합니다. 버튼이 있고 그 버튼은 ck()함수를 통해서 동작합니다. 그러면 ck 함수를 분석해보겠습니다. 먼저 변수 ul에 document.URL의 값을 저장합니다. document.URL은 현재 URL을 문자열 형태로 가져오기 때문에 현재 ul에는 페이지의 URL이 문자열 형태로 저장되어 있습니다. 그리고 ul.indexof(".kr")을 해석하면 ul에서 .kr이 위치한 인덱스 정보를 반환합니다. 자세한 내용은 아래의 링크를 참고하면 도움이 됩니다. developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/String/indexOf String..
ctf sutdy #1 ctf 웹 문제를 분석하거나 풀어보면서 공부하는 스터디 글입니다. 1. ctf 문제 2020년 X-MAS CTF의 World's most complex SQL Query를 선택해서 라업을 분석했습니다. 라업은 아래의 라업을 보면서 분석했습니다. eine.tistory.com/entry/Xmas-CTF-2020-write-ups-focus-on-web-challs [Xmas CTF 2020] write ups (focus on web challs) I participated in X-mas CTF 2020(xmas.htsp.ro/) held from 11st december 2020, to 18th december 2020. X-mas CTF is one of my favorite competition b..
webhacking.kr 12번 이런 코드가 존재하는데 저번에 풀었던 문제처럼 난독화가 되어 있는 것 같았습니다. 여기서 어떻게 푸는지 도저히 모르겠어서 찾아보니 마지막 부분의 ('_') 을 없앤 뒤 console창에 넣어주면 아래의 코드가 나옵니다. (function anonymous( ) { var enco=''; var enco2=126; var enco3=33; var ck=document.URL.substr(document.URL.indexOf('=')); for(i=1;i
webhacking.kr 11번 view-source 이 문제 역시 소스코들 분석하는 문제입니다. 소스 코드 분석은 굉장히 간단합니다. pat의 값과 get 방식으로 전달한 val의 값이 같으면 문제가 풀립니다. 그렇다면 pat이 어떤 값을 가지는지 분석해서 전달하면 될 거 같습니다. # pat(정규표현식) 분석 정규표현식 분석 자료는 아래의 링크를 참고해서 분석했습니다. www.nextree.co.kr/p4327/ 정규표현식(Regular Expression)을 소개합니다. 날이 갈수록 개인정보 보호에 관련하여 보안정책을 점진적으로 강화하고 있습니다. 이에 따라 Web에서 회원가입 시 Password 설정을 복잡해진 보안정책에 맞추다 보니 복잡하게 조합해야만 정상적 www.nextree.co.kr 1. 양끝 // : 정규표현식임을 알..