목록분류 전체보기 (66)
ghkdtlwns987
내가 시스템분야를 공부하다 보니 무엇을 공부하는지, 어디까지 공부해야하는지 물어보는 사람이 몇몇 있다. 나도 처음엔 그랬기에 그냥 내 생각을 적어보고자 한다. 나보다 고수분들도 많고, 나도 잘 하지는 못하지만, 지극히 개인적인 생각을 적어보겠다. 1. C언어 - 무조건 해야 한다. (계속 공부해도 부족한게 C언어이다.) (내가 했던 것) 열혈 C - C언어 코딩도장 - KNK - 윤성우 자료구조...(현재 진행) -그냥 하세요, 보안공부하는 사람 중에 C언어를 모르는 사람은 없어요 ㅠㅠ (IDA, Ghidra 분석할때 포인터 공부 제대로 안해놓으면 멘붕옴 ㅋㅋ...) 2. python - 이것도 꼭 알아야 함. 점프 투 파이썬(문자열 다루는 방식, 리스트 접근 등...) - 우선 이정도만 공부해보도록 하..
우선 리눅스롤 power_off 한 후에 Edit 창에 들어가서 Expand 를 누른다. (난 suspend라서 안됨)(그냥 보여주려고) 용량 설정 후 리눅스에 들어간다. sudo apt-get install gparted 설치 하고 sudo gparted 명령어 치기 위의 창에서 드리고 해서 용량을 설정 하고 빨간 부분을 클릭하면 성공적으로 용량이 확장된다.
시험 끝! 헤헹 FULL RELRO, NX enabled 되어 있다. 그리고 libc_32.so.6 파일을 준다. -> 그렇다는 건 libc_base 를 구해야 할 것이다. main 함수 더보기 int __cdecl main(int argc, const char **argv, const char **envp) { int v3; // eax int v5; // [esp+0h] [ebp-3Ch] const char *v6; // [esp+4h] [ebp-38h] char s; // [esp+8h] [ebp-34h] ebp - 0x34 int v8; // [esp+38h] [ebp-4h] init_proc(); v8 = 0; memset(&s, 0, 48u); // ebp-0x34(52byte) v5 = 0x..
시험기간이고, 시험 3일 남았는데, 멘탈 터져서 유튜브 보던 중, RTL 에 대해 물어보는 사람이 있어서 설명 해 준 김에 글을 적어보았다. ㅎㅎ 꽤 많은 사람들이 RTL을 설명할 때 왜 Dummy 값을 넣어주어야 하는지 모르는 사람이 꽤 있는거 같아서 글을 써보고자 한다. (Dummy 에 들어가는 곳은 RET 에 넣어준 함수가 종료된 후 호출하는 주소 라는 정도만 알고있는 것 같다.) RTL 에서 Dummy() 값에 왜 넣어주는지, 이유가 무엇인지, 한번 알아보도록 하자. 사실 이러한 원리는 스택 구조를 알아야 한다. 그 전에 leave, ret, call 명령어가 무엇을 의미하는지 보고 넘어가겠다. leave = mov esp ebp pop ebp ret = pop eip jmp eip call = ..
요즘 시험공부 때문에, 글을 얼마 못썼다... 술먹고 새벽에 글을 쓰고 있는데, 과연... 글이 잘 써질지 모르겠다. 문제보니까 대충 힙 문제인거 같다. main() void __cdecl __noreturn main() { int v0; // eax char buf; // [esp+8h] [ebp-10h] unsigned int v2; // [esp+Ch] [ebp-Ch] v2 = __readgsdword(0x14u); setvbuf(stdout, 0, 2, 0); setvbuf(stdin, 0, 2, 0); while ( 1 ) { while ( 1 ) { sub_8048956(); read(0, &buf, 4u); v0 = atoi(&buf); if ( v0 != 2 ) break; sub_8048..
구글 프로젝트 제로 팀의 연구원이 페이스북 왓츠앱에서 취약을 발견하였다. exploit 방법은 다음과 같다. facebook 통화를 할 때 WebRTC 요소를 구축하는데, 문제는 그냥 전화만 걸더라도 상대방에게 신호가 가는 것이다. 이를 악용해 내가 전화건 상대방을 염탐할 수 있게 되는 것이다. 이러한 취약점을 발견한 연구원은 6만달러 포상을 받은 것으로 알려졌다. www.boannews.com/media/view.asp?idx=92834&kind=4&sub_kind=
ㅎㄷㄷ... 다 걸려있디. 한번 어떨지 분석해보자. undefined4 main(void) { undefined4 uVar1; uint uVar2; undefined4 *puVar3; int in_GS_OFFSET; uint local_78; undefined4 local_74 [8]; undefined local_54 [64]; int local_14; local_14 = *(int *)(in_GS_OFFSET + 0x14); FUN_000108b5(); __printf_chk(1,"What your name :"); read(0,local_54,0x40); __printf_chk(1,"Hello %s,How many numbers do you what to sort :",local_54); __iso..
file 3x17 을 하면 stripped 되어있고, statically linked 되어 있는 것을 확인 할 수 있다. checksec 으로 보호기법을 확ㅇ니해 보면 Partical RELRO 임으로 특정 got나 갑을 덮을 수 있을 것이다. 기드라로 한번 들여다 보자. 프로그램이 ㅅ일행되면 addr 과 data 가 출력되며 입력받는데, gdb에서 info func() 로 확인했을 땐 main() 함수가 없었으므로 직접 찾아봐야 한다. 여기를 보면 addr을 출력해 주는 함수가 main() 함수라고 추측 할 수 있다. 그렇다면 main() 함수의 주소는 0x401b6d 가 될 것이다. main() 함수를 보면 addr 로 값을 입력받고, 그 값에 데이터를 덮을 수 있도록 되어있다. 그럼 main() 함..
pwnable.tw 문제를 푸는데, .fini 는 따로 정리를 안해서 정리만 간단히? 하도록 하겠다. gdb로 프로그렘을 분석하다 본 사람들이면 __libc_csu_init() , .fini, .init 과 같은 함수들을 자주 봤을 것이다. 하지만 이게 무슨 함수인지 모르는 사람이 있다. __libc_csu_init 은 rtc 로 exploit 할 수 있고 , .init 또한 주소를 변경해 exploit 할 수 있는데, 이번엔 dl_fini로 exploit 하는 방법을 언급하고자 한다. dl_fini 를 보면 call 하는 부분이 있다. call 하는 명령에서 r12의 주소가 스택상에 존재한다. -> bof 나 fsb 로도 exploit 할 수 있다. 코드를 따로 가져오긴 좀 귀찮으니 pwnable.tw..
보호되어 있는 글입니다.