전체 글 (26) 썸네일형 리스트형 [Webhacking.kr] Challenge 39 문제에 접속하니 입력란과 소스코드를 보는 페이지가 있다. 일단 아무거나 입력해보자. 제출 버튼을 누르면 ?? 아무런 반응이 없다. 그러면 다음으로 소스코드를 한번 보자 필요한 부분만 가져와서 한줄씩 분석해보자. $db = dbconnect(); if($_POST['id']){ $_POST['id'] = str_replace("\\","",$_POST['id']); $_POST['id'] = str_replace("'","''",$_POST['id']); $_POST['id'] = substr($_POST['id'],0,15); $result = mysqli_fetch_array(mysqli_query($db,"select 1 from member where length(id) .. [Webhacking.kr] Challenge 12 요즘 좀 바빠서 글을 자주는 못 올릴것 같지만 최대한 열심히 올려보겠습니다. 문제에 들어가니 javascript challenge라고 한다. 한번 소스코드를 살펴보자. ??? 무슨 텍스트 얼굴들이 가득하다.. 소스코드를 가져와도 의미가 없을것 같으니 일단 풀어보자.. 처음에 어떻게 풀지 고민을 많이했다. 저것들을 의미없이 넣은건 아닐거고 특히 코드 처음 부분에 주황색이 있는걸 보아 저걸 코드로 인식하는것 같은데.. 계속 서칭을 해보니 자바스크립트 난독화라는걸 알게되었다.(다른 언어도 가능) 난독화란? 쉽게 말해 다른사람들이 읽기 어렵게 코드를 바꾸는것을 말한다. 이를 하는 이유는 나의 코드를 직접적으로 숨겨 다른 사람들이 이해하지 못하게 하기 위하거나코드의 가독성을 낮춰 역공학을 막기 위함이다(역공학.. [Webhacking.kr] Challenge 26 문제에 접속하면 view-source 가 있다 이를 한번 눌러보자 소스코드를 보니 처음 보는 함수가 있다. 이를 한번 알아보자 preg_match : 특정 문자열이 패턴에 부합하는지 검사하는 함수preg_match('/검사할 문자/', '입력한 문자') preg_match란 쉽게 말해 입력한 문자에서 특정 문자가 있는지를 찾고싶을 때 사용하는 함수이다. 이를 예시코드로 쉽게 알아보자. 먼저 변수 my_name 에는 이름을 저장하고 preg_match 함수로 이름에 z 가 있는지 체크해 있다면 "There is a 'z' "를 출력하는 코드를 실행시켜보자 이런식으로 쓰이는 함수가 preg_match 이다 다시 문제로 돌아와서 id 값에 admin이 들어있으면 no!를 출력하는걸로 보아 바로 값을 .. [Webhacking.kr] Challenge 6 이번 문제는 조금 어려웠다.. 한번 같이 풀어보자 문제에 들어가보니 view-source 와 ID, PW가 보인다(원래는 ID : guest , PW : 123qwe) 우리가 할 수 있는건 소스코드를 보는것밖에 없으니 한번 눌러보자 헐..(밑에 잘림) 뭔가 복잡해보인다... 일단 소스코드를 가져와보겠다..더보기"); exit;}?>view-source");echo("ID : $decode_idPW : $decode_pw");if($decode_id=="admin" && $decode_pw=="nimda"){ solve(6);}?>(너무 길어 편의상 접어놓겠다.) 복잡해보이지만 포기란 없다! 일단 차근차근 살펴보자 if(!$_COOKIE['user']){ $val_id="guest"; $val.. [Webhacking.kr] Challenge 17 문제에 접속하니 이런 입력란만 있다. 한번 아무거나 입력해보자! hello라고 입력하니 틀렸다고 한다. 한번 개발자모드를 눌러 확인해보자. 흠... 일단 스크립트 부분을 가져와보겠다. unlock=100*10*10+100/10-10+10+50-9*8+7-6+5-4*3-2*1*10*100*10*10+100/10-10+10+50-9*8+7-6+5-4*3-2*1*10*100*10*10+100/10-10+10+50-9*8+7-6+5-4*3-2*1*10*100*10*10+100/10-10+10+50-9*8+7-6+5-4*3-2*1*10/100*10*10+1/10-10+10+50-9*8+7-6+5-4*3-2*1*10*100*10*10+100/10-10+10+50-9*8+7-6+5-4*3-2*1*10+100*10*.. [Webhacking.kr] Challenge 16 문제에 접속해보면 별을 볼 수 있다(뭐지?) 우리가 지금 화면에서 할 수 있는건 없으니 F12를 눌러보자! 흠.. 뭔가 길다.. 일단 스크립트 부분을 가져와보겠다. document.body.innerHTML+="*";function mv(cd){ kk(star.style.left-50,star.style.top-50); if(cd==100) star.style.left=parseInt(star.style.left+0,10)+50+"px"; if(cd==97) star.style.left=parseInt(star.style.left+0,10)-50+"px"; if(cd==119) star.style.top=parseInt(star.style.top+0,10)-50+"px"; if(cd==115).. [Webhacking.kr] Challenge 14 문제를 눌러 들어가게 되면 ... 입력란 말고 아무것도 없다.. 일단 입력란이 있으니 아무 말이나 적어보면 틀렸다고 나온다(뭐지??). 우리에겐 개발자도구가 있으니 F12를 눌러 소스코드를 보자 이런.. 알듯말듯한 코드들이 있다.. 지난 게시글에선 자세하게 알아보지 않았지만 그러면 공부가 안될것같으니 오늘부턴 코드를 한줄한줄 분석해보겠다! function ck(){ var ul=document.URL; ul=ul.indexOf(".kr"); ul=ul*30; if(ul==pw.input_pwd.value) { location.href="?"+ul*pw.input_pwd.value; } else { alert("Wrong"); } return false;} function ck() 먼저 첫.. [Webhacking.kr] Challenge 1 오늘도 무작정 문제를 풀어보며 관련 지식들을 공부해보도록 하자 문제에 들어가보니 이런 화면이 뜬다. 화면에 보이는 view-source을 한번 눌러보자! 뭔가 복잡해보인다.. 일단 자세히 보면cookie, user_lv들이 자주 나오는것을 알 수 있다. 이때 우리가 알아야 할 정보는 쿠키이다. 쿠키란 방문한 웹사이트에서 생성된 파일로 주로 사용자 이름, 비밀번호, 설정 등이 들어가있다. 쉽게 말해 서버가 우리가 누구인지 기억하기 위해 만들었다고 생각하면 된다. 우리가 처음 웹사이트에 들어가서 로그인을 하면 서버는 이를 쿠키에 저장하고다음에 들어올 때 서버에 저장된 쿠키값이랑 현재 나의 쿠키값(브라우저가 가지고있음.)이랑 비교해 맞으면 컴퓨터가 '나'라고 인식하게 된다. 하지만 만약 쿠키값을 변조할.. 이전 1 2 3 4 다음