일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- docker
- 지훈현서
- Python3
- z3 signed 이슈
- 실시간로깅
- pwntools
- wsl2 복구
- DYNAMIC Section
- VSCode C++ 표준 버전 수정
- python
- 리커버릿
- 공유 라이브러리는 왜 항상 같은 순서로 맵핑 될까?
- std::cerr
- 개발
- vhdx 파일 복구
- pip 에러 해결
- pwn
- 임베디드 시스템 해킹
- GDB
- vmware 반응 속도
- GEF
- python3.11 pip
- python3.11 설치
- Recoverit
- c++
- Windows 부팅 오류
- tool
- Seccomp bypass
- OpenAI 개발
- Python.h: No such file or directory
- Today
- Total
목록분류 전체보기 (141)
OZ1NG의 뽀나블(Pwnable)
보호되어 있는 글입니다.
보호되어 있는 글입니다.
[파이썬 형변환] --------------------------- string -> int int(문자열형 숫자 값, 진수) # 10진수인 경우에는 진수 인자 안넣어도 됨. --------------------------- string -> float float(문자열형 숫자 값, 진수) # 10진수인 경우에는 진수 인자 안넣어도 됨. --------------------------- int,float -> string str(정수형 또는 실수형 값) --------------------------- 10 --> 16 >>> a = 16 >>> hex(a) '0x10' --------------------------- 16 --> 10 >>> a = 0x16 >>> a 22 ---------------..
보호되어 있는 글입니다.
파이썬의 "signal"모듈에는 C언어의 alarm함수랑 signal함수와 완전히 같은 기능을 하는 함수가 있다.(이름도 똑같음.) 따라서 그걸 쓰면 된다. [C언어 예시] 1 2 3 4 5 6 7 8 void hello(){ printf("helloooo"); } void main(){ signal(SIGALRM, hello) // SIGALRM이 발생되면 hello함수를 호출 alarm(3) // 3초 뒤 알람(3초뒤 SIGALRM 시그널 발생) } http://colorscripter.com/info#e" [python2 예시] 1 2 3 4 5 6 7 def timeout(dummy1 , dummy2): # 더미인자를 주는 이유 : 아래의 signal함수에서 (~~, hello)
One_gadget은 libc 안에 있는 매직 가젯의 offset을 찾아주는 툴이다. 매직 가젯은 libc안에 execve('/bin/sh', ?, ?) 부분이다. Pwnable할 때 system함수로 쉘이 따지지 않을때, execve함수로 pop_rdi, rsi, rdx gadget 들을 하나하나 내가 찾아가면서 쉘을 따거나 house of force등을 통해 got_overwrite를 할 때 이걸 쓰면 손쉽게 쉘을 딸 수 있다. (house of force를 통해 got_overwrite를 하면 다른 함수의 got가 chunk의 헤더나 다른 값으로 같이 덮여져서 제대로 함수 실행이 안될 때가 있다.) 걍 이거 하나면 진짜 겁.나 편하다. [git] https://github.com/david942j/..
libc-database는 이름 그대로 libc를 함수 실제 주소의 하위 3니블을 가지고 libc를 찾아주는 툴이다. 보통이라면 https://libc.blukat.me/?q=puts%3A7e0&l=libc6-i386_2.15-0ubuntu20_amd64에서 찾을 수 있지만, 지금은 502에러가 떠서 이 곳을 이용할 수 없다. 그래서 이 툴을 사용한다. [다운로드] git clone https://github.com/niklasb/libc-database [사용법] 1. ./find [함수명] [하위 3니블] ex) ./find __libc_start_main 740 libc-database 디렉토리 안에 있는 find 바이너리를 이용해서 libc를 찾는다. db 디렉토리에 있는 libc들에서 찾아주는 ..
Format String Bug(이하 fsb)의 주축이 되는 printf함수는 널문자를 기준으로 문자열의 끝을 판단한다. 당연한건데 왜 주의해야 하는가? 32bit에서는 모든 주소들이 4바이트였고 한 주소를 판단하는 크기 또한 4바이트였기 때문에 크게 문제가 되지 않았지만, 64bit에서는 스택과 실제 함수 주소 제외한 대부분의 주소들이 3바이트이고, 한 주소를 판단하는 크기는 8바이트이기 때문에 무조건 1바이트 이상은 널문자로 채워지게 된다. 이게 문제가 된다. 예시를 들어 보자! 만약 fsb페이로드의 순서를 [어딘가의 주소]+[%???c%?$ln] 이런식으로 짰다고 치자, 그렇다면 fsb페이로드는 스택에 "0x0000000000606060(어딘가의 주소) 0x????????????????(%???c%..