소스 코드 먼저 보고 시작해보죠 !정말 어마어마한 코드입니다. 스택을 모조리 0으로 초기화시켜버리네요...(RET 빼고서요.)일단, buffer 보다 높은 주소는 절대 사용할 수 없습니다.그렇다면 일단 이곳을 보고 오세요... 와... 정말 감탄스럽습니다 !그래서 그냥 한 번 질러봤습니다.절대 stdio.h를 포함하지 마세요.이후에 URL에 나와있는대로 컴파일 옵션을 주어 컴파일 한후, export LD_PRELOAD=./printf.so로 등록합니다.등록이 완료되었습니다. 먼저 복사한 gole1 을 실행해보겠습니다.오... 마이 갓... 쉘이 따였습니다 ! 이제 실제 golem에 적용해보죠.안되네요 ... ? 이유는 바로... setuid가 걸려있어서 그렇습니다.권한이 바뀌어서 실행되면서 LD_PREL..
풀긴 풀었습니다만.... 조건이 어려운게 아니라 쉘코드가 왜 안먹히는지 이해가 잘 안되네요 -_-;;추측컨데 전에 썻던 \x2f가 없는 쉘코드에는 특수문자가 존재하는데,argv[0]에 특문이 포함되면 원래 기계어가 실행이 안되는건지... 흠... 모르겠습니다.알게 되면 다시 쓰겠습니다. 풀긴 풀었는데 깨름직 하네요...물론 이번 문제도 디렉토리를 생성해서 25 Bytes 쉘코드로 풀 수 있습니다.9번까지 따라해보셨다면 왜 제가 이번 문제를 쉽게 풀었다는지 알 수 있으실겁니다.Hint: 스택의 끝부분에는 왜인지는 모르겠지만 argv[0]의 값이 존재합니다...P.S. 찾아보니 스택 자체의 형태가 원래 그렇다네요 ~ 여기
이번에는 꼭 소스코드를 봐야하기에 첨부합니다.이번에 추가된 조건은 0xbfff를 사용하지 못하게 되었습니다.그러다보니 기존에 존재하던 필터들도 모두 사라졌군요... 하지만 ! 프로그램이 스택에 어떤식으로 올라가는지 아신다면, 꽤나 쉬운 문제일 수도 있습니다. 간단한 예제를 준비했습니다.차이가 느껴지시나요 ??왜 이런 현상이 일어나는 걸까요 ? 이유는 환경변수의 크기는 고정되어 있기 때문입니다.그래서 환경변수를 침범 할 정도로 많은 값이 들어가면 스택이 점점 위로 이동하면서 크기를 줄입니다.이제 문제를 어떻게 푸실지 감이 오시나요 ?이래도 안오신다면 아래 그림을 보세요.뒤의 A의 갯수를 10만으로 줬을 때의 값입니다.스택의 주소가 어떤가요 ? 이제 어떻게 풀지 감 오시죠 ?바로 풀어보겠습니다.공격코드는 ...
- Total
- Today
- Yesterday
- opensource
- scp
- 2xx
- 계정정보저장
- cloudsecurity
- defaulttheme
- conftest policy
- terraform
- CIS
- compliance
- 4xx
- platform
- findinglatestversion
- fleet manager
- JavaScript
- teplate
- 우주와컴퓨터
- web
- temlate
- AWS #CIS
- stateType
- IAM
- REACT
- Cloud
- security
- ViaAWSService
- aws
- steampipe
- ControlTower
- .get()
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |