일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 인공지능
- Database
- 기계학습
- 파일구조
- 프로그래머스
- SQL
- injection
- ReflectedXSS
- RVA
- 디피헬먼
- 알고리즘
- 웹
- 딥러닝
- 머신러닝
- dvwa
- RSA
- 암호학
- 코드업
- db
- 공개키
- codeup
- SQL_Injection
- C언어
- ImageBase
- 보안
- StoredXSS
- XSS
- dsa
- 심층학습
- Cross Site Scripting
- Today
- Total
목록정보보안 (66)
Ye0ngJae
RTL(Return To Libc) 기존의 BOF는 Shellcode를 넣어서 시작 주소로 RET를 덮어써줬다면, RTL은 실행파일과 링킹 된 Libc 안에 있는 라이브러리 함수의 주소를 ret에 넣어 변조시키는 공격 기법이다. 32bit와 64bit에서의 함수 인자 전달 방식이 다르므로 각 문제마다 RTL 방법이 다르다. 우선 RTL 기법에 대하여 알아보기 전에 PLT와 GOT를 알아둘 필요가 있다. PLT(Procedure Linkage table) 외부 라이브러리 함수를 이용할 수 있도록 주소를 연결해주는 테이블 GOT(Global Offset Table) PLT 함수를 통하여 구한 라이브러리의 절대 주소가 저장되어 있는 테이블 NX-Bit 우회 RTL 기법 혹은 ROP 기법을 이용하면 된다. RT..
메모리 보호 기법 NX Bit / DEP 보호기법 NX Bit / DEP 보호기법이란 스택이나 힙 같은 영역에서 코드가 실행되는 것을 방지하기 위하여 실행 권한을 제한함으로써 셸의 실행을 막는 기법이다. 데이터 저장 공간에서는 굳이 실행 권한이 필요하지 않기 때문에, 해당 부분에서 실행 권한을 제외함으로써 만일 셸코드가 정상 코드를 덮어도 실행권한이 없어 셸이 실행되지 않는다. 이 기법은 윈도우에서는 DEP. 리눅스에서는 NX Bit 기법이라고 부른다. 위 코드와 같이 일반적인 C코드를 컴파일 한다고 했을 때, 명령어는 다음과 같다. DEP-disabled : gcc -z execstack -o DEP-disabled DEP.c DEP-enabled : gcc -o DEP-enabled DEP.c NX ..
보호되어 있는 글입니다.
보호되어 있는 글입니다.
문제 풀이 더보기 우선 문제를 까줬다. main 함수부터 살펴보면 0xdeadbeef를 인자로 func함수를 호출하는 것을 볼 수 있다. 이제는 func 함수를 까보자. 위 어셈블리와 다른 정보를 섞어서 c언어로 바꾸어 보면 void func(??){ char overflowme[32]; printf("overflow me : "); gets(overflowme); if(key == 0xcafebabe){ system("/bin/sh"); } else{ printf("Nah.."); } } 대충 이렇다고 볼 수 있다. 따라서 그냥 위 코드대로 익스 코드를 짜주면 될 것 같다. Flag 값이 정상적으로 확인된다.
보호되어 있는 글입니다.