System
-
해커스쿨 ftz level12System/HackerSchool ftz level 2019. 6. 11. 22:20
BOF는 계속됩니다! 글쓴이는 아직 BOF를 잘 모르기 때문에 설명부실 + 설명오류가 잦을 수 있습니다 이번 attackme는 level11과 달리 gets 함수로 문자열을 받네요, 그거만 다르지 다른 건 동일합니다 사실 궁금했어요 뭐 역시 안되네요ㅋㅋㅋㅋㅋ 뭐 이것도 에서 봤듯 108h(264d, str[256] + dummy[8] + RET[4] -> 268d)부터 입력을 받습니다.(사실 정확한 게 아니라 아닐수도..) 일단 참고해두고 쉘코드 환경변수에 지정하러 가봅시다 굳이 먼저 tmp 디렉토리로 가있을 필요는 없어요 짜피 좀이따 주소 출력하는 프로그램 만들때 와도 되고 그리고 EGG라는 이름의 환경변수에 쉘코드를 넣고 확인했습니다, 근데 저 코드 앞에 \x90*15는 왜 있는지 아직 모르겠어요 흐..
-
해커스쿨 ftz level11System/HackerSchool ftz level 2019. 6. 11. 02:36
아하핳하! 아이다에서 벗어나 잠시 시스템을 해볼겁니다! 힌트는 C 소스코드군요 256 바이트 크기의 str 변수를 호출한 뒤 argv[1]의 값을 복사하고, printf 함수로 출력하는 역할을 합니다. 다른 글들은 FSB 취약점(포맷스트링 버그)으로 해결할 수 있다고 하지만 저는 BOF로 깔끔하게 풀겠습니다^^ 일단 바로 실행하면 segmentation fault라고 뜹니다. 이는 허용되지 않은 방법으로 메모리에 접근할 때 출력되는 에러 메시지라는데요, 암튼 안되는 겁니다. 다른 수를 찾아야 해요. 찾던 중 에그쉘이라는 도구를 찾았습니다. - 에그쉘 : 환경변수를 이용해 그곳에 쉘코드를 올려놓고 주소를 출력해주는 프로그램의 소스 이걸로 그럼 편하게 쉘을 딸 수 있지 않을까요? 출처 : https://ge..
-
-
아!!!(해커스쿨 level 관련)System/HackerSchool ftz level 2019. 3. 6. 23:47
참고로 이 블로그는 단순한 정리용이다.이 블로그에 들어오는 사람이 있기는 할지 모르지만 마아아아ㅏㅏ아안약 들어오는 사람들을 위해서 말하자면사실 이 블로그는 나중에 내가 '아 내가 이렇게 많이 공부했구나' 하려고 만든 블로그다진짜 완벽한 오피셜도, 뇌피셜도 아닌 오피셜 뇌피셜 반반에 무많이라서 이 블로그를 신뢰하면 안 된다,(사실 오피셜은 20%정도 밖에 없을지도 모른다. 뇌피셜 60%에 MSG 무지 뿌린 블로그다)어떤 방법으로라든지 피드백이나 지적이 들어온다면 글을 수정할 생각이긴 하지만 그 수정된 글도 완벽히 신뢰해서는 안된다그러므로 그냥 '아 뭐 대충 이런 내용인건가' 하고 문제풀이를 짐작할 수 있는 수많은 블로그 중 하나라고 생각해주면 정말 좋아서 어쩔 줄 모를거다 음, 그러고 보니 요즘 리버싱은 ..
-
해커스쿨 ftz level9(2)System/HackerSchool ftz level 2019. 3. 6. 23:31
char 타입 buf2 배열과 buf 배열을 초기에 설정한다(글자수는 10으로 제한),It can be overflow : 문장 뒤에는 buf 배열을 입력하도록 하는데, 이 때는 40바이트만큼 입력받는다.그 뒤에 buf2 배열의 첫 두글자가 go 일 경우에 레벨 10의 권한을 주고,그 권한으로 패스워드를 알아내면 되는 레벨이다. 라고 (1)에서 C 소스코드를 해석했다.알고 있으리라 믿고, 그 다음단계부터 바로 풀이하겠다 음, 다음 저 hint 파일의 소스코드를 cp 명령어로 복사하자. 여기서 문제가 뭐냐, 하면 저기 C 코드로 짜여진 프로그램의 10바이트짜리 buf 배열 다음에 buf2 배열로 넘어가기까지덤프 메모리가 얼마나 될지 모른다는 게 이번 문제이다.프로그램마다 덤프 메모리가 얼마나 되는지도 다 ..
-
해커스쿨 ftz level9(1)System/HackerSchool ftz level 2019. 3. 6. 22:54
고-뇌하던 level9이다이틀동안 여러 풀이를 보면서 gdb 가 뭔지, 이번 레벨의 의도는 뭔지 대충 짐작할 수 있었다.그런 점에서 포스팅을 안 한 이틀도 그리 의미없는 시간은 아니었다고.. 잡소리 집어치우고,이번 레벨같은 경우에는 특수하게 두가지 풀이법을 올릴 생각인데,첫번째는 무식한 방법두번째는 유식한 방법이다.보면 안다. cat hint 로 힌트를 보면 또 C 소스코드가 나온다사실 지난번 초기에 나왔던 코드보다 훨씬 알아보기 쉬웠는데.. char 타입 buf2 배열과 buf 배열을 초기에 설정한다(글자수는 10으로 제한),It can be overflow : 문장 뒤에는 buf 배열을 입력하도록 하는데, 이 때는 40바이트만큼 입력받는다.그 뒤에 buf2 배열의 첫 두글자가 go 일 경우에 레벨 1..
-
cat 이랑 ./ 차이System 2019. 3. 5. 18:13
그냥 레벨 계속 풀다보니까 cat 명령이랑 ./ 명령의 차이가 궁금했다.어쩔때는 cat 으로 파일을 보고, 어쩔때는 ./로 파일을 보고..그래서 찾아봤더니, 간단하다.cat 명령은 파일의 내용을 출력하거나 만드는 명령으로, viewer 비슷한 느낌이 드는 명령이고,./ 명령은 파일을 실행(execute) 해주는 명령이다.training 하면서 까먹은 게 좀 있는 것 같다. 그것도 포스트했으면 좋았을 걸 레벨9는 gdb 관련, bof 기법을 이용한 레벨이라서 다 찾아보고 공부하고 하는 데에 시간이 좀 걸린다.뭔가 복잡해보여서 학교 갔다와서 지금까지 뻘짓하고 있었다.이제 저녁됐으니 슬슬 레벨9와 10을 풀어봐야겠다
-
해커스쿨 ftz level8System/HackerSchool ftz level 2019. 3. 4. 17:30
어제 레벨8까지 하고 오늘 기분좋게 학교를 가고 싶었지만 상상치 못한 오류가 있어서 어제 클리어를 못했다.고로 오늘 함 / 그리고 이번에는 사진이 굉장히 적다. 주인장이 곧 학원을 가야 해서.. cat hint 로 바로 힌트 확인하고 가자오류라는 게, 저기서 용량이 1481이 아니라 2700으로 생각을 해놔야 한다.해서 어제 종일 용량 1481로 생각하다가 문제가 왜 이리 안풀리지 해서 피방으로 재꼈다. find 명령에서는 파일의 용량을 분류해주는 기능도 있음을 생각하고,find / -size 2700 2>/dev/null 로 찾아보자. 그럼 아무것도 안 나온다. 이유는 2700 뒤에 단위를 표시하는 문자(w, d, c 등)을 추가해야 해당 단위의 용량을 파악한 뒤출력되기 때문. 고로 find / -si..