webhacking.kr 44번 풀이 소스코드를 보니, ls명령어를 실행시켜야 할 거 같습니다. id입력을 이용해서 해 봅시다. id --> ';ls' system("echo 'hello! ';ls''"); 그러면 위와 같은 문장이 나타나는 데요, 맨 앞의 hello!는 제외하고 뒤에 있는 파일 두가지가 보입니다. index.php는 현재 우리가 있는 곳이니 flag_29~로 이동해 볼까요? 그러면 flag가 나타납니다. 복붙해서 auth에 입력합시다. 보안 공부/webhacking.kr 2022.01.21
webhacking.kr 56번 풀이 BOARD에 admin과 guest에 대한 정보고 table 형식으로 있습니다. readme에 들어가면 access denied 라고 뜨고, hi~에 들어가면 hello~ 라고 뜹니다. 일단 소스코드와 쿠키에선 얻을 게 없었고, search칸에 이것저것 입력해 보았는데, hello값을 입력했을 때, guest에 대한 정보가 뜹니다. 그리고 h만 입력해도 guest에 대한 정보가 뜹니다. 아마도 search기능은 각 파일의 내용에서 해당하는 글자를 찾아주는것 같습니다. 그럼 당연히 admin에는 flag~가 있겠거니 싶어서 f를 검색해 보니까, 창에 admin이 떳습니다. 그리고 이것저것 시도해 보았습니다. 시도를 하면서 알게 된 것을 정리하자면, c언어의 strstr함수 아시나요?? 바로 문자열 속에서 .. 보안 공부/webhacking.kr 2022.01.16
webhacking.kr 54번 풀이 맨 처음에 문제에 들어가면 Password is 뒤에 무슨 글자들이 빠르게 지나갑니다. 흠 이게 뭘까요 일단 Ctrl+Shift+i를 통해 개발자 도구를 열어봅시다. 저희가 집중해야 할 건 answer()함수입니다. answer()함수의 첫번째, 두번쨰 if문들을 고쳐야 하는데요 aview.innerHTML+=x.responseText; i++; if(x.responseText) setTimeout("answer("+i+")",20); if(x.responseText=="") aview.innerHTML+="?"; 위의 부분을 추가해 줍니다. 그리고 부분을 콘솔창에서 실행시켜 주면? 플래그가 나타나게 됩니다!! 이 플래그를 복사해서 Auth메뉴에 들어가 입력하면 성공입니다. 보안 공부/webhacking.kr 2021.12.07
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 2021.12.06
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 2021.12.06
webhacking.kr 15번 풀이 시작하자마자 상처받았네요 확인을 누르면 바로 index창으로 넘어갑니다. ctrl+shift+i를 눌러 소스코드를 봐도 아무것도 없고. 음 이 문제를 js로 alert()를 실행 후 바로 index페이지인 webhacking.kr로 가게 만드는 거 같네요. 그럼 js가 실행되지 않게 무력화해줍시다. (이건 저도 처음해봅니다 ㅎㅎㅎㅎ아이설레) 1. 크롬에서 메뉴(맨 오른쪽, 맨 위에 점 3개)에 들어갑니다. 2. 그리고 다시 15번 문제에 들어가 보면! 경고창은 안뜨고 하얀 화면만 보이죠 ㅎㅎ 여기서 소스코드를 보면? 코드를 보니 URL 뒤에 ?getFlag를 넣어주면 될 거 같네요 --그전에 JS를 다시 허용시켜 주셔야 해요!-- 보안 공부/webhacking.kr 2021.12.06
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 2021.12.06
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 2021.12.05
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 2021.12.05
webhacking.kr 3번 풀이 첫화면에 게임이 나온다 일단 간단한 문제니까 풀어보자 (프로그래밍과 관련 1도 없으니까 그냥 위 사진 보고 따라하셔도 됩니다. ) 게임방법 --> https://ko.wikipedia.org/wiki/%EB%85%B8%EB%85%B8%EA%B7%B8%EB%9E%A8 노노그램 - 위키백과, 우리 모두의 백과사전 노노그램(영어: Nonogram, 일본어: お絵かきロジック 오에가키로짓쿠[*])은 일본의 퍼즐 게임이다.[1] 각각 적혀있는 숫자를 보면서 숨겨져 있는 숫자를 예상하여 지워나가면서 그림을 그리는 게임 ko.wikipedia.org 처음에 answer에 단서가 있는 줄 알고 십진법으로 돌려봤지만 ㅎ 저건 그냥 모노그램의 답이였다. 일단 ctrl+shift+i 로 개발자 도구를 열어봐도 얻는게 달리 없.. 보안 공부/webhacking.kr 2021.12.04