[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 게시됨

WEB

Http Request & Method

서버와 클라이언트가 있다고 하면, 클라이언트는 웹사이트를 이용하면서 서버와 수많은 상호작용을 하게 된다. 주로 통신규약은 http를 이용하고, django에서는 get과 post를 이용한다. get은 말그대로 공간을 가져달라는 것이고, post는 자신의 데이터를 가지고 서버에게 처리해 달라는 뜻이다. 이렇게 Django에서는 get과 post로 모든 것을 해결했다면 Restful framework에서는 get, post, put, delete, patch, opinion까지 있는데, 각 method에 대한 뜻은 다음과 같다. Method 뜻 Get 요청받은 URL의 정보를 검색하여 응답한다. Post 요청된 자원을 생성한다. Put 요청된 자원을 수정한다. Delete 요청된 자원을 삭제한다. Patch..

2019.10.08 게시됨

WEB

[JSON] JSON에 대하여

오늘은 JSON에 대해서 알아봅시다. JSON에 대하여 JavaScript Object Notation의 줄임말로, 데이터의 송수신을 자바스크립트의 객체로서 수행할 수 있게끔 하는 가벼운 문자열 데이터 표현식을 말합니다. 이 JSON은 JavaScript로 이루어져있지만, Django나 PHP로 이루어져있는 서버도 JSON이 이용가능하다고 합니다. 어떤 사람이 자바스크립트 객체로 어떤 정보를 보낼 때, 모든 수신자가 자바스크립트 객체 표현식을 아는 것을 아닙니다. 따라서, JSON은 누구나 아는 자료형인 문자열로 바꾸어 보냅니다(Serializing) 더 자세한 건 JSON 사이트 참조. http://www.json.org/ JSON JSON (JavaScript Object Notation) is a ..

2019.10.08 게시됨

[정올] 기초다지기_함수1_형성평가 1_code170 포스팅 썸네일 이미지

Coding_Algorithm/정올 문제풀이

[정올] 기초다지기_함수1_형성평가 1_code170

170 : 함수1 - 형성평가1 제한시간: 1000 ms 메모리제한: 0 MB 해결횟수: 4043 회 시도횟수: 5489 회 ‘@’문자를 10개 출력하는 함수를 작성 한 후 함수를 세 번 호출하여 아래와 같이 출력하는 프로그램을 작성하시오. first @@@@@@@@@@ second @@@@@@@@@@ third @@@@@@@@@@ #include void print(){ printf("@@@@@@@@@@\n"); return; } int main(void){ printf("first\n"); print(); printf("second\n"); print(); printf("third\n"); print(); return 0; }

2019.10.03 게시됨

[해커스쿨 LOB] Level4: goblin >> orc 포스팅 썸네일 이미지

War Games/해커스쿨 LOB

[해커스쿨 LOB] Level4: goblin >> orc

Level 4. Goblin >> Orc Theme: EggHunter 레츠 로그인 id: goblin pw: hackers proof 디렉토리 확인! [goblin@localhost goblin]$ bash2 [goblin@localhost goblin]$ ls -l total 20 -rwsr-sr-x 1 orc orc 12567 Feb 26 2010 orc -rw-r--r-- 1 root root 505 Mar 29 2010 orc.c [goblin@localhost goblin]$ nl orc.c 1 /* 2 The Lord of the BOF : The Fellowship of the BOF 3 - orc 4 - egghunter 5 */ 6 #include 7 #include 8 extern c..

2019.09.25 게시됨

[해커스쿨 LOB] Level3: cobolt >> goblin 포스팅 썸네일 이미지

War Games/해커스쿨 LOB

[해커스쿨 LOB] Level3: cobolt >> goblin

Level 3. Cobolt >> Goblin Theme: Basic BufferOverFlow (w/ stdin) 로그인합시다 id: cobolt pw: hacking exposed ls -l로 디렉토리를 확인하면 역시나 [cobolt@localhost cobolt]$ ls -l total 16 -rwsr-sr-x 1 goblin goblin 11824 Feb 26 2010 goblin -rw-r--r-- 1 root root 193 Mar 29 2010 goblin.c [cobolt@localhost cobolt]$ nl goblin.c 1 /* 2 The Lord of the BOF : The Fellowship of the BOF 3 - goblin 4 - small buffer + stdin 5..

2019.09.24 게시됨

[해커스쿨 LOB] Level2: gremlin >> cobolt 포스팅 썸네일 이미지

War Games/해커스쿨 LOB

[해커스쿨 LOB] Level2: gremlin >> cobolt

Level 2. Gremlin >> Cobolt Theme: Basic BufferOverFlow (smaller buffer) 들어갑시다. id: gremlin pw: hello bof world 기본 bash2입력 후, ls -l로 디렉토리를 확인해주면 [gremlin@localhost gremlin]$ bash2 [gremlin@localhost gremlin]$ ls -l total 20 -rwsr-sr-x 1 cobolt cobolt 11970 Feb 26 2010 cobolt -rw-r--r-- 1 gremlin gremlin 291 Mar 29 2010 cobolt.c cobolt.c파일을 열어보면 [gremlin@localhost gremlin]$ nl cobolt.c 1 /* 2 The ..

2019.09.24 게시됨

[해커스쿨 LOB] Level1: gate >> gremlin 포스팅 썸네일 이미지

War Games/해커스쿨 LOB

[해커스쿨 LOB] Level1: gate >> gremlin

Level 1. Gate >> Gremlin Theme: Basic BufferOverFlow LOB에 오신 여러분들 환영합니다! 우선 들어가줍시다. id: gate pw: gate 아 일단 첫 문제인 만큼, 우리가 이 문제를 왜 풀고있으며, 어떻게 하면 이 문제를 풀 수 있는 것인지 탐구해봅시다. 일단 포너블 문제들의 기본은 관리자의 권한을 탈취하는 것입니다. 그런 뒤 정상적으로는 접근할 수 없는 곳들을 접근한다는 것이 기본적인 시스템 해킹의 개념이고요. 그래서 똑같이 LOB의 모든 문제들도 상위 권한을 획득하여 다음 단계의 비밀번호를 알아내는 것이 목적입니다. 그러면 LOB 문제의 흐름은 다음과 같습니다. 1. 프로그램상의 취약점을 발견합니다. 2. 취약점을 기반으로 공격 시나리오를 작성합니다. 3...

2019.09.18 게시됨

etc/Tips

우분투를 처음 시작할 때 다운받을 플러그인

우분투를 처음 시작하는 당신에게 -우분투 각종 플러그인 모음- 1. ubuntu 다운로드: https://jimnong.tistory.com/673 우분투 리눅스 다운로드 방법(Desktop 버전) 컴퓨터로 우분투 리눅스(Ubuntu Linux) 공식 홈페이지에 접근하면 사용 중인 PC의 환경에 맞는 bit를(32bit/64bit) 자동으로 골라서 iso파일이 받아지게끔 조치해줍니다. 먼저 다운로드 페이지에 들어갑� jimnong.tistory.com 2. vim설치: https://byd0105.tistory.com/7 - Ubuntu에 vi(vim)에디터 설치 - Vi 에디터를 설치하기 위해서 먼저 Ubuntu가 필요하다. http://byd0105.tistory.com/6 Ubuntu가 설치 완료되..

2019.08.14 게시됨

[IDA] 03. 아이다 안에서 구조체 활용하기 포스팅 썸네일 이미지

etc/Tips

[IDA] 03. 아이다 안에서 구조체 활용하기

[IDA] 03. 아이다 안에서 구조체 활용하기 어떤 이유인지는 모르지만 IDA는 아직 구조체를 인식하지 못하는 것 같습니다. 위 코드는 ASIS CTF 의 문제 Cat의 일부입니다. 보면 27번 줄에 0x18만큼 heap에 할당을하고 밑에 차례대로 name과 kind, 그리고 age를 입력받네요. 보아하니 구조체인데, 알아보기 힘든 면이 없지않아 있네요. 다음은 Structures탭에 들어간 모습입니다. 여기서 새로운 구조체를 선언해줄 수 있는데요, 여기서 그냥 Insert키를 눌러주면 됩니다. 여기다가 입력을 해주시면 이렇게 구조체가 추가된 것을 볼 수 있는데, 이제 안에 있는 멤버들도 넣어주어야겠죠? 그건 ends를 누른 뒤에 'd' 키를 누르면 됩니다. 그러면 저런식으로 멤버들을 추가시킬 수 있는..

2019.08.10 게시됨

[IDA] 02. 함수 안으로 들어가기 포스팅 썸네일 이미지

etc/Tips

[IDA] 02. 함수 안으로 들어가기

[IDA] 02. 함수 안으로 들어가기 정말정말정말 혹시나 싶어서 쓰는 글이다. 내가 그랬기 때문ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 아이다에 파일을 넣고 실행하면 나타나는 첫 번째 창이다. 왼쪽에 Functions Window에는 각각 분석된 함수들이 리스트 되어있고, 오른쪽에는 선택한 함수의 어셈블리어의 코드가 나와있다. 처음에 나는 이게 끝인줄 알고 어셈분석을 했다ㅋㅋㅋㅋㅋ그러면서 "이게 천만원씩이나 한다고...????"하면서 욕했던게 기억이 난다ㅋㅋㅋㅋ 자, 진정하고 이 상태에서 F5버튼을 눌러보자. 짠. C언어 코드로 바뀌었죠? 이래서 천만원짜리라는 겁니다. 더이상 저처럼 삽질하는 사람이 없기를 바라며, 저는 이만. 끝.

2019.08.10 게시됨