전체 글 (104) 썸네일형 리스트형 [WebHacking] webhacking.kr 17번 문제 풀이 처음들어가면 이런 화면이 나오는데 아무런 정보가 없어 소스보기를 해보았다. 그럼 위와같은 창이 나오는데 script부분에 unlock하고 이상한 숫자들이 연산되어있다. Unlock이 저 연산인것으로 볼때 저 값들을 계산한 값이 이 문제의 키워드 같다. function sub(){ if(login.pw.value==unlock){ location.href="?"+unlock/10; } else{ alert("Wrong"); } } 그 후 밑에 보니까 if문을 사용해 login.pw.value값이 unlock과 같으면 정답이 풀리고 그것이 아니면 안풀린다는 코드같다. 그래서 구글 콘솔을 사용해 저 이상한 값들을 연산해보았다. 그 후 연산한 값인 7809297.1를 입력하니까 문제 풀기 성공~~~ 고찰:이 문.. [WebHacking] webhacking.kr 6번 문제 풀이 6번 처음 6번문제를 들어가고 난후 웹사이트에 아무런 힌트가 없는거 같아 view.source를 눌렀다. 그 후 아래와 같은 코드가 나왔다. 들어가자마자 코드를 확인하는데 처음 푸는 웹해킹 문제라 그런지 아는 함수나 문구등이 별로 없었다. 그래서 살펴보다가 마지막에 if($decode_id=="admin" && $decode_pw=="nimda"){ solve(6); 디코딩한 id가 admin이고 디코딩한 pw가 nimda이면 6번 문제가 풀린다는 의미 같다고 생각을 했다. 그 후 위에서부터 차례대로 모르는 함수들을 찾아보기 시작했다. if($_GET['view_source']) view_source(); if(!$_COOKIE['user']){ $val_id="guest"; $val_pw="123qwe.. [Reversing] 간단한 문제 풀이 2 처음 문자열 순으로 정리를 하고 Congratulations가 있는 부분으로 점프해 살펴보니 401135부분으로 가면 Inconnect가 되 답을 풀지 못한다. 그래서 401135로 가는 4가지 부분을 종단점으로 설정하고 Ctrl + F9를 눌러 아무 문자나 입력하고 실행을 했다. 그러니 이부분에서 걸렸다. 코드를 자세히 살펴보니까 esp +5인 부분이 61의 아스키코드 값인 a이면 push2부분으로 무사히 넘어가는 코드였다. 그래서 esp+5의 자리인 2번째 자리에 a를 입력한다. 이 부분에서 아스키코드 값인 5y의 password 위치를 찾기 위해 AaAAAAAAAAA를 입력해 보았는데 3번째 자리인 A부터 순서대로 ecx에 기록되는 것을 알았다. 그래서 5y는 3,4번쨰 자리에 입력한다 그 후 R3.. [Reversing] 간단한 문제 풀이 1번 : push ebp //프롤로그 mov ebp,esp //프롤로그 sub esp,0x32 //esp를 -32한 곳의 영역으로 옮긴다. mov DWORD PTR [ebp-0x4],0x1 // ebp-4에 1을 넣는다. mov DWORD PTR [ebp-0x8],0x2 // ebp-8에 2을 넣는다. mov DWORD PTR [ebp-0x12],0x3 // ebp-12에 3을 넣는다. mov edx,DWORD PTR [ebp-0x4] // ebp-4에 있는 1을 edx에 넣는다. mov eax,DWORD PTR [ebp-0x8] // ebp-8에 있는 2을 eax에 넣는다. add eax,edx // eax와 edx를 더해서 eax에 넣는다. -> eax = 3 mov DWORD PTR [ebp-0x1.. [Pwnable] dreamhack Basic_BOF #2 문제 풀이 IDA 를 이용해 열면 위와 같은 그림이 나오고 이를 F5 키를 사용해 코드 형태로 바꿔주면 다음과 같은 main 부분이 나온다. S 라는 문자형 데이터가 존재하고 v5 라는 포인터와 fgets 를 이용해 133byte 까지 받도록 하는 것이 가장 눈에 띈다. 그리고 이 코드 내에 존재하는 함수들을 다 살펴 보았는데 Shell 함수가 눈에 띄었다 이 함수를 이용해 권한을 획득하면 되겠다고 감을 잡았고 shell 함수를 어셈블리어로 보았을 때 시작 주소가 804849B 라는 것을 확인 할 수 있었다 그 후 스택 구조를 살펴 보았는데 위와 같이 s 와 var_c(v5)의 거리 차가 128byte 라는 것을 이용해 128byte 만큼 아무 문자를 집어 넣고 shell 함수를 실행하면 되겠다는 생각을 가졌다. .. [Pwnable] dreamhack basic_exploitation_000 문제 풀이 먼저 문제를 살펴보면 아무런 보호기법이 없다는 것을 확인 할 수 있고 canary와 같은 까다로운 보호기법을 생각하지 않아도 된다는 정보를 얻고 시작한다. 소스코드를 살펴보면 다음과 같은데 일단 main 안쪽부터 살펴보면 buf가 0x80이란 크기로 할당 되어 있고 initialize 함수 실행 후 printf를 이용해 현재 buf의 주소값을 프린트한 후 scanf를 이용해 buf에 최대 141바이트까지 입력 받는다는 것을 알 수 있다. 여기서 주목 해야 할 점은 buf 의 크기가 0x80, 즉 128 바이트이지만 scanf 로 받는 최대 바이트의 크기는 141 바이트라는 점이다. 이점을 이용해 bof 를 발생 시킬 수 있다는 점이 이 문제의 핵심 포인트이다. 추가로 다른 initialize 와 alar.. JSON JSON(JavaScript Object Notation) JSON은 좀 더 쉽게 데이터를 교환하고 저장하기 위하여 만들어진 텍스트 기반의 데이터 교환 표준 JSON은 텍스트 기반이므로 어떠한 프로그래밍 언어에서도 JSON데이터를 읽고 사용 가능 JSON의 특징 JSON은 JS를 확장하여 만들어졌다. JSON은 JS 객체 표기법을 따른다. JSON은 사람과 기계가 모두 읽기 편하도록 고안되었다. JSON은 프로그래밍 언어와 운영체제에 독립적이다. JSON 타입 Number String Boolean Object Array Null JSON 예시 기본 { "age": 30, "weight": 68.2, "marriage": false } 객체 표현 { "dateOfBirth": { "year": 1980,.. Web Server VS WAS Server Web Server 클라이언트(사용자)가 웹 브라우저에서 어떠한 페이지를 요청을 하면 웹 서버에서 그 요청을 받아 정적 컨텐츠를 제공하는 서버이다. 여기서 정적 컨텐츠란 단순 HTML문서, CSS, JS, 이미지, 파일 등 즉시 응답가능한 컨텐츠이다. 대표적인 예로 Apache를 들 수 있다. WAS 웹 서버와 웹 컨테이너가 합쳐진 형태로, 웹 서버 단독으로는 처리할 수 없는 DB의 조회나 다양한 로직 처리가 필요한 동적 컨텐츠를 제공한다. WAS는 JSP, Servlet 구동환경을 제공해주기 때문에 웹 컨테이너 혹은 서블릿 컨테이너라고도 불린다. 대표적인 예 : Tomcat, JBoss 참고로 WAS로도 정적인 컨텐츠를 처리 가능하다. but 정적처리를 WAS로 하게 되면 부하가 많이 걸려서 좋지는 않.. 이전 1 ··· 6 7 8 9 10 11 12 13 다음