목록휴지통 (7)
y0u_bat
[FC4] 2. cruel -> enigma 풀이 짤려서 안보이는데 리모트입니다. canary가 있네여. gdb로 보니 버퍼가 더미포함 260바이트네여.. 일단 대충 ret뒤에는 무조건 카나리가 들어와야 됩니다. 오타는 무시해주세요.. strcpy가 00을 만나면 복사가 거기까지 해서 끝기는데요.그래서 fake_ebp로 풀어야되는 문제입니다. 입력하는곳이 fgets이고 임시버퍼는 stdin입니다. 임시버퍼를 찾았습니다. 0x8cb740 이네요. 대충 a *260 해주시고, 실행 아까 구한 주소 stdin주소 넣으면 저렇게 나오는데,앞에 하나 하나 뒤지다가 입력한 값이 있는곳을 발견했데요.stdin 에서 4번째 부분을 보면 입력한 값들이 들어있는걸 볼수있는데요. 다시 실행해보면 알겠지만 저 값은 b7f[X..
[FC4] 4. dark_stone -> cruel 풀이 gate랑 문제는 같는거같다. ret sled로 풀었다. 버퍼는 더미가 없어서 256바이트 그대로 이다. ret의 브포걸고 ret까지 덮어서 실행시켜서 스택을 보면 주소값들이 랜덤으로 변경되는 걸 볼 수 있다. 여기서 고정된 값을 찾아야되는데, 고정된 값에서 3번째가 null인걸 찾아야 된다. 찾았으면 여기서 첫번째인 0x008cad3c에 쉘실행시키는파일을 심볼릭 링크로 걸어야된다. 심볼릭 링크 걸어주고, execl 함수 주소를 구해준다. 그리고 a * "260 + ret * 7 + execl 하면 쉘이 따진다. ret sled라는 개념은 이미 알고 있다고 생각하고 대충 넘어가서 설명한다. 클리어.
[FC3] 5. evil_wizard -> dark_stone 전꺼랑 문제가 거의같다.다만 입력함수랑 리모트로 변했다는 점만 달라졌다. got over wirte로 풀면된다. strcpy_plt,ppr,print_plt,printf_got,system1바이트씩주소,/bin/sh주소,bss주소를 구해야된다. 위에 주소를 구하는 과정이다. 위에 구한 주소 토대로 페이로드를 짜면 된다. 구한거 토대로 하는데 쉘이 안따지는경우가 있다. system 1바이트짤라 구한주소를 다시 구해서 해보면 된다. 위처럼 페이로드를 작성했다. 클리어
[FC3] 4. hell_fire -> evil_wizard got over wirte 문제이다. 우리가 구해줘야될것은 strcpy@plt , ppr , got을 덮을 함수 (got,plt), system 주소 1바이트씩 주소, bss영역주소, /bin/sh주소 이정도다. 위 과정은 방금말한것들을 구하는 과정이다. 페이로드이다. 간단하다 ret을 strcpy로 맞추고 bss에 system_1를 넣는다 그러면 이제 ppr 되서 다음 strcpy로 이동된다. 이제 bss+1에 system_2를 복사하고 ppr 되서 다음 strcpy을 간다. 이런식으로 반복하다 bss 영역에 system주소가 다들어가고 printf@got부분에 bss(system)주소로 덮는다. 그리고 printf@plt를 인자를 /bin/..
[FC3] 3. dark_eyes -> hell_fire 전에 문제랑 달라진거는 입력함수가 fgets로 변하고 리모트로 변했다는 점입니다. 저는 처음에 ret sled를 풀려고 해보았습니다. nc localhost 7777에 해보니까 아무런 반응이 없으며,원본파일에 해보니 쉘이 따졌지만 권한이 안올라간걸 볼수있습니다.. 원본 파일을 exploit 시 셸을 획득할 수 있으나 권한이 상승되지 않은 이유는 원본 파일에는 setuid가 걸려져 있지 않아서 실행자의 권한으로 파일이 실행되어서 그렇습니다.해당 문제는 홈 디렉토리의 hell_fire를 exploit하는 것이 아닌 xinetd로 동작하는 hell_fire라는 서비스를 공격해야하는 문제니까요^^ localhost 7777 했을 때 반응하지 않은 이유는 ..
[FC3] 1. lgate -> iron_golem 이 페도라3 환경에는 nx, ascii-armor,aslr 보호 기법들이 걸려있다. nx - 스택을 실행할 권한이 없음aslr - 스택의 주소값이 실행할때마다 랜덤으로 변함ascii-armor - lib 주소 맨 앞자리가 00으로 되서 연속으로 호출불가능 소스를 보자 lob의 gate문제와 같다. gdb를 한번 보면 더미가 붙는걸 알수있다.그리고 스택 주소값이 랜덤으로 실행할때 마다 변하는걸 볼 수 있다. 이문제의 힌트는 fake_ebp이다. aslr 때문에 스택 주소값이 랜덤으로 된다. got 주소 같은경우는 고정되어 있다.got 주소를 구했다 ( 0849618 ) 이다. rtl를 하기 위해 execl주소를 구한다.그런데 fake ebp를 하는데 만약..