문제 5번부터 약간씩 어려워지기 시작합니다.여기서 어렵다는 의미는 지금까지와는 달리 창의적(?)인 생각이 필요하다는 의미입니다 ^^.일단 Egg Hunter, Buffer Hunter 때문에 환경변수와 버퍼는 이용할 수가 없습니다.그런데도 스택은 여전히 당신의 친구라는 문구가 있네요...제가 처음 위의 문제를 봤을 때에는 완전 멘붕 속에 빠져서 몇 시간을 생각했었습니다.근데 막상 드는 생각은 참 허무맹랑(?)하면서도 될 법한 것이었습니다. 여러분도 한 번 생각해보세요. 이번 문제를 어떻게 해결할 수 있을지 말이죠. 분명 생각하신다면 창의력(?)이 확 ! 올라가는 것을 느낄 수 있습니다.(과연 ?)중요한 포인트를 짚어보겠습니다. 1. 환경변수를 사용할 수 없다.- 이는 4번에서도 그랬으니 가볍게 생각할 수..
dumpcode.h는 첨부해놨습니다. 문제 바로 보시죠.extern char **environ 전역 선언과 memset을 이용해서 프로그램이 실행될 때 환경변수를 모두 0으로 만듭니다.그러니 지금까지 사용했던 환경변수를 이용한 Exploit은 불가능하고, argv[1][47]로 \xbf를 검증하는 것으로 보아 전통적인(?) BOF를 사용해서 공격해야 하는 것 같습니다.Redhat 6.2는 Random Stack이 적용되어 있지 않아 주소가 고정되므로 dumpcode.h를 삽입한 새로운 코드를 작성해서 주소를 살펴보겠습니다.orc.c를 or1.c로 바꿔서 컴파일 했습니다. 저희가 RET에 넣어야하는 주소 값이 0xbffffae0 이라는 것을 알 수 있습니다. 위의 공격코드대로 구성해서 다시 공격해 보겠습니..
사실 LOB 문제들이 BOF의 개념을 잘 이해만 하고있다면 20문제 모두 그렇게 어렵지 않게 풀 수 있는 문제들 입니다.그러니 화이팅 !3번은 small buffer + stdin 이라는 조건이 걸려있네요.제가 항상 strcpy와 썻으니 여기서 gets는 어떻게 공략해야하는지 알아보겠습니다.보통 저희가 argv를 이용해서 값을 전달할 때에는 " 프로그램 `python -c 'print ~~'` "와 같은 형식으로 공격합니다만,gets는 " (python -c 'print ~~';cat) | 프로그램 "과 같은 형식으로 공격합니다. 여러운건 없으니 바로 공격해보겠습니다.해커가 침입했다는 것을 증명했다네요... P.S. 사실 모든 워게임이 그렇겠지만, 특히 BOF는 어떻게 푸는지 감이오면 정말 쉽게 공격할 ..
오랜만입니다 ! 안녕하세요 ㅎㅎ...요새 면접도 있고, 카페에 글 쓰는 것도 있어서 오랜만에 글 올리는 것 같네요.LOB 서버는 Redhat 6.2이고, Dummy와 setreuid가 존재치 않아 gdb를 이용하지 않아도 쉽게 Exploit 할 수 있습니다. 준비물은,1. Vmware(이걸 보는 분들이라면 다 있으실 거라 믿습니다.)2. LOB 서버입니다. 제 구글드라이브에 URL만 알면 모두 다운받을 수 있도록 해놨습니다.압축을 풀고 vmdk 파일을 Vmware 로 열고나서 가장중요하게 할 일이 있습니다.위와 같은 LILO boot: 메시지가 나올 때, 꼭 ! linux-up 을 입력해줘야 합니다. 부팅이 완료되면 아래와 같은 화면이 나옵니다.gate, gate를 입력하신 후에 네트워크 설정을 해줘야합..
FTZ는 당분간 좀 쉬었다 해야겠습니다... 딴 것도 좀 해야지요...일단 문제는 printit(), shell() 함수가 있는데 main()에서 printit()을 실행합니다. 이것을 shell()로 바꿔주면 쉽게 풀립니다.gdb로 분석해보니 printit() 는 0x8048500에 위치하는군요. 그리고 저희가 짜야 할 코드구조는 아래와 같습니다.(python -c 'print "A"*40 + "shell() 함수 주소"';cat) | ./attackmedisass shell 로 shell 함수의 구조를 보니 시작주소가 0x080484d0 이네요. 바로 풉시다 !king poetic !
바로 봅시다 !전 문제와는 다른 점은 check 값에 *가 붙었다는 겁니다. 맨 처음에는 일단 스택 분석해보니까, 아래와 같이 전이랑 같았습니다.(python -c 'print "A"*40 + "deadbeef가 있는 주소"';cat) | ./attackme 를 넣으면 되겠죠 ?그냥 간단히 환경변수에 등록하고 하면 될 줄 알았는데 안되길래 왜 안되나 고민했습니다 (여기서 제가 얼마나 공부를 대충했는지 들키는군요...)gdb로 main ebp에 BreakPoint를 걸고서 분석했습니다....안 되는 이유는 바로... 주소의 맨 처음이 Turtle1000 으로 시작하기 때문입니다... 너무 당연하죠 ???전 쉘코드를 올리면 항상 실행되길래... 환경변수에 등록된 값이 올라가는 것으로 착각했네요 ;; 그래서 ..
- Total
- Today
- Yesterday
- REACT
- terraform
- compliance
- fleet manager
- web
- findinglatestversion
- platform
- defaulttheme
- CIS
- opensource
- ViaAWSService
- teplate
- stateType
- 4xx
- scp
- JavaScript
- Cloud
- AWS #CIS
- 2xx
- .get()
- cloudsecurity
- steampipe
- security
- temlate
- ControlTower
- conftest policy
- 우주와컴퓨터
- 계정정보저장
- aws
- IAM
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |