SMALL

rootjjang 8

[Pwnable.kr] fd 문제 풀이![재업로드]

할 게 없어서 pwnable.kr 문제들을 다시 재업로드하려고 합니당 엄무니 리눅스에서 파일 디스크립터란 게 뭐예여? 라고 하네요 함 putty로 접속해 풀어볼게용 접속 설정은 요래 해주시면 됩니당 비밀번호에 guest까지 쳐서 로그인하면 접속 성공! 이제 소스코드를 확인해보죠 #include #include #include char buf[32]; int main(int argc, char* argv[], char* envp[]){ if(argc

Pwnable/Pwnable.kr 2022.06.19

다양한 Buffer OverFlow 방법들[미완성]

어떤 분의 부탁으로 글을 쓰고 있는 루트짱이라고 합니다 흠 드가자 제가 사용한 운영체제는 깔기가 귀찮아 LOB에서 설명을 하려 합니당 설명에 앞서 저는 설명에 딱히 자신이 없어 실습 위주로 진행하려 하니 양해 부탁드리겠슴다ㅇ 이름은 귀찮아서 bof로 해놓았고 코드는 LOB 문제에서 참고했습니다 제가 설명드리는 기법이나 방법들을 따라 하시면서 감을 잡으시면 좋겠습니다 우선 첫 번째! buffer에 쉘코드를 넣은 후 ret에 buffer의 주소를 write하는(덮어씌우는) 방법! 근본적인 방법인데 쉘코드를 넣을 공간이 충분하고, ret에 관련된 보호기법이 안 걸려있을 때 사용됩니당 원리는 인자(우리가 입력하는 데이터)가 strcpy()로 인해 buffer에 저장되고 ret에 buffer의 주소를 넣어 우리가..

Pwnable 2022.05.29

[Protostar] Stack Six!!!!

소스코드 날래 확인하라우!! 이야 코드가 길어졌네요 ret에 이상한 값을 대입해주고 비교하는데 ret과 0xb000000을 &연산해서 0xb000000와 같으면 프로그램이 종료되네요 저기서 &연산해서 0xb000000와 같으면 종료된다는 말이 ret이 0xb로 시작하면 프로그램이 종료된다는 겁니다 그래서 변수에 쉘코드를 넣는 방식과 환경변수로 쉘코드의 주소를 이용하는 방식이 막히겠네요 이때 RTL을 사용해볼 겁니다! system 주소와 인자에 들어가 /bin/sh의 주소를 구해봅시당 https://qpalzm1029.tistory.com/26 [FTZ] level11 풀이!!! 로그인해서 ls로 무슨 파일들이 있는지 확인해봅니다 hint 파일과 attackme 파일이 있네요 file 명령어로 파일을 확인..

Pwnable/Protostar 2022.05.25

[Protostar] Stack Five 문제 풀이!!!

E nānā i ke kumu kumu!! 갱장히 코드가 짧네요 환경변수로 쉘코드의 주소를 넣는 방식으로 문제를 해결해 보겠습니당 환경변수를 설정했고 이제 환경변수 안에 넣은 쉘코드의 주소를 알아보죠 컴파일 후 실행을 시켜 주소를 구해봅시당 주소가 나왔네요 이제 얼마큼 넣어줄지 gdb로 알아봅시다 ebp-64에 있으니 SFP까지 4byte 더한 후 RET에 아까 구한 쉘코드의 주소를 넣어주면 쉘이 따이겠습니다 Payload = (python -c 'print "\x90"*68 + "\x18\xff\xff\xbf"'; cat) | ./stack5

Pwnable/Protostar 2022.05.24
LIST