시스템 해킹(22)
-
[어설픈] LOB 10번 vampire 문제풀이
안녕하세요!오늘은 LOB 10번 문제Vampire 문제풀이를 해보도록 하겠습니다! 문제의 소스코드는 아래와 같이 나와있습니다!직전 문제와 바뀐 게 몇 개 있네요! 그치만 순서대로 주어진 조건을 살펴볼게요! 1) argument 개수는 2개보다 작으면 안된다! 2) egghunter라는 놈으로 환경변수를 못 쓰게 막는다 3) 입력값의 48번째 값이 \xbf이여야 한다(=스택으로 return 하세요) 4) argument[1]의 길이가 48보다 길면 안돼요! 5) 버퍼는 당연히 초기화 할꺼구요(=못써요 ) 6) 이번에는 argv들도 모두 초기화 할꺼에요! (= argv[0] argv[1] argv[2] ... 모든 걸..) 솔직히 조건들을 봤을 땐 좀 절망적이였습니다아니 argv[ ]들까지 초기화 시키면....
2019.03.28 -
[어설픈] LOB 9번 troll 문제풀이
안녕하세요!오늘은 LOB 9번 문제troll 문제풀이를 하겠습니다! 문제의 소스코드는 아래와 같이 나와있습니다!근데 직전 문제와 바뀐 게 좀 있네요! argument 길이 체크하는 것도 없어지고버퍼 초기화하는 것도 없어지고 이번 문제는 컨셉이 좀 달리진거 같네요! 우선 보면,argument 개수가 2개 이상인건 똑같구여argv[1]의 48번째가 \xbf 값이여야 하는 것도 동일하구요 근데 //here is changed! 부분을 보니argv[1]의 47번째 부분이 \xff이면 안된다네요!그거 말고는 밑에는 뭐 똑같이 strcpy 해서 취약점 터지는 부분이구요! 근데 여기서 왜 굳이 argv[1]의 47번째 값이 \xff면 안되게 했을까요?왜냐하면 저희가 이때까지 payload에서 계속 return 주소로..
2019.03.26 -
[어설픈] LOB 8번 orge 문제풀이
안녕하세요! 오늘은 LOB 8번 문제 orge 문제풀이를 해볼게요! 아래에 소스코드가 있습니다!뭐 직전 문제와 달라진 점은 두 군데 있네요! //here is changed!// one more! 이 두 부분이네요! 첫 번째 바뀐 것은 argument의 갯수를 2개로 고정해라! 두 번째로 바뀐 것은 직전 문제 darkelf에서 저희가 argv[1]에 return을 했는데더 이상 argv[1]을 사용 못하게 되었네요!왜냐하면 argv[1]을 0으로 초기화하니까요! 나머지 조건은 똑같아요 버퍼크기, 환경변수 못 쓰는것 argv[1]의 48번째 \xbf, argv[1]의 길이 48까지버퍼도 초기화! 자 그러면 저희는 어떻게 문제를 풀어야 할까요?간단하게 생각해보면argv[1]은 초기화 하는데argv[0]은 초..
2019.03.24 -
[어설픈] LOB 7번 darkelf 문제풀이
안녕하세요!오늘은 LOB 7번째 문제인 darkelf 문제풀이를 해보도록 하겠습니다! 아래에 소스코드가 있는데요!직전 문제 wolfman과 달라진 점이 한 군데 있네요! //here is changed! 부분의 코드를 보면argv[1]이 아니라 argv[0]의 길이가 무조건 77이 돼야 하네요..그게 아니면 argv[0] 에러라는 메세지를 출력하잖아요! 나머지 소소코드에 대한 해석은 woflman에서도 했으나,간단하게만 다시 요약하자면(자세한 소스코드 풀이는 전에 문제들을 참고해 주세요! :) ) argument 갯수 2개 이상 환경변수 사용 못함! argv[1]의 48번째 값 \xbf! argv[1]의 길이 48까지 가능 버퍼 공간 0으로 메모리 초기화! 그리고 이번에 추가된 argv[0]의 길이 77..
2019.03.21 -
[어설픈] LOB 6번 wolfman 문제풀이
안녕하세요!오늘은 LOB 6번문제wolfman을 풀어보도록 하겠습니다! 소스코드는 아래에 나와있습니다!직전 문제인 orc과 다른 점이 딱 한 군데 있네요! //check the length of argument 이 부분이요!argv[1]의 길이가 48보다 크면 안돼요! 나머지 조건들은 다 동일해요!버퍼가 40인 것! int형 변수 i가 선언된 것!argument 갯수!환경변수 못 쓰는 것!argv[1]의 48번째 값이 \xbf이여야 하는 것!버퍼값이 0으로 초기화 되는 것!(자세한 설명은 직전 문제풀이들을 참고해 주세요! :) ) 우선 tmp 폴더를 만들고지난 문제처럼 tmp 폴더에 프로그램을 복사해줍니다!저희가 로그인한 wolfman 소유로 파일을 실행시켜야 gdb가 돌아가니까요! 그리고 이번에도 똑같..
2019.03.19 -
[어설픈] LOB 5번 orc 문제풀이
안녕하세요!오늘은 LOB 5번 orc 문제풀이를 해보겠습니다! 아래에 문제의 소스코드가 주어졌습니다! 직전 goblin 문제와 다른 점이딱 하나 있죠? 맨 밑에 buffer를 0으로 초기화 해주는거요!goblin에서 소스코드 해석 다 했지만간단하게만 짚고 넘어가면! 1) 크기가 40인 버퍼, 정수 i 스택에 선언 2) argument 갯수 2개 이상으로 맞춰라! 3) 환경변수 못 쓴다! 4) argv의 48번째 값 \xbf이여야 한다! 5) 그리고 이 문제에서 추가된!버퍼도 초기화 해주니 exploit 할 때 버퍼 쓰지마!일단 tmp 폴더를 만들고tmp 폴더에 wolfman 프로그램을 복사합니다! 왜냐?wolfman은 저희가 로그인한orc 소유가 아니기에 gdb로 실행을 못시켜요 ㅠㅠ 자 그리고 이제 g..
2019.03.17