분류 전체보기
BaskinRobins31
checksec NX 걸려있는 64bit 파일 IDA로 pseudo code 확인 read함수를 통해 s에 저장된 값을 0x190 byte만큼 n에 저장 n은 0x10만큼 처음 할당받았기 때문에 OVERFLOW 취약성 발생 실행 찾기 문자열 "/bin/sh" 찾기 "/bin/sh" 문자열 주소 = 0x7ffff7b99e17 libc 주소 = 0x7ffff7a0d000 system - libc offset = 0x453a0 write - libc offset = 0xf7370 gadget 찾기 one gadget rp++ payload 작성 정리 binsh - libc offset = 0x18ce17 system - libc offset = 0x453a0 write - libc offset = 0xf737..
r0pbaby
checksec NX, PIE 걸려있음 (PIE: 프로그램 실행할 때마다 전역변수와 사용자 정의 함수의 주소가 매번 달라진다) → offset으로 접근 64 bit Pseudo Code 굉장히 긴 main함수의 pseudo code.... savedregs에서 [rbp+0]로 SFP임을 알 수 있다 debugging pwndbg로 실행시켰을 때 RDI, RSI, RDX,RCX, R8, R9 순으로 파라미터 전달. offset 구하기 system - libc offset = 0x453a0 binsh - libc offset = 0x18ce17 onegadget gadget- libc offset = 0x45226 payload 작성 2번 메뉴를 통해 system 주소를 얻고, libc.symbols['sy..
WEB 01.2
-간단한 자기 취미 소개 >> 취미활동을 소개하는 목록 생성 -시간표 만들기 -자기소개서 만들기 링크로 연결해 생성해보기 WEB 01.2 About Me HOBBY TIME TABLE MORE INFO.. WEB 01.2 About Me HOBBY TIME TABLE MORE INFO.. About My Hobby Watching Youtube Making WebPagaes About Me HOBBY TIME TABLE MORE INFO.. About My Time Table Mon Tue Wed Thu Fri Windows Programming Data Science Windows Programming Data Science Windows Programming Data Science Windows Pr..
[HTML] WEB1.3 - WEB1.15
https://www.youtube.com/watch?v=QwCdCcsPVTQ&list=PLuHgQVnccGMDZP7FJ_ZsUrdCGH68ppvPb&index=4&t=0s WEB1.3 기획 기획 무엇을 만들 것인지 그려보고 설계하는 과정 코딩과 HTML 사람이 하는 부분(원인) - code/source/language 기계가 하는 일(결과) - application/app/program/webpage/website HTML = HyperText Markup Language webpage를 만들때 사용하는 언어 HTML 코딩과 실습환경 준비 준비물: web browser + editor >> editor로 atom 1.48.0 version 설치 확장자 html의 파일 1 생성 >> web 디렉터리에 있..
babyROP
checksec 64bit binary NXbit 걸려있음 ASLR IDA로 pseudo code 확인 buf의 크기는 40인데 read함수를 통해 0x300만큼 입력받게 함 >> OVERFLOW 취약성 발생! buf에 입력을 하고(What is your name?) Hello, 뒤에 buf에 입력한 내용이 출력된다. Debugging rsp에 저장된 값(0x7fffffffde18)이 가리키는 값 : 0x7ffff7a2d830(=return address) rsi에 저장된 값: 0x7fffffffddd0 (=buf의 시작주소) buf에 72byte 채워주면 return address를 덮어 쓸 수 있을 것 libc에서 "/bin/sh"문자열 찾기 libc = 0x7ffff7a0d000 "/bin/sh" ..
simpleROP
checksec IDA로 pseudo code 확인 buf의 크기: 0x100 = 256 byte read함수를 통해 0x300 = 768byte만큼 입력받음 >> overflow 발생 Debugging Overflow check esp(0xffffd00c)에 저장된 값: 0xf731c637 esp(0xffffcefc)에 저장된 값: 0x0, 0xffffcf08, 0x300 buf의 시작주소(0xffffd00c) - return address(0xffffcf08) = 260 byte => 260개 이상의 문자를 입력해 return address 덮어쓸 수 있음 쓰기 가능한 메모리 영역 찾기 쓰기 가능한 메모리 영역: 0x0804a000~0x0804b000 .got.plt 주소: 0x0804a000, si..
64bit ROP
Return Oriented Programming(ROP) _x86 NX bit와 ASLR 보호기법, 코드 서명과 같은 보호기법을 우회할 수 있는 기술 프로그램의 흐름 변경을 위해 Stack Overflow와 같은 취약점을 이용해 콜 스택 통제 → 주로 스택 기반연산을 하는 코드 가젯(gadgets) 사용 >> RTL + Gadgets (64bit: 함수의 인자를 레지스터와 스택에 저장해 전달) gadgets 해당 프로그램이 사용하는 메모리에 이미 있는 기계 명령어 일반적으로 "ret"(반환명령어)이 끝으로, 기존 프로그램 또는 공유 라이브러리 코드 내의 서브루틴에 존재 x64에서는 호출 규약(System V AMD64 ABI) 때문에 피연산자가 매우 중요 x64의 ROP에서 POP 명령어의 역할 = E..
32bit ROP
Return Oriented Programming(ROP) _x86 NX bit와 ASLR 보호기법, 코드 서명과 같은 보호기법을 우회할 수 있는 기술 프로그램의 흐름 변경을 위해 Stack Overflow와 같은 취약점을 이용해 콜 스택 통제 → 주로 스택 기반연산을 하는 코드 가젯(gadgets) 사용 >> RTL + Gadgets (32bit: 함수의 인자를 스택에 저장) gadgets 해당 프로그램이 사용하는 메모리에 이미 있는 기계 명령어 일반적으로 "ret"(반환명령어)이 끝으로, 기존 프로그램 또는 공유 라이브러리 코드 내의 서브루틴에 존재 gadgets은 여러 개의 함수를 호출하기 위해 사용한다. -호출하는 함수의 인자가 3개일 때: "pop; pop; pop; ret" -호출하는 함수의 ..
Queue using Two Stacks
[Data Strucutre/Queues/Medium] https://www.hackerrank.com/challenges/queue-using-two-stacks/problem Queue using Two Stacks | HackerRank Create a queue data structure using two stacks. www.hackerrank.com #include #include #include #include int main() { int count; scanf("%d", &count); int *n_queue = malloc(sizeof(int)*count); int *p_queue = malloc(sizeof(int)*count); int top=0, rear=-1, index=0; i..