끝이 다 와갑니다 !문제 17번을 보겠습니다.이번에는 전 문제와 달리 쉘을 실행시켜주는 부분이 사라졌네요 !그렇기때문에 저희가 쉘코드를 환경변수에 올려주고 그 부분으로 call을 진행해야 합니다.보시면 fgets로 48개를 받는 것을 볼 수 있는데 40개 이후로 call의 주소 값을 조정할 수 있습니다.결과적으로 0x42424242 라는 주소에는 아무것도 없다고나오면서 에러를 보여줍니다.그렇다면 저 곳에 저희가 올려놓은 쉘코드의 주소를 올려주면 어떻게 될까요 ?위와 같은 소스코드를 작성해주세요. 더 자세한 것을 보시려면 이곳으로 가시면 됩니다.( BOF를 체계적(?)으로 배우실 수 있어요 ! ) 아무튼 컴파일하고 실행해보면,쉘코드의 정확한 위치를 구할 수 있습니다.이를 토대로 공격을 수행해보면,답해봅시다..
이번에는 조금(?) 참신한 문제입니다.이번에는 Fake EBP 가 안먹히도록 ebp 주소를 저장해놨다가 복구시키네요...이것은 execl+3 을 사용하지 못하도록 하려는 제작자의 배려(?)입니다...사실 전 첫 번째 문제도 RET Sled 로 풀었는데... 두 번째 문제라서 살짝 당황했었습니다.(execl+3 은 이후에 알게된...)아무튼 RET Sled는 Nop Sled 와 비슷한 원리입니다. ret이 수행되면, pop eip; jmp eip 의 동작이 수행됩니다. 그렇게 되면 esp의 값이 4 바이트만큼 증가하게 되죠 ? | ebp(4) | ret(ret) | new ret | -> ret에 ret을 넣어주면 그 뒤의 값이 ret으로 바뀌는 원리를 이용하는 것입니다. 이게 통하는 이유는 스택의 모든 ..
매우 간단한 문제입니다.그 대신 이제 ASLR, Ascii-Armor, NX-Bit 가 걸려있어서 쉘코드를 실행시키기도 어렵고, 공유라이브러리 함수를 연결시켜서 수행하기도 힘듭니다. 그 대신 정말 참신한 방법이 존재합니다. 바로, execl+3 의 주소를 이용하는 겁니다.이 글 읽는 분들이라면 아마 스택이 어떤식으로 만들어지고, 인자를 어떻게 참조하는지 아실겁니다. 그래도 간단히 보죠.| buf(264) | ebp(4) | ret(4) | 인자1 | 인자2 | -> 이와 같은 식으로 구성됩니다.위와 같이 구성되는 이유는 함수의 프롤로그 때문인데요. 함수가 처음 수행될 때 아래와 같이 수행됩니다.익숙하시죠 ? push ebp; mov ebp, esp -> 이 과정을 거침으로써 위의 기본 스택 구조가,| e..
- Total
- Today
- Yesterday
- stateType
- web
- ViaAWSService
- .get()
- ControlTower
- AWS #CIS
- security
- steampipe
- Cloud
- 2xx
- fleet manager
- IAM
- JavaScript
- teplate
- compliance
- cloudsecurity
- 계정정보저장
- platform
- 우주와컴퓨터
- CIS
- 4xx
- scp
- conftest policy
- temlate
- defaulttheme
- opensource
- REACT
- findinglatestversion
- terraform
- 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 |