일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 탈중앙화
- 티스토리챌린지
- metacodem
- web security academy
- metacode
- Path Traversal
- File Upload
- web shell
- 스마트 컨트랙트
- AWS SSM
- 정처기필기
- Session Manager
- 정처기 필기
- amazon s3 트리거
- 오블완
- systems manager
- aws lambda
- 정처기
- 메타코드M
- 블록체인
- 보안 그룹
- web3
- AWS CLI
- 정보처리기사
- aws 트리거
- web3 보안
- 메타코드
- splunk db connect
- ELB
- 스마트컨트랙트
- Today
- Total
목록K-Shield.Jr (15)
min8282

이전 내용)uninitialized포인터가 가리키는 것? or 포인터로 해석되는 곳이초기화 되지 않은 더미 데이터가 있어서 여기로 접근하려다가 크래시 일어난 것임Type Confusion컴파일 하면 seg fault가 남.메모리 관점에서 생각 해봐야 됨죽는 지점은 printf에서 죽음 여기서 에러가 날거임. 디버거 실행 ㄱㄱ [] 안에 있는 값을 쓰려고 하는 것rdi 0x4d2를 인식해서 그 안을 보려고 하는 것 메모리 할당을 보기 위해 이전에 bp 지우고 main+17부터 다시 보려 한다.r 을 누르면 malloc에 멈추고ni를 누르면 malloc 함수가 끝남 rax에 힙의 주소가 담겨 있을거임 문자열은 반드시 주소라고 생각어떤 값이라기 보다는 어떤 값을 가리키는 주소를 뜻함.int 형정수는 4D2..

함수 중단.이때 rdi값 확인rdi에 정상적인 값.rdi의 전/후 값 비교 잘해야 함ni해서 넘어가면ni하고 rdi의 주소값을 확인해서 안에 든 내용을 확인 해보니까 주소값이 아닌 다른 이상한 게 들어 있음컨티뉴 해서 삭제한 인덱스의 내용을 확인하려 하니까 segmentation 에러가 남멈춘 위치을 보니까 rdi의 주소값을 뭐 어떻게 했는데 fault가 떴기 때문에 rdi에서 문제가 있음을 알 수 있음그래서 bt(back trace?)로 확인 해보니까 printf 쪽 문제 확인. 여기는 readData함수 발생 시 나오는 printf를 찾음pd readData로 전체 확인하고, 227번째에서 prin를 call하는 것 확인 여기에 bp 걸고 다시 분석 시작 진행bp 1번 지우고,read해서 에러 나게두..

2. Out-Of-Boundary사용자 입력에 대한 검증이 없어 범위를 벗어나는 곳의 데이터를 접근할 수 있는 취약점 버퍼 오버플로우 vs. OOB버퍼 오버플로우 같은 경우는 프로세스 흐름을 공격자가 원하는 흐름으로 바꾸기 위해 메모리 상의 복귀 주소를 변조(공격자의 입력값으로 덮어씌움) 시켜 공격자가 원하는 주소를 실행하게 하고, OOB는 사용자 입력에 대한 검증이 없어서 입력 범위를 벗어나는 곳의 데이터를 접근할 수 있는 차이가 있다. 실습 전 코드 실행 및 확인)코드를 보면 알다시피 번호를 입력하면 버퍼에 있는 해당 번호의 값을 출력해주는 프로그램이다.gdb 실행)gdb를 이용하여 oob 파일 분석 시작main 함수 디스어셈블링 수행 실행 흐름과 스택 할당 살펴보기)PUSH rbp : rbp를 스..

프로그램사람의 언어인 소스코드를 컴파일이라는 과정을 통해 프로그램으로 만들어준다.따라서, 컴퓨터가 실행할 수 있는 언어로 변환 과정이 필요한데, 이것이 컴파일과 링킹이다.실행 가능한 상태 = 프로그램프로세스프로그램은 실행 가능한 상태일 뿐, 실행되지 않은 정적인 상태이다.프로그램이 실행되기 위해선 메모에 적재(Load)되는 과정이 필요하고, 메모리에 적재된 프로그램은 실행 중인 상태인 '프로세스'가 된다리버스 엔지니어링목적)이미 만들어진 프로그램 동작 원리 이해, 유사 프로그램 제작프로그램의 보안 문제, 동작 문제, 오류 등을 이용, 제품 출시 전 문제점과 오류 제거/검토시스템 해킹을 위한 프로그램의 취약점 식별 정적 분석프로그램을 실행하지 않고, 디스어셈블러 혹은 디컴파일러를 통해 프로그램의 동작을 파..

memory corruption발생하면 컴퓨터가 종료될 수 있는 논리 커럽션컴퓨터 입장에서는 할 일 하는데 사람이 확인 안 해서? 발생하는 것 개발을 진행할 때 int형 변수는 사이즈, 범위, 크기 등을 넣을 때 자주 사용한다.이 범위가 달라지거나 변조되면 큰일이 나겠죠? ->> 메모리 커렵션unsigned int 값은 음수를 제외하고 0~4,294,967,295까지 가능max에서 +1을 하면?0x100000000(16진수) = 4,294,967,2951을 더하는 순간 4바이트를 넘어가게 됨. 5바이트가 됨.근데 int 형이라고 선언을 했기 때문에 integer overflow가 발생?? max에 +1을 하면 5바이트가 되는데 컴퓨터는 4바이트까지만 넣어 주게 됨. 그럼 이 경우에는 0x100000000..