[root-me.org] ELF x64 - Stack buffer overflow - basic Write-Up 포스팅 썸네일 이미지

War Games/root-me.org

[root-me.org] ELF x64 - Stack buffer overflow - basic Write-Up

::Login:: Host challenge03.root-me.org Protocol SSH Port 2223 SSH access ssh -p 2223 app-systeme-ch35@challenge03.root-me.org WebSSH Username app-systeme-ch35 Password app-systeme-ch35 ::Code:: #include #include #include #include #include /* gcc -o ch35 ch35.c -fno-stack-protector -no-pie -Wl,-z,relro,-z,now,-z,noexecstack */ void callMeMaybe(){ char *argv[] = { "/bin/bash", "-p", NULL }; execve..

2019.11.03 게시됨

[root-me.org] ELF x86 - Format string bug basic 1 Write-Up 포스팅 썸네일 이미지

War Games/root-me.org

[root-me.org] ELF x86 - Format string bug basic 1 Write-Up

::Login:: Host challenge02.root-me.org Protocol SSH Port 2222 SSH access ssh -p 2222 app-systeme-ch5@challenge02.root-me.org WebSSH Username app-systeme-ch5 Password app-systeme-ch5 ::Code:: #include #include int main(int argc, char *argv[]){ FILE *secret = fopen("/challenge/app-systeme/ch5/.passwd", "rt"); char buffer[32]; fgets(buffer, sizeof(buffer), secret); printf(argv[1]); fclose(secret); ..

2019.11.02 게시됨

[root-me.org] ELF x86 - Stack buffer overflow basic 2 Write-Up 포스팅 썸네일 이미지

War Games/root-me.org

[root-me.org] ELF x86 - Stack buffer overflow basic 2 Write-Up

::login:: Host challenge02.root-me.org Protocol SSH Port 2222 SSH access ssh -p 2222 app-systeme-ch15@challenge02.root-me.org WebSSH Username app-systeme-ch15 Password app-systeme-ch15 ::code:: #include #include #include #include void shell() { setreuid(geteuid(), geteuid()); system("/bin/bash"); } void sup() { printf("Hey dude ! Waaaaazzaaaaaaaa ?!\n"); } void main() { int var; void (*func)()=s..

2019.11.02 게시됨

[root-me.org] ELF x86 - Stack buffer overflow basic 1 write-up 포스팅 썸네일 이미지

War Games/root-me.org

[root-me.org] ELF x86 - Stack buffer overflow basic 1 write-up

::login:: Host challenge02.root-me.org Protocol SSH Port 2222 SSH access ssh -p 2222 app-systeme-ch13@challenge02.root-me.org Username app-systeme-ch13 Password app-systeme-ch13 ::code:: #include #include #include #include int main() { int var; int check = 0x04030201; char buf[40]; fgets(buf,45,stdin); printf("\n[buf]: %s\n", buf); printf("[check] %p\n", check); if ((check != 0x04030201) && (che..

2019.11.01 게시됨

[pwnable.xyz] Welcome(50 pts) :: Write-Up 포스팅 썸네일 이미지

War Games/pwnable.xyz

[pwnable.xyz] Welcome(50 pts) :: Write-Up

Are you worthy to continue? 처음에 출력해주는 주소는 v3을 malloc하여 얻은 주소로, 여기를 0으로 만드는게 목적이다. 다른 곳들에 올라와있는 write-up들을 보면 모두 size에 큰 값을 넣어주게 되면 malloc의 리턴 값이 0이 되기 때문에 내가 원하는 주소를 0으로 수정할 수 있다. 하고 끝나던데 이 한줄로 이해가 된다고????? 그래서 저는 삽질을 추가로 했습니다. 아이다로 분석을 해보면 내가 입력하는 데이터도 heap로 들어가고, stack canary도 활성화 되어있어서 '과연 welcome문제인데 canary leak까지 이용을 할까...?'라는 생각으로 stack을 보기보다는 실제 프로그램이 돌아가는 것을 보았다. 다음은 gdb로 까서 일단 실행시켜 본 후 ..

2019.11.01 게시됨

[명령어] Let, Const, Var 에 대하여 포스팅 썸네일 이미지

WEB

[명령어] Let, Const, Var 에 대하여

JavaScript에서 변수를 선언할 때, 일단 1. 생성한다 2. 초기화한다 3. 이용한다 의 식으로 이용된다. 이때 필수적인 것은 아니지만, 변수형을 써주는것이 더 좋다.(c언어의 int, double처럼) 그 이유는 저게 변수 형식을 나타내기 때문(leteral, constant..) 덧붙일만한 이야기는 맨 처음에 선언할 때만 let을 붙여야한다는 점이다. 저렇게 값을 선언할 때만 넣어주면 됩니다. 1. Let let은 값을 바꿀 수 있다(수정가능) 2. Const Constant의 줄임말로, 상수값이며 값을 변경할 수 없다. 3. Var Let과 비슷한거 같지만 뭐가 다른지 모르겠음. 알면 업데이트한다

2019.10.14 게시됨

[JavaScript] JavaScript를 페이지에 추가하기 포스팅 썸네일 이미지

WEB

[JavaScript] JavaScript를 페이지에 추가하기

요즘 JavaScript공부를 시작했습니다:) 오늘은 JavaScript로 웹페이지를 추가하는 방법을 실습해볼게용 아 참고로 저는 간단한 project를 실행할 때는 repl.it라는 사이트를 이용할 겁니다. repl.it는 웹상에서 개발을 할 수 있게하는 사이트로, 짱짱맨입니다:D 우선 정말 간단한 html과 css코드입니다. 실행결과는 다음과 같구요. 냥 여기에다가 정말 간단한 JavaScript를 넣어볼게요 일단 js를 이용하고 싶으면 기본적으로 body의 마지막줄에 10~12번처럼 삽입해주면 됩니다. 거기에다가 다른 옵션들을 추가하는 방식이구요. 일단 저렇게하면 js파일 자체가 실행되게 됩니다. 다음과 같이 입력하면 저렇게 뜹니다. 집가싶 추가로 console.log같은걸 해보시기 바랍니다. 그리..

2019.10.14 게시됨

[ROP] gadget찾는법 포스팅 썸네일 이미지

SYSTEM HACKING/PWNABLE&REVERSING

[ROP] gadget찾는법

ROP(Return Oriented Programming)에서 가장 핵심적인 부분을 고르라고 하면 gadget을 구하는 것일 것이다. 이에는 몇가지 방법이 있다. 1. ROPgadget 이용하기 명령어는 다음과 같이 쓰면 됩니당. ROPgadget --binary (파일명) | grep '(찾을 가젯)' 짠. 다음과 같이 사용하면 된다. 위의 경우는 64비트의 경우고 32비트도 그냥 똑같다. (참고로 64비트에서 인자 받는 순서는 rdi, rsi, rdx 순서라고 한다 외우장) 근데 저기 세 번째의 경우를 보면 아무런 결과가 없다. 그럼 경우는 두가지이다. 1. 진짜로 pop rdx가 없다. 2. ROPgadget 으로는 조회가 되지 않는다. 근데 이경우는 프로그램에 pop rdx가 없을리가 없기때문에 ..

2019.10.11 게시됨

Httpie 설치하기& 간단한 실습 포스팅 썸네일 이미지

WEB

Httpie 설치하기& 간단한 실습

Httpie는 굉장히 중요해요! 시작합시다. 우선 httpie는 다운로드받기 쉽습니다. 더보기 pip install --upgrade httpie 로 우선 httpie를 vscode에 다운받고, Httpie 명령어를 배워봅시다. Httpie는 항상 다음과 같은 형식으로 보내지게 됩니다. http [flags] [METHOD] URL [item[item]] =옵션 운영체제 상관없이 터미널이면 모두 상관없는 것으로 알고있습니다. 하지만 윈도우로밖에 안해봐서 리눅스같은 다른 체계는 잘 모르겠네요. 이제 실습을 조금 해봅시다. 우선 httpie를 다운받으시고, http get (웹사이트이름) 을 보내면 헤더와 http코드가 나오게 됩니다. 전글의 테이블을 참고해도 좋을 것 같습니다. 참고로 example.com..

2019.10.08 게시됨