일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- px4
- radare2
- pwncollege
- Bandit
- 리눅스 커널
- write up
- Pwnable.kr
- 드론
- 커널
- css
- 리눅스
- 어셈블리어
- wargame
- 컴퓨터구조
- C언어
- 시스템해킹
- 시그널
- Leviathan
- kernel
- 시스템 프로그래밍
- 프로그래밍
- 리버싱
- pwn.college
- 시스템
- 알고리즘
- C++
- 시스템프로그래밍
- 워게임
- 취약점
- 리눅스커널
- Today
- Total
목록정보보안 (179)
Computer Security
1. ls -al 을 보니, random파일이 보인다. 2. ./random 을 통해 실행 시켜보니,,, 뭐 2^32 시도해보라는데,,, 무리인듯 하다. 3. vi random.c를 이용해 코드를 뜯어보자. rand()를 이용해 랜덤값을 random 변수에 넣어주고 있고, 사용자는 key 값을 입력한다. 두 변수를 XRO한 값이 0xDEADBEEF 이면, flag를 출력해주는 함수이다. 그런데 자세히 보니, rand()함수에 send를 주지 않고 있다. send가 변칙적인 값이라 rand함수에서 매번 다른 값이 나오지만, 얘는 rand() 만 사용하고 있기 때문에, 생성되는 랜덤값이 규칙적이라는 것을 알 수 있었다. 4. gdb로 분석 해보자. 일단 callq 0x400500에서 호출직후, main 요기..
알아야 할 상식! PLT & GOT PLT = Procedure Linkage Table PLT로 말그대로 프로시져 ( 여러가지의 함수 & 외부 라이브러리 ) 들을 연결한 테이블이라고 이해하면 된다. 우리가 함수를 호출할때, 함수는 바로 호출되지않고 PLT를 통해 GOT를 참조하고, GOT에서 함수의 실제주소에 접근하여 함수가 실행된다. GOT = Global Offset Table 프로시져의 실제 주소를 가지고있다. PLT가 참조하는 테이블이다. 그림으로 보자. printf함수를 실행한다고 했을때, 일단 PLT로 간다. 여기서 두가지의 경우로 나누어진다. 1. printf함수가 첫번째로 실행되었을 때 PLT > GOT > PLT > _dl_runtime_resolve > printf 호출 2. prin..
알아야 할 기본 상식! UPX(Ultimate Packer for eXecutables) 여러 운영체제에서 수많은 파일 포맷을 지원하는 오픈 소스 실행 파일 압축 프로그램이다. GNU 일반 공중 사용 허가서를 통해 공개된 자유 소프트웨어이다. 압축, 압축 해제의 기능을 모두 담당한다. 파일의 크기를 줄일 수 있다.(전 후 3~4배의 차이가 있다) 크래커의 리버싱으로부터 보호할 수 있다. 1. flag 파일을 분석하려 gdb를 돌려봤는데, 제대로 메인함수가 안잡혀서 혹시 하고, Exeinfo를 통해 파일 상태를 확인 해봤다. 2.패킹이 되어있다는 사실을 확인 했고, upx -d flag를 진행해 언패킹을 실행 해줬다. 3. gdb flag를 통해 분석하고, disass main으로 메인함수를 살펴보니, f..
일단 7월30일 12시간동안의 해킹랜드가 끝이 났다! 1. 바이너리 첫번째로 풀었던 문제였는데, 이 문제는 그냥 간단하게 strings 명령어를 이용해 segfault 를 찾아내면 되는 문제였다. 그리고 거의 1분? 만에 정답에 도달 했다. 하지만 정답인 segfault 는 나왔는데 그게 정답인지 모르고 이 다음 스텝에 이용하는 힌트로 알아 들었다. 결국 5시간동안 그 다음 스텝을 생각하느라 시간을 날리다가 에이 설마,, 라는 생각으로 계속 봤는데,,, 그게 정답이 맞았다... 2. 패스워드 찾기 이 문제 같은경우는 그냥 간단하게 수 많은 문자열들중 segfault 를 찾는 거였는데, grep명령어를 이용해 seg 로 잡고 처음엔 했었는데, segfault가 끊겨져 있었다. 그래서 cat challthr..