exploit(13)
-
FC3-4 hell_fire-> evil_wizard
rop문제이다. lob풀면서 Rop도 해야겠다고 생각해서 ropasaurusrex로 풀어보려고하였지만, 롸업을 봐도 잘 이해가 가지않았다. 하지만 이번 문제는 가젯을 직접 주어줘서그런지 풀이를 보니 점점 rop에 대한 이해도가 높아지는 것 같았다. 먼저 소스코드를 보자 힌트가 got overwriting이므로 got을 덮어쓰라는 것 같다.이 힌트를 참고해서 문제를 풀어봐야겠다. rop를 사용하려면 우리가 구해야하는 주소들이 있다.1.system2.printf@plt3.printf@got4.strcpy@plt5. pop pop ret6. "/bin/sh" 이렇게 6개가있다. 하나하나 순서대로 구해봅시다! 1.system 2. printf@plt 3. printf@got 4. strcpy@plt 5. ppr..
2018.08.03 -
FC3-3 dark_eyes -> hell_fire
이번문제는 LOB20에서 못풀었던 리모트어택이다.LOB와 비슷한 유형으로 출제되었다면 못풀고 넘어갔겠지만, 다른 간단한 방법이 있어서 풀 수 있게 되었다. 먼저 소스코드를 살펴봅니다. ret에 bp를 걸어주고. sys함수 내로 들어가게되면 do_system을 호출하는 함수가 있습니다. 이를 따라서 do_system을 들어가봅니다.https://github.com/david942j/one_gadget위 사이트를 들어가보면 do_system내에는 원샷가젯이 있다고 한다. 바로 위에있는 파란색 부분이다 이부분으로 ret를 돌려주면 바로 shell획득이 가능하다. exploit코드는 dummy+ret 하면 끝이다 여기서 dummy값 계산할때는 다음과같다. 스택을 총 518할당하니까 10진수로 바꾸면 1304이다..
2018.08.02 -
FC3-2 iron_golem -> dark_eyes
개인적으로 드는 생각인데 현재까지는 LOB뒷부분보다는 FC앞부분이 훨씬 쉬운 느낌이다. LOB20번째를 풀려다가 소켓통신부분은 우분투 설정도 그렇고 뭔가 안맞는부분이 많은거같아서 도움을 받기로하고 FC부터 푸는중이다 :) 그럼 문제를 살펴보자.--소스코드-- EBP를 변조해서 푸는거는 더이상 어려워 진거 같습니다.하지만 문제에서 RETsleding이라고 알려줬으니 이부분을 이용하면 그래도 쉽게 풀 수 있을거라고 예상합니다. 어셈블리를 보고 RETsleding을 위해서 리턴부분에 bp를 걸어주고, 리턴까지 덮어주기위해서 덤프값을 272byte넣어줍니다. esp위치를 보면 fafe부분을 execve로 덮어주고, 0083부분을 심볼릭링크를 걸어주면 될 것 같습니다. 그럼 페이로드는 dump[268] + ret..
2018.08.02 -
LOB - 19. nightmare -> xavius
LOB19번 문제입니다. 로그인을 하고 소스코드를 봅니다. 코드가 긴편에 속하는군요 스택, 바이너리, 라이브러리 다막혔습니다. 그런데 왜 stdio input으로 문제를 줬을까요..이게 조금 수상해서 메모리를 계속 따라가 봤습니다. 그랬더니 인풋한 값이 아래처럼 그대로 보이더군요.0x41414141이 보이는데 기분이 굉장히 좋았습니다. 아주 간단하게 리턴값을 이부분으로 조작해줍시다. (grin) 19번 문제치고 간단하게 풀리네요.뭔가 더 어려운문제였는데 그 속임수에 안걸린거 같기도 하고요..
2018.08.01 -
LOB - 18. succubus -> nightmare
오늘은 해야하는걸 알지만 머리에 너무 안들어와서 숨질것 같았다...ㅎㅎ 먼저 로그인을 하고!! 소스코드를 분석하자! 버퍼 뒷부분을 AAAA로 덮어서 ret뒤에 있는 코드를 사용 못하게끔 한다.그리고 힌트에는 PLT라고 나와있다. 스택부분에는 RLT을 이용하고, 뒷부분은 strcpy함수를 이용해서 다시 버퍼쪽으로 오게끔 하면 된다. 따라서 payload는 아래와같다.&system + dummy[4] + $/bin/sh + dummy[32] + &strcpy + dummy[4] + &ret+4 + &buf 생각보다 복잡하게 느껴지지만 우리가 구해야하는것들은 간단하다. 먼저 메인을 분석해서 strcpy위치를 구한다. 그리고 버퍼위치을 구하기위해서 소스코드를 약간 수정한다 system함수위치를 찾고 /bin/s..
2018.07.31 -
LOB - 17. zombie_assassin -> succubus
이번문제 17단계 치고는 꾀나 쉬웠던 것 같습니다. 로그인을 하고 소스코드를 봅시다 문제를 보니 코드가 엄청 길군요... 위에 함수들을 살펴보면 각각 순서대로 이어주면 될거같은 느낌입니다.! 크게 아래 메인함수에 신경쓰지않아도 이번문제는 풀 수 있을 것 같습니다! 그럼 각각의 함수를 이어주기 위해서 각각 함수의 주소를 얻어보죠! 함수의 주소를 얻은 뒤에는 4btye+&shellcode+"/bin/sh" 각각 이어준다음에 쉘코드의 주소를 얻기 위해서 "ABCD"를 넣어주고 코어를 만들어냅니다! 그러고 코어를 분석해서 "/bin/sh"가 들어갈 위치를 찾습니다! 그 코드를 기반으로 exploit해주면!? .....패스워드가 의미심장하다.. 다음문제에서 엄청 화가날 것으로 예상된다. (grin...)
2018.07.31