일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 정보보안기사 실기
- Operating System
- 해킹
- 워게임
- Lord of BOF
- Payload
- BOF
- Shell code
- pwnable
- 네트워크
- system hacking
- PWN
- Pwnable.kr
- System
- hacking
- 웹해킹
- Spring
- stack overflow
- Spring MVC
- 정보보안기사
- webhacking.kr
- LOB
- webhacking
- SQL
- Buffer Overflow
- Spring Framework
- 정보처리기사 실기
- 운영체제
- OS
- wargame
- Today
- Total
목록IT 보안 (18)
DongDD's IT
Register 및 어셈블리어 정리 레지스터 IA-32 레지스터- Intel에서 만든 32bit 크기의 레지스터- 32bit(4bytes) 데이터를 한번에 처리 가능- 32bit 크기로 메모리 주소 접근 가능 범용 레지스터 : 연산에 사용되는 레지스터1) EAX : 산술, 논리 연산에 사용되는 레지스터, 함수 리턴 값 전달용도로도 사용된다.2) EBX : 간접 주소 지정 시 사용되는 레지스터3) ECX : 루프문에서 반복 명령 수행 시 반복 횟수를 저장하기 위해 사용하는 레지스터4) EDX : 간접 주소 지정에서 사용되는 레지스터이고 곱셈, 나눗셈 시 보조 연산 레지스터로 사용된다. 포인터 레지스터 : 주소를 가리키는 포인터 용도로 사용되는 레지스터1) ESP(Stack Pointer) : 가장 최근에 ..
리버싱 예제 - abex crackme1 Problem abex crackme1.exe을 실행 시 "Make me think your HD is a CD-Rom"이라는 메시지를 볼 수 있다. 이 상태에서 확인을 누르면 "Nah... This is not a CD-ROM Drive!"라는 창이 나타난다. 즉, CD-ROM을 사용중이지 않기 때문에 Error message가 나오는 것이고 이것을 디버깅을 통해 CD-ROM으로 인식하도록 바꾸는 문제이다. Analysis 먼저 프로그램이 어떻게 작성되어 있는지 확인하기 위해 Ollydbg를 통해 프로그램을 실행시켜보았다.Entry point인 0x401000에서 시작을 하고 처음에 바로 MessageBox를 호출한다. 위에서 보았던 "Make me think ..
리버싱 도구 소개 PEView Download : http://wjradburn.com/software/ - PEView : 윈도우 용 실행 파일인 PE(Portable Executable)의 구조를 분석할 수 있는 프로그램- PE File Header의 내용을 볼 수 있고 여러 정보들을 얻을 수 있다. PEView 실행 시 나오는 초기 화면으로 open할 파일을 선택하여 open하면 PE파일에 대한 정보를 볼 수 있다. 이후에 포스팅할 Reversing을 공부하기 위한 abex시리즈의 첫 번째 예제를 PEView로 열어보았다.앞선 포스팅에서 설명 했던 PE 파일의 구조를 볼 수 있다.PE 파일 설명 : http://dongdd.tistory.com/79 왼쪽에는 PE 파일의 구조가 있고 IMAGE_NT..
리버싱 기초 지식 Reversing - Reverse Engineering(역공학)이라고 불림- 어떤 장치나 시스템 등의 구조, 기능, 동작을 분석하고 원리를 이해하여 단점을 보완하고 새로운 아이디어를 추가하는 작업을 의미한다. 분석 방법1) 정적 분석- 실행 단계가 아닌 파일에 대한 여러 정보를 가지고 분석하는 방법- 디스어셈블러를 통해 내부 코드와 구조를 확인하는 것도 포함된다.2) 동적 분석- 파일을 실행시킨 후 동작을 분석하는 방법- 파일이 실행되면서 변화되는 여러 정보를 파악한다.- Debugger를 통해 프로그램 내부 동작 원리를 분석한다. 컴퓨터의 기본 구성요소 1) CPU2) Memory3) Hard disk : 실행 가능한 파일(exe)이 저장됨-> 윈도우에서는 실행 파일을 PE(Port..
HTTP Response Splitting (HTTP 응답분할) HTTP Response Splitting- HTTP Request에 있는 파라미터가 HTTP Response 헤더로 다시 전달되는 경우 파라미터내에 CR, LF가 있는 경우 HTTP 응답 분할이 일어날 수 있음- CRLF를 통해 응답을 2개 이상으로 분리 ref) CRLF - 보통 HTTP 헤더의 끝 라인에 들어가 각 라인을 구분하는 구분자로 사용- CR : Carriage Return (%0D)-> 커서의 위치를 맨 앞으로 옮김- LF : Line Feed (%0A)-> 새로운 라인을 만듬 HTTP 응답 분할 Injection- CRLF를 이용해 생기는 취약점을 통해 HTTP Response에 악의적인 코드나 스크립트를 삽입해 XSS를 ..
Cross Site Scripting (XSS) Cross Site Scripting- SQL Injection과 마찬가지로 기초적인 웹 어플리케이션의 취약점 중 하나- 악의적인 의도를 가진 해커가 웹 페이지에 악성 스크립트를 삽입할 수 있는 취약점- 사용자의 정보를 얻어내거나, 비정상적인 기능을 수행하게 만들 수 있음 Cross Site Scripting 종류1) Stored XSS- Data 입력 폼을 통해 script를 삽입하는 방법- 이 입력 폼을 통해 script를 삽입하면 다른 사용자가 이 script가 삽입된 페이지를 읽을 경우 script가 수행되게 된다. Example) PHP로 구현된 간단한 게시판에서 TEST PHP로 구현한 게시판에서 다음과 같이 script를 삽입해보았다.아무런 필..
SQL Injection SQL- 데이터베이스의 Data를 관리하기 위한 특수한 목적의 프로그래밍 언어 SQL Injection- 웹 어플리케이션이 Database에 접근하는 과정에 일반적이지 않은 query를 공격자가 악의적으로 임의의 query 구문을 실행하는 기법- Code 인젝션 기법 중 입력 값을 조작하여 데이터베이스에 접근, 공격할 수 있는 기법- 악의적인 SQL을 실행시키면서 데이터베이스를 조작할 수 있는 Code 인젝션 SQL Injection 종류1) 논리적 에러를 이용하는 SQL Injection- 논리적 에러를 발생시킬 수 있는 패턴을 이용한 인증 우회 기법 Example) SELECT * FROM user WHERE user_id='$id' AND user_pw = '$pw' - 위..
Buffer overflow Stack overflow - stack overflow는 기본적으로 프로그램의 오류 중 buffer overflow의 한 종류이다.- stack이 프로그램 실행 시 할당된 사이즈를 넘어갈 때 일어난다.- 이러한 stack overflow로 인해 취약점이 생길 수 있다. - 기본적으로 stack에 이러한 순서로 쌓이게 된다.- buffer가 20bytes라면 그 뒤에 4bytes의 sfp, 함수가 끝난 후 돌아갈 return값 4bytes, parameter 이런 순으로적재가 된다. Saved frame pointer(SFP) : 함수의 실행이 끝나고 이전 함수로 돌아가기 위해 이전 함수의 ebp를 저장해둠 Stack corruption에서는 RET의 값을 변조시켜 함수가 끝..