It 7

webhacking.kr 39번 풀이

소스코드를 봅시다. 음 몇 줄 안되네요 ㅎㅎㅎ 죠습니다. 그럼 중요한 부분만 다시 볼까요? 이번엔 id를 post 방식으로 전달하는군요 즉 URL으로는 전달을 못하나 봅니다. 코드를 다시 살펴보죠 1. id 값이 존재하면 2. id문자열 중 '\\'를 없앤다. 3. id 문자열 중 " ' "를 "''"로 바꾼다. 4. id 문자열을 15글자로 자른다. 5. member 테이블에서 id의 길이가 14보다 작고 id='(입력값)이면 문제가 풀린다. 자 그러면 여기서 중요한 것! id='{$_POST['id']} 라는 것입니다. 네 따음표가 앞에 하나밖에 없습니다. 그래서 우리가 직접 따음표 하나를 넣어서 완성해 줘야 하는데 문제는 바로 이 부분으로 인해 따음표 하나만 쓰기 힘들다는 거죠 그래서 해결방법은 마..

webhacking.kr 16번 풀이

별이 있네요? 노란별 두개, 초록(?)별 하나 그런데 여기서 초록별을 클릭하면 초록별이 사라집니다! 일단 crtl+shift+i 를 눌러 개발자 도구 창을 켜봅시다. 흠 직관적으로 봤을 때 mv()함수에 124전달되면 되는 거 같죠? 콘솔창에 그대로 실행해 봅시다. 그러면? 풀립니다 ㅎ 근데 이건 너무 간단한데요.. 이 문제가 의도한 바도 아닌 거 같고? 그래서 저는 다른 풀이방법을 고민해 봤습니다. r 그럼 이제 하나하나씩 해석해 볼까요 event.keyCode에 의해서 별이 움직여지네요. onkeypress에서 키가 눌러지면 event.keyCode가 아스키코드값으로 바꾸어 주나 봅니다. 일단 각각의 아스키코드 값을 알아보죠. 100 : d 97: a 119: w 115: s 124: | 일단 각 값..

webhacking.kr 15번 풀이

시작하자마자 상처받았네요 확인을 누르면 바로 index창으로 넘어갑니다. ctrl+shift+i를 눌러 소스코드를 봐도 아무것도 없고. 음 이 문제를 js로 alert()를 실행 후 바로 index페이지인 webhacking.kr로 가게 만드는 거 같네요. 그럼 js가 실행되지 않게 무력화해줍시다. (이건 저도 처음해봅니다 ㅎㅎㅎㅎ아이설레) 1. 크롬에서 메뉴(맨 오른쪽, 맨 위에 점 3개)에 들어갑니다. 2. 그리고 다시 15번 문제에 들어가 보면! 경고창은 안뜨고 하얀 화면만 보이죠 ㅎㅎ 여기서 소스코드를 보면? 코드를 보니 URL 뒤에 ?getFlag를 넣어주면 될 거 같네요 --그전에 JS를 다시 허용시켜 주셔야 해요!--

webhacking.kr 14번 풀이

자 그럼 먼저 개발자 도구(ctrl+shift+i)를 이용해서 소스코드를 살펴봅시다. 여기서 가장 중요해 보이는 건 ck()함수네요 하나하나 해석해 보자면 1. ul이라는 변수에 URL값을 넣습니다. 2. indexOf 함수를 이용해 '.kr'이라는 문자열의 위치를 찾아 ul변수에 저장합니다. 더보기 .indexOf(): 1. 개념: 특정 문자열이 처음으로 나타나는 위치를 반환하는 메서드 2. 문법: string.indexOf(value, start) 3. 예제: 'ABCABC'.indexOf('B') // 처음 나오는 B의 인텍스 값인 1을 반환 3. ul*30 4. ul 값과 입력값이 일치하면 해결 그럼 이제 ul값이 어떻게 변하는지 구체적으로 알아보죠 소스코드에 있는 ck()를 조금 응용해서 사용해..

webhacking.kr 5번 풀이

먼저 회원가입을 해볼까요? 아니?? 회원가입도 못하게?? 그래서 일단 Login 부터 들어가 봤습니다. 그래서 일단 mem/join.php로 찍어 봅시다! 그래도 이번에 mem/join/php에서 개발자도구를 열어 봤더니!! 그나저나 이게 단서인 것은 틀림 없습니다. 자 그럼 파이썬을 켜볼까요 그리고 이제 번역을 해 봅시다. replace()함수를 사용해도 되나 저는 그냥 print()로 하나하나 확인하면서 했습니다. if(eval(document.cookie).indexOf(oldzombie)==-1) {alert('bye');throw "stop";} if(eval(document.URL).indexOf(mode=1)==-1) {alert('access_denied');throw "stop";} el..

webhacking.kr 21번 풀이

일단 간단하게 id를 admin으로 해서 시도해 봅시다 흠 단순히 login fail이라고 나오네요 간단한 sql injection구문을 넣어봅시다 음 똑같이 나오네요? pw에 시도해 봅시다. 어 이번엔 좀 다르게 나옵니다. 이번에도 다르게 'no hack'이라고 나오네요 이번엔 'guest'로 로그인 해봤는데 빠밤 성공이라고 뜨네요! 일단 노가다로 이것저것 해 봐서 알아낸 것들은 1. 필터링 되는 문자(대소문자구분X): select 2. 필터링 안되는 문자: where, from, union, #, -- , 3. 참일 경우: worng password 4. 거짓일 경우: login fail 이렇게 긴 방황의 끝에 드디어 갈피를 찾았습니다. 바로 참과 거짓을 통해 pw를 알아내는 것이죠!! passwor..

webhacking.kr 2번 풀이

음 아이피 활용 문제인 거 같다. 일단 소스보기 링크가 없으니 알아서 봐보자 ctrl+shift+i --> 개발자도구 열기 'if you access admin.php i will kick your ass' 자 그럼 바로 admin.php에 접속해보자 secret password를 입력하면 해결되는 문제인 거 같다. 여기서도 개발자도구를 활용해 소스코드를 봤지만 건질 게 없엇다.ㅠ 단서는 바로 이전 페이지의 주석으로 된 시간에 있었다. 쿠키도 한번 봐주자 time이라는 쿠키가 들어있다. https://chrome.google.com/webstore/detail/editthiscookie/fngmhnnpilhplaeedifhccceomclgfbg?hl=ko EditThisCookie EditThisCook..