본문 바로가기

분류 전체보기

(571)
[20.04.07] Dreamhack 개념정리 - Server-side Basic Server-side(서버 사이드) 취약점 1)정의: 서버에서는 사용자가 요청한 데이터를 해석하고 처리한 후 사용자에게 응답한다. 그 과정에서 웹 어플리케이션이나 데이터베이스와 같은 서버의 자원을 사용해 처리하기도 한다. 이 과정에서 사용자의 요청 데이터에 의해 발생하는 취약점을 서버 사이드 취약점이라고 한다. 2)발생 원인: nc나 telnet과 같은 네트워크 프로그램을 통해 HTTP Request를 보낼 때는 메소드나 요청 헤더처럼 브라우저에서 조작하지 못하는 데이터도 조작하여 전송할 수 있기 때문에 서버에서는 사용자에게 받는 모든 입력 데이터를 신뢰하지 않아야 한다. (HTTP 요청 시 모든 데이터는 조작하여 전송이 가능하며, 악의적인 사용자는 이를 이용해 서버의 취약점을 확인 할 수 있게 된다.)..
[20.03.31] Dreamhack 개념정리 - Introduction of Web hacking (1) Web browser= 웹에 접속하기 위해 사용하는 소프트웨어 (2) Web resource= 웹 상에 존재하는 모든 콘텐츠(HTML, CSS, JS, PDF, PNG등) (3) URL(URI)= 리소스를 식별하기 위한 식별자 (4) HTTP= 웹을 이용하기 위한 통신규약 (5) HTTPS= 기존 HTTP 데이터를 암호화하여 통신함 (6) Cookie= 웹 브라우저에 저장하는 데이터 (7) Session= 서버에 저장하는 데이터 (8) Domain Name= 웹 네트워크 상에서 컴퓨터를 식별하는 이름 (9) Server= 인터넷상에서 사용자에게 서비스를 제공하는 컴퓨터. 그 중 웹서버는 사용자(웹 브라우저)와 HTTP를 이용하여 통신하는 서버 (10) Application= 서버에서 설정한 특정 ..
[2020.04.14] pw.Sly - pwnable.kr의 bof(2) 출석 : 모두들 정시출석 perfect, 과제 제출 perfect 학습내용 : pwnable.kr 3번 bof문제 코드 심층분석 [pwnable.kr 3번문제] Q1. 스택은 높은주소에서 낮은 주소로 쌓이는 거 아닌가? overflowme 시작 주소가 ebp-0x2c일 때 왜 위로 자라나지 않고 아래로 자라난다고 많은 write up에서 풀이되어 있는지 모르겠음. (여기서 왜 1번이 아니고2번인가?) ​ A. 수많은 글을 찾아봤으나 정확한 결론이 나지 않음. 높은 주소부터 낮은 주소로 스택이 확장되는것은 맞는것 같음. 자세한 문의는 교수님께 드려봐야 할 듯. Q2. func함수에서 mov eax, gs:0x14부터 3번째 줄까지는 무슨 일을 하는 것인가? 카나리라는 이야기를 듣긴했는데 정확히 모르겠다. ..
[2020.04.07] pw.Sly - pwnable.kr의 bof(1) 0407 pw.Sly - 달고나 문서와 이어짐. [pwnable.kr 3번문제] Q1. 박슬리 ppt를 보면 9슬라이드에서 왜 func함수가 시작되는 곳이 ebp-0x2c인가? 그 위에가 printf함수인데 그러면 이미 func이 시작된것이 아닌가? ebp-0x2c가 gets 입력받는 곳이라고 생각하면 (ebp+0x8)-(ebp-0x2c)가 이해되는데 왜 func의 시작지점인지 모르겠다. A. ppt 오타이다. 함수가 아니라 배열의 시작지점이다. 배열 overflowme의 시작부분이 ebp-0x2c 이다. func 함수의 시작은 0x0000062c이다. Q1. gdb로 뜯은 코드에서 char 배열의 시작점은 어디이며, 왜 overflowme의 시작주소가 0x2c인가? printf 이전에 선언하였는데 왜 ..
[2020.04.07] pw.Sly - 달고나 문서 ~p27 (2) 출석 : 모두들 정시출석 good 학습내용 : 달고나문서 ~p.27까지 심층공부, pwnable.kr 3번 bof문제 풀이 지난 주 잘 이해하지 못했던 달고나문서를 심층적으로 공부하고, bof 1문제를 풀어보았다. [달고나문서] Q1. 시스템이 리셋되어 초기화되면 플래그 레지스터는 왜 0x00000002의 값을 가지게되는가? A. 밑의 사진을 잘 보면 1번 비트값이 1임. 나머지가 모두 초기화된다고 하면 2진수로 00000000000000000000000000000010이고, 이는 16진수로 0x00000002이므로 시스템이 초기화되면 플래그 레지스터는 0x00000002의 값을 갖게됨. Q2. 프로그램 구동에서 -o 옵션은 무슨 옵션인가? A. 특정 파일명으로 실행 파일을 생성할 때 쓰는 옵션이다. -..
[2020.03.31] pw.Sly - 달고나 문서 ~p27 (1) 학습내용: 달고나 문서 ~p.27까지 달고나 문서의 처음부터 27페이지까지 각자 학습하고, 학습 내용을 공부하고 모르는 질문을 정리하였다. Q1. p.20에 sub명령어와 push명령어 용법이 왜 인터넷&수업자료와 다 반대일까? sub 명령어는 sub [option2][option2] 면 obtion1=obtion1-obtion2라고 하는데 설명은 왜 반대인건가? A. CPU 제조 회사에 따라 문법이 다르다. (리눅스) AT&T : 명령어 [source] [destination] (윈도우) Intel : 명령어 [destination] [source] 예시 : eax에서 ebx 레지스터로 데이터를 복사하는 경우 AT&T : movl %eax, %ebx Intel : mov ebx, eax 참고 :http..
[2020.03.31] Dreamhack 개념정리 - Client-side Basic 1. Client-side Basic Client-side 취약점의 주목적 공격자는 사용자로부터 본인을 식별하기 위한 사용자 정보, 즉 쿠키나 쿠키에 저장된 세션 아이디를 탈취해 사용자 권한을 얻거나, 사용자의 브라우저에서 자바스크립트를 실행하거나 특별한 행위를 수행하도록 하여 사용자가 보낸 것처럼 요청을 전송하는 것이 클라이언트 사이드 취약점의 주 목적 ​ 취약점이 발생할 수 있는 이유 웹 브라우저는 Stateful한 상태를 유지하기 위해 모든 HTTP 요청에 쿠키를 함께 보냄 ※ stateful: client의 이전 상태를 기록하고 있는 것 > 서로 다른 사이트인 dreamhack.io와 theori.io에서 dreamhack.io/resource1에 요청을 보내지만, 같은 쿠키가 함께 보내지는 것을..
[2020.04.07] Reversing.kr | CSHOP 문제 http://reversing.kr의 CSHOP 문제를 풀어보도록 하자. 문제를 클릭하면 CSHOP.zip 파일이 다운받아진다. zip파일을 풀고 CSHOP.exe 파일을 실행시키면 다음과 같이 회색 화면이 뜬다. Exeinfo PE 툴을 사용하여 패킹 여부와 프로그램을 제작한 언어를 확인한다. c#으로 만들어진 .net 프로그램이다. 닷넷(.NET) 프로그램? 닷넷 프레임워크(.NET Framework)는 마이크로소프트사에서 제공하는 윈도우 프로그램 개발 및 실행환경입니다. 네트워크 작업, 인터페이스등의 많은 작업을 캡슐화하여 코딩의 효율성을 증대시켰습니다. .NET의 특징은 CLS(닷넷 프레임워크의 언어가 반드시 지켜야하는 언어 스펙)을 따르는 언어라면 어떠한 언어라도 닷넷 프레임워크에서 실행가능하며..