시작합시다 !소스코드입니다... 뭐가 이리 긴지 -_-;; 캡처하기도 무섭네요...암튼 분석해보면 포인터로 함수(bad) 가리키고 buffer[50] 선언을 해놨습니다. 그리고 if 로 조건을 걸고, memcpy, memset으로 값을 복사한 후에 앞의 바이트들을 4바이트 빼고 모두 0으로 초기화 시킵니다.딱 보면 감이 오시죠 ? memcpy 부분에서 overflow 되는 것을 이용해서 함수포인터의 주소 값을 바꾸는 문제입니다.일단 막 값을 넣다보면,76개를 넘어가는 순간부터 포인터 값을 침범합니다.코드 구성을 A*76 + '문제 풀기 위한 주소' 를 넣으면 되는거죠. 사실 좀 귀찮아서 gdb로 분석안하고 그냥 막 값 넣다보니 딱 나와서 -_;; 분석하실 분은 분석해보세요. 안 어려워요.바로 풀면 ~9C..
바로 시작 !이번 문제는... 취약점이 두 가지입니다. 포맷 스트링 버그(FSB) 와 버퍼 오버플로우(BOF)죠...근데 사실 저도 아직은 FSB를 잘 설명 못 할 것 같아서... 20번에서 좀 더 가다듬고 설명드리고, 이번에는 BOF로 풀어봅시다 !gdb로 디버깅 하실 때는 복사해서 합니다 ~소스는 간단하니까 바로 보면 지역변수를 위한 공간을 0x108만큼 할당하고 있네요.지역변수가 하나니까 256+8(Dummy)라는 것을 알 수 있는 부분입니다. 그럼 스택의 구조는 아래와 같네요. | str(256) | dummy(8) | ebp(4) | ret(4) | argc(4) | argv |
- Total
- Today
- Yesterday
- stateType
- temlate
- JavaScript
- steampipe
- compliance
- fleet manager
- teplate
- defaulttheme
- 2xx
- Cloud
- .get()
- 계정정보저장
- findinglatestversion
- ControlTower
- platform
- AWS #CIS
- web
- IAM
- conftest policy
- opensource
- REACT
- scp
- terraform
- ViaAWSService
- 4xx
- security
- 우주와컴퓨터
- CIS
- cloudsecurity
- aws
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |