일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 포너블
- 파이썬
- programmers
- pwnable.xyz
- 프로그래머스
- Batch
- spring Batch
- 웹해킹
- gcp
- 리버싱
- 백준
- gcp cloud build
- kotest
- 웹보안
- nodejs
- 시스템 해킹
- Baekjoon
- hackctf
- 보안
- webhacking.kr
- Python
- docker
- gcp ci/cd
- 회고
- sequelize
- cloud run
- 사이버보안
- 스프링 배치
- node.js
- 네트워크
목록전체 글 (112)
uju's Tech
Ida를 사용해서 main함수를 살펴보자. 위에서 memset함수는 어떤 메모리의 시작점 부터 연속된 범위를 어떤 값으로 모두 지정하고 싶을 때 사용하는 함수이다. 따라서 1바이트마다 0으로 초기화하고 50바이트를 반환한다는 뜻이다. Ret 주소=0x7fffffffdfd0+8=0x7fffffffdfd8 Ret주소 위로 rbp 위로 v8,v7,v6,v5,v4, V6=0x68 V7=0x60 V8=0x8 0x60-0x8=88 88/8=11-->11*8바이트 V7[v6]=v4+v5 여기서 취약점이 발생한다, V6를 조절하여 ret값으로 만들고 v4+v5를 win함수 주소 값으로 만들어준다. 그러면 win함수로 리턴이 된다. 스택을 생각해보면 ret은 v7위치인 rbp- 0x60에서 rbp+0x8로 만들어 주어야..
Win 함수 주소 Got함수 0000000000601220 601480 Read 함수 601248 Edit note함수에서 입력받을 길이 정하고 문자열 입력 입력받을 길이에 제한을 두지 않는다. 문자열을 입력할 때는 전역변수 buf에 입력한다. 입력받은 buf는 전변수 s에 복사 Edit desc에서는 buf에 20만큼 입력받는다. exploit을 짜준다.!! 실행! 끝!
문제 풀이를 시작하기에 앞서서 기본적인 환경을 만들어 주겠다. 문제풀이를 위해 서버로 접속할 수 있는 netcat을 다운받아준다. Sudo apt-get install netcat Sub의 바이너리 파일을 ida로 열어보면 아래와 같은 main함수가 나타난다. v4-v5=4919 를 만들어주면된다. Pwntools를 이용해 풀어주겠다. 실행! 플래그가 나온다! Sub 들어가서 플래그 치는 곳에 FLAG{sub_neg_==_add}를 쳐주고 submit눌러주면 끝!
r은 대소문자를 구분한다. install.packages(): 패키지 설치 명령 library() :설치한 패키지 실행 명령(패키지 설치 후 반드시 실행해 주어야 한다.) setwd() :디렉토리 설정 getwd() :현재 작업 디렉토리의 위치 readLines() :분석할 텍스트 파일을 불러온다. 불러올 때 인코딩방식 작성해주면 오류가 안난다, Ex) readLines(“파일명.txt”,encoding=”UTF-8”) as.Date(): 날짜형 데이터 삽입할 때 사용 extractNoun(변수명):힌글의 명사 추출 함수 grep(“찾을내용”,data,옵션) :주어진 조건이나 키워드를 골라내야 할 때 사용 substr(data,시작위치,종료위치): data에서 특정 부분 값을 추출해야 할 때 사용 str..
/: 몫 %: 나머지 1.데이터 타입 -1)정수형-문자:char 숫자:int,short.long -2)실수형: float,double %4d: 정수 4자리로 출력 %7.2f: 실수 7자리로 출력, 소수점은 2자리까지 출력(소수점 포함 7자리) %10.3f:실수10자리로 출력,소수점은 2자리까지 출력
1.IPv4 datagram format IPv4의 헤더는 20바이트. ver: ip protocol 의 버전 숫자가 들어간다. head len: header length(바이트 단위) -20바이트가 기본이지만 뒤의 option에 데이터가 들어갈수도 있어 길이가 가변적이다. head len을 명시하는 이유는 어디까지 헤더인지 명시하기 위해서이다. type of service(TOS): 요구되는 서비스 품질 length: 헤더와 데이터 길이를 포함한 전체 길이(바이트 단위) 16-bit identifier: 각 조각이 동일한 데이커그램에 속하면 같은 일련번호를 공유 flags: 3비트로 이루어져 있다 fragment offset: 패킷이 단편화 되었을 때 단편화 순서를 설정하는 부분(조각나기 전 우너래의 ..
software: 라우팅 알고리즘/프로토콜 수행 hardware: input에서 output으로 forwarding 1.input port line termination: 물리 계층 --> data link (ex . ethernet) -->decentralized switching(분산 스위칭) switch fabric : input buffer 로 부터 적절한 output buffer로 전송 datagram 이 흘러가는 시간보다 도착하는 시간이 빠르면 queuing delay 발생 가능 switch fabric의 3가지 구조 1.memory: 모든 input buffer 로 부터 들어오는 패킷들은 같은 메모리를 공유한다.(시스템 메모리에 복사) 2.bus: 모두 공유하는 길이여서 하나의 신호만 지나갈..
1.forwarding과 routing의 차이 forwarding: move packets from router's input to appropriate router output ;패킷의 목적지 주소와 방향을 보고 넘기는 역할 routing: determine route taken by packets from source to destination ; 받은 패킷에 적혀있는 목적지 주소를 보고 최선의 경로 설정한다. 2.network layer-data plane: data 전송하는 목적을 제공 ;forwarding function - control plane: data영역으로 어떻게 무슨 트래픽이 흐르도록 제어 detetmines how datagram is routed among routers alon..