Eggshell
-
[FTZ Level17 풀이]System/FTZ 2018. 2. 16. 20:20
[Level17 Code]123456789101112131415#include void printit() { printf("Hello there!\n");} main(){ int crap; void (*call)()=printit; char buf[20]; fgets(buf,48,stdin); setreuid(3098,3098); call();} csLevel16과 흡사한 문제지만, 이번에는 쉘을 실행시켜주는 함수가 없다.그래서 나는 EGGShell로 환경변수를 등록한 후, 환경변수의 주소를 Call( )에 넘겨주는 식으로 쉘을 땄다. [Eggshell Code]12345678910111213141516171819202122232425262728293031323334353637383940414243444..
-
[FTZ Level13 풀이]System/FTZ 2018. 2. 16. 01:21
[Level13 Code]1234567891011121314151617#include main(int argc, char *argv[]){ long i=0x1234567; char buf[1024]; setreuid( 3094, 3094 ); if(argc > 1) strcpy(buf,argv[1]); if(i != 0x1234567) { printf(" Warnning: Buffer Overflow !!! \n"); kill(0,11); }} Colored by Color Scriptercs Level13은 BOF공격을 좀 힘들게 만들어놨다.변수 i가 buf보다 먼저 선언되어 있으므로, 일반적인 BOF공격을 시도한다면 i의 저장되어 있는 값이 변조될 것이다. [Level13 Stack] buf[1024..
-
[FTZ Level11 풀이 ]System/FTZ 2018. 2. 15. 22:54
[Level11 Code]123456789101112#include #include int main( int argc, char *argv[] ){ char str[256]; setreuid( 3092, 3092 ); strcpy( str, argv[1] ); printf( str );} Colored by Color Scriptercs 여러가지 방법으로 풀 수 있지만, 나는 FSB를 이용해서 풀어봤다.pritnf( str ) 이 부분에서 FSB 취약점이 발생한다.자세한 정리는 [이곳]에 해두었으니, 자세한 설명은 생략하겠다. #공격 시나리오1. EGG Shell로 환경변수에 쉘코드를 올린다. 2. FSB공격으로 attackme파일의 DTOR_END(소멸자)공간에 환경변수 주소를 저장한다. 3. atta..