pwndbgpwntoolsDreamhack CTF Season3 문제를 풀다보니 시스템해킹도 재미있어서 공부 시작! 우선 문제를 실행부터 해보자노란색 = Buffer 파란색 = SFP초록색 = RET
[리눅스] COREDUMP 파일이 보이지 않을때 해결하는 두가지 방법 scanf("%s", buf) 공백을 문자열의 끝으로 인식하기 때문에 쉘코드 중간에 공백이 있을 경우 뒤가 다 털린다 (, , , , , )
stack canary스택 분석문자열 비교하는 부분이 순서대로 F, P, E인걸 알 수 있다이걸 참고하여 디버깅을 해보면F -> 입력값을 \[ebp - 0x88] 에 저장한다 / box 주소E -> 입력값을 \[ebp - 0x90]에 저장한다 / name_len 주소E
Return to Library예전에 풀었던 시스템 문제인데 복습하는 겸 다시 정리해보려 한다제일먼저 checksec을 통해 해당 프로그램에 적용된 보호기법을 확인해보자카나리가 적용되어 있으며, NX enabled라서 쉘코드를 작성해도 실행이 안된다문제에서 제공한 c코
File DescriptorBru1s3rs팀 과제로 시스템문제를 풀게되었다pwnable.kr 사이트의 간단한 문제이다우선 제공된 파일을 알아보자특별히 적용된 보호기법은 없는 것 같다c코드를 살펴보면 처음보는 함수가 나왔다문자열을 숫자로 변환해주는 함수입력받은 인자에서
malloc pwnable.xyz의 첫번째 문제이다 따로 제공된 c파일이 없어서 코드를 ida에 넣어서 확인했다 leak보다 1이 큰 값을 넣어주면, 가 실행되어 플래그를 얻었다
문제에서 제공된 c 코드이다 argv로 입력을 받으며 입력값은 20byte이다 입력값을를 통해 와 일치하는지 확인한다 의 기능을 살펴보면 전달받은 값을 4byte씩 나눈 후, 5번 더한 값을 결과로 반환해준다 즉, 를 만족하는 abcde값을 찾으면 된다 따라서
shellcode예전에 풀었던 문제이지만 복습하면서 다시 정리해보려 한다어셈으로 쉘코드를 작성해서 익스플로잇 하는 문제다flag는 /home/shell_basic/flag_name_is_loooooong에 있다고 한다flag경로를 찾아 내용을 읽고 stdout으로 출력
Return Oriented Programming 정말 어려워서 5번 풀어본 문제다;; 이번 문제에서는 도 제공되지 않고, system함수도 사용하지않아 plt가 존재하지 않는다 system 함수를 사용하기 위해서 직접 system함수의 주소를 찾아야한다 그리고
Out of BoundsOOB는 인덱스 값이 음수거나 배열의 길이를 초과할 때 발생한다.개발자가 인덱스 값에 대한 검사를 명시하지 않고, 사용자가 인덱스 값을 임의로 설정할 수 있다면 배열의 주소로부터 특정 오프셋에 있는 메모리의 값을 참조할 수 있습니다.dreamha
Format String Bug위의 코드처럼 사용자가 포맷스트링을 입력할 수 있을 경우 발생하는 취약점이다.포맷스트링으로 사용할 수 있는 형식 지정자는 위와 같다.이 중에서 n을 사용하면 특정 주소에 값을 써넣을 수 있게 된다.그리고 최소너비라는 것을 지정해 줄 수 있