일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 밤랩
- pwntool
- bomblab
- 서브모터
- Bomb
- 데이터 형태
- 파일
- 툴
- reversingg
- Reversing
- phase_5
- 디렉터리
- 아두이노
- bomb lab
- mandb
- binarybomb
- 리버싱
- Linux
- 리눅스
- pwnable
- phase_4
- phase_3
- 명령어
- 스테가노
- phase_1
- 침입감지시스템
- phase_2
- gdb
- phase_6
- IDS
- Today
- Total
목록gdb (6)
Flag={C0MPU73R}
https://github.com/luongvo209/Binary-Bomb 다운로드 받아서 압축풀고 리눅스에 넣으면 된다 대부분 형식은 비슷하면서 조금씩 다르다
#bomb 문제는 phase_1 부터 phase_6까지 6개의 문제로 이루어져있다 #1단계부터 6단계까지 모두 맞춰야 폭탄이 해체되는 형식이다 이번엔 문제의 마지막 phase_6이다 gdb로 열어본당 증말증말 너무 길다.. 앞부분을 보니 이번에는 숫자 6개를 입력하는 문제같다 인자로 "1 2 3 4 5 6"을 넣고 분석해본다 첫번째 비교문을 돌려가며 보니 첫번째 인자에서 1을 빼고 eax와 비교하는데 그 값이 5와 같거나 작아야 통과된다 첫번째 인자 =< 6 첫번째 인자로 "1"을 넣었기 때문에 통과된다 다음 부분이다 r13d가 지금 "0"인데 1을 더하고 r13d가 6인지 비교해서 맞으면 점프한다 인자가 6개인 걸 보면 하나하나 다 비교해서 다 했을때 점프하는 것 같다 인자를 카운팅하는 r13d를 eb..
#bomb 문제는 phase_1 부터 phase_6까지 6개의 문제로 이루어져있다#1단계부터 6단계까지 모두 맞춰야 폭탄이 해체되는 형식이다 문제를 실행한다 이번에도 숫자 2개를 입력하는 문제다 1과 2를 입력하고 어김없이 터져버린다 gdb로 분석해보자 오 phase_4는 한 화면에 다 들어온다 편------안 일단 phase_4+38에 break를 걸고 실행해서 첫번째 폭탄이 통과 되는지 확인해본다 (Input : 1 2) break까지 실행하고 보니까 eax = 2 라 통과 된다 다음 부분을 분석해보면 eax에 rsp를 넣는다 (rsp는 두번째 인자 "2") eax에서 2를 뺀다 (eax에는 두번째 인자 "2"가 들어있어서 2-2=0이 된다) eax(0)를 0x2와 비교한다 비교해서 같거나 작으면 +..
#bomb 문제는 phase_1 부터 phase_6까지 6개의 문제로 이루어져있다#1단계부터 6단계까지 모두 맞춰야 폭탄이 해체되는 형식이다 방금 phase_5를 풀어서 기분이 좋기 때문에 Root권한으로 실행해준다 OvO 이번엔 숫자 2개란다 항상 그랬듯이 아무거나 입력해주고 터진다 (1, 2) gdb로 분석해보자 어우 너무 길어서 내 작은 화면에 다 안나온다 ㅜㅜㅜ 부분에서 인자의 갯수를 확인합니다 맨 처음에 이번에는 인자가 2개라고 했기 때문에 1개 이하면 폭탄이 터집니다 일단 +48과 +49를 보면 첫번째 인자를 7과 비교해서 7보다 크면 폭탄이 터지는 것 같다 여기서 첫번째 인자가 나왔다 (인자1 =< 7) 이 부분을 보면 첫번째 인자를 eax에 넣고 그걸 어찌저찌 해서 저 여러개 중 한 곳으로..
#bomb 문제는 phase_1 부터 phase_6까지 6개의 문제로 이루어져있다#1단계부터 6단계까지 모두 맞춰야 폭탄이 해체되는 형식이다 문제를 실행한다 phase_1은 답을 알았기 때문에 바로 입력해준다 뭔가 또 입력할 수 있게 됬는데 gdb로 분석을 해봐야겠다 라는 함수가 있다 아마 6개의 인자를 숫자로 넣어줘야 하는 것 같다 phase_2의 맨 처음에 break를 걸고 실행해준다 일단 "1 2 3 4 5 6"를 입력해줬다 첫번째 비교하는 곳 까지 왔다 rsp와 0x0을 비교해서 양수(+)면 점프하는 것 같다 #아마 js는 음수(-)면 점프 rsp의 값을 보면 첫번째 인자인 "1"이 들어있다 우린 양수(+)만 입력했기 때문에 통과되어 넘어왔다. 그 다음을 정리해 보면 rsp(인자"1")을 rbp에..
좀 더 쉽게 디버깅 가능 설치- $ git clone https://github.com/longld/peda.git ~/peda- $ echo "source ~/peda/peda.py" >> ~/.gdbinit 뭔가 더 컬러풀 해졌다 명령어pdisas context code, register(i reg), data, value elfsymbol : plt, got 등 symbol 들은 알아서 찾아준다 find "/bin/sh" : find 명령어는 메모리 영역에서 특정 패턴을 찾아준다 ropgadget - ropgadget은 자주 쓰이는 가젯을 찾아줌- EX) pop-ret, leave-ret, add esp shellcode generate: 만들 수 있는 쉘 코드를 보여줌