# pwnable

150개의 포스트

pwntool 사용법

원하는 위치까지 받아옴int형으로 문자 받아올때 사용데이터 전송데이터 한 줄로 전송 -> \\n 개행 추가특정 문자열까지 받은 후 데이터 전송값을 32bit 리틀엔디안 방식으로 packing값을 64bit 리틀엔디안 방식으로 packing앞으로 추가

2일 전
·
0개의 댓글
·
post-thumbnail

Shell_basic(dreamhack)

이미 입력 값을 받아서 실행시켜준다. shellcode만 짜서 넣으면 된다.flag 파일 위치를 읽어와서 출력하면 될 것 같다. (orw shellcode)Flag 값을 littleEndian으로 변환해주기 위해 코드를 만들었다.asm code 작성해주고 저번에 만들

2023년 5월 27일
·
0개의 댓글
·
post-thumbnail

Execve shell code

syscallasembly codeC coderun.sh에 bp 걸고 실행run_sh+11까지 실행 후 스택 => 0x7fffffffe0c0 = 0x68732f6e69622f(/bin/sh)run_sh+27에 bp 설정 후 확인해보면 rsp, 0, 0 인자로 execv

2023년 5월 27일
·
0개의 댓글
·

SECCOMP(2)

앞서 SECCOMP가 무엇이고, 어떤 식으로 동작하는지에 대해서 간단히 알아보았다.그러면 이 SECCOMP가 실제로 어떻게 적용되어 있고, 이를 우회하는 방법에 대해서 알아보자.seccomp-tools를 사용해서 확인한다. 다음은 그 예시이다 :struct sock_f

2023년 5월 22일
·
0개의 댓글
·
post-thumbnail

[dreamhack][writeup] System-stage7 : basic_rop_x64

buf와 rbp 사이의 바이트 수를 구해야 한다.read 함수 호출 직전에 rsi 레지스터로 rbp-0x40 주소가 들어가는 것을 확인할 수 있다.buf 주소 : rbp-0x40flag : DH{357ad9f7c0c54cf85b49dd6b7765fe54}

2023년 5월 21일
·
0개의 댓글
·
post-thumbnail

[dreamhack][writeup] System-stage7 : basic_rop_x86

카나리가 없다. buf 와 ebp 주소 사이 바이트 수만 구하면 될 것 같다.buf와 ebp 주소 사이 바이트 수read 함수에서 buf 가 두번째 인자로 들어가고 있다. read 함수 호출 직전에 esp-4 에 들어있는 값이 무엇인지 확인해보자esp-4 에는 ebp-

2023년 5월 21일
·
0개의 댓글
·
post-thumbnail

[dreamhack][writeup] System-stage7 : rop

이번 문제는 Return to Library 와 달리 system 함수가 실행되지 않는다.RELRO 가 Partial RELRO 이므로 GOT Overwrite 가 가능하다.카나리를 우회하기 위해서 다음과 같은 정보가 필요하다.buf와 canary 주소 차이canary

2023년 5월 21일
·
0개의 댓글
·
post-thumbnail

[dreamhack][writeup] System-stage7 : Return to Library

해당 바이너리에는 PIE 기법이 적용되어 있지 않으므로 데이터 영역과 코드영역의 주소는 변경되지 않는다.위 코드에서는 system 함수가 실행되었으므로, PLT 에 system 함수가 등록되었을 것이다. Return to PLT 기법을 사용하여 exploit 코드를 작

2023년 5월 21일
·
0개의 댓글
·
post-thumbnail

[dreamhack] System-stage7 : NX & ASLR

ASLR(Address Space Layout Randomization) 은 바이너리가 실행 될 때마다 스택, 힙, 공유 라이브러리 등을 임의의 주소에 할당하는 보호 기법이다.ASLR 은 컴파일러에서 설정하는 것이 아닌 커널에서 지원하는 보호 기법 이며, 다음 명령어로

2023년 5월 21일
·
0개의 댓글
·
post-thumbnail

[dreamhack] System-stage7 : Static Link vs Dynamic Link

라이브러리는 컴퓨터 시스템에서, 프로그램들이 함수나, 변수를 공유해서 사용할 수 있게 한다.대부분 프로그램은 prinf, scanf, strlen, memcpy, malloc 과 같이 공통으로 사용하는 함수들이 많은데, 이렇게 자주 사용되는 함수들의 정의를 묶어서 하나

2023년 5월 21일
·
0개의 댓글
·

꿀팁?

pwndbg에서 ASLR 켜기set disable-randomization off도커 내부에서 gdb 돌릴 수 있게 하기docker run --cap-add=SYS_PTRACE --security-opt seccomp=unconfined파이썬 string to int명

2023년 5월 19일
·
0개의 댓글
·

pwnable 풀 때 유의할 점..

사용되는 라이브러리가 무엇인가?도커파일이 주어졌을 때, 도커파일을 빌드 후 실행해서 pwndbg를 통해 실행되는 라이브러리가 무엇인지 확인한다.메모리 상태는?아 그냥 주어진 도커파일에다가 이것저것 설치 후에 그냥 거기서 익스를 짜자. 그게 마음 편함.중간에 복붙합시다.

2023년 5월 19일
·
0개의 댓글
·
post-thumbnail

[dreamhack][writeup] System-stage6 : ssp_001

아래 코드 부분을 보면 idx 를 통해 box 배열의 인덱스의 값에 접근할 수 있다. 해당 코드에서는 idx 에 해당 검증이 없어서 메모리 leak 이 가능하다.다음 코드를 코면 name_len 을 입력값으로 받아서 해당 크기만큼 name 배열에 입력을 받고 있다. n

2023년 5월 13일
·
0개의 댓글
·
post-thumbnail

[dreamhack] System-stage6 : Exploit Tech - Return to Shellcode

이번 장에서는 카나리를 우회하고 쉘 코드와 return address overwrite 을 이용하여 쉘을 획득하는 실습을 할 것이다.사용할 예제코드는 다음과 같다.리눅스에는 다양한 바이너리 보호기법이 존재한다.적용된 보호기법에 따라 익스플로잇 설계가 달라지므로, 분석을

2023년 5월 13일
·
0개의 댓글
·
post-thumbnail

[dreamhack] System-stage6: Stack Canary

스택 카나리(canary) : 함수의 프롤로그에서 스택 버퍼와 반환 주소 사이에 임의의 값을 삽입하고, 함수의 에필로그에서 해당 값의 변조를 확인하는 보호 기법만약 에필로그 시에 카나리 변조가 확인되면 프로세스는 강제로 종료됨!!스택 버퍼 오버플로우 공격을 통해 반환

2023년 5월 13일
·
0개의 댓글
·
post-thumbnail

[Pwnable 1]

LOB 1 - gremlin gremlin.c를 열어보았다. 크기가 256 바이트인 버퍼에 scanf로 입력받고 이를 출력한다. 굉장히 간단한 코드이다. scanf로 입력할 때 shellcode를 입력하고 buffer의 크기를 넘어서 ret를 buffer의 주소로

2023년 4월 5일
·
0개의 댓글
·
post-thumbnail

[dreamhack][writeup] System-stage5: basic_exploitation_001

주어진 파일은 32bit ELF 파일이다.main 함수에서는 buf 에 0x80 만큼의 크기를 할당하고 있으며, gets() 함수를 통해서 해당 버퍼에 입력값을 입력받고 있다.main 함수 위쪽에는 flag 내용을 출력하는 read_flag 함수가 있다.NX 보호 기법

2023년 4월 1일
·
0개의 댓글
·
post-thumbnail

[dreamhack][writeup] System-stage5: basic_exploitation_000

해당 파일은 32bit ELF 파일이다.main 함수를 봤을 때 크기 0x80 만큼의 버퍼가 설정되어 있고, 버퍼의 주소 출력 후, scanf() 에서 해당 버퍼에 입력값을 받고 있다.scanf() 함수에서 스택 버퍼 오버플로우 취약점이 발생하는 것을 확인할 수 있다.

2023년 4월 1일
·
0개의 댓글
·
post-thumbnail

[dreamhack][writeup] System-stage5: Return Address Overwrite

main 함수에서는 0x28 크기의 버퍼에 scanf() 함수를 통해 입력값을 받고 있다. 해당 부분에서 스택 버퍼 오버플로우 취약점이 발생하는 것을 확인할 수 있다.main 함수 위에는 /bin/sh 명령을 수행하는 get_shell() 함수가 있다.스택 버퍼 오버플

2023년 4월 1일
·
0개의 댓글
·
post-thumbnail

[dreamhack] System-stage5: Stack Buffer Overflow

스택 버퍼 오버플로우(Stack Buffer Overflow) 는 보안을 공부하지 않은 개발자들도 알만큼 유명하고 역사가 오래된 취약점이다.스택 버퍼 오버플로우는 스택 의 버퍼 에서 발생하는 오버플로우 를 뜻한다.버퍼 는 일상에서 '완충 장치' 라는 뜻으로 사용되며,

2023년 4월 1일
·
0개의 댓글
·