Assassin(3)
-
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 - 16. assassin -> zombie_asssassin
위 문제를 풀다가 도저히 이해가 힘들어서 Fedora3를 풀어봤는데 Fedora3의 gate문제도 비슷한 문제였습니다 ㅎㅎ 그래서 fakeebp를 풀어보고, 비슷한 방법으로 이 문제를 시도해봤지만.. 역시 안되더군요 ㅎㅎ 그래서 초심으로 돌아가봤습니다. 일단 로그인을 합니다. 소스코드를 봅니다. FEBP를 사용하라고하고, 리턴 뒤에값을 사용하지 못하는군요..ㅠ2번문제를 포스팅했던 RTL을 이용해서 풀어볼 예정입니다. 계획한 payload는 다음과같습니다.RTL*12 + "\n90"*28 + "buffer-4" + leavebuffer sfp ret 1. system함수 위치 2. /bin/sh 위치3. buffer-4 위치4. leave위치만 알면 됩니다. system 함수는 아래와 같 이 찾습니다. 이..
2018.07.30 -
LOB - 15. giant -> assassin
어느때와 다름없이 먼저 로그인을 합니다. 당연히 소스코드를 열어봅니다. 예전에 봤던 문제들하고 비슷한 유형이네요.이번에는 리턴값 시작이 "\xbf", "\x40"이 아니여야하네요! 그리고 가장 중요한!! 저희가 넣을 수 있는 버퍼의 최대값이 없다는 점입니다.buffer와 sft는 초기화가 되지만 그 뒤는 저희의 맘대로니까요!!(grin) 그럼 argv[2]에 인자를 넣어주고, 그 값이 어디로 가는지를 찾아봅시다! 위의 곳으로 가네요! 하지만 리턴주소를 보면 "\x90\xfa\xff\xbf"로 향해야하는데조건에 맞아서 종료되게 됩니다! 조금 돌려서 생각해보니 리턴주소를 자기 자신으로 하면 리턴을 한번 더 실행하니 그 뒤에 우리가 원하는 ret주소를 입력하면 무난히 통과할 것 같습니다! 리턴주소를 찾기위해 ..
2018.07.30