목록분류 전체보기 (117)
EYEN

1. shellcode부터 짜보겠다. 호출 규약이 fastcall이다. fastcall은 인자를 각각 ecx, edx에 넣어주어야한다.일단 /bin/shxor eax,eaxpush eaxpush 0x68732f2f push 0x6E69622fmov ebx, esp( execve 호출을 위한 첫번째 인자를 나타내는 ebx에 저장한다.)push eax( 두번째 인자를 구성하기 위한 null)push ebx( 두 번째 인자를 구성하기 위한 /bin/sh를 가리킴)mov ecx, esp(/bin/sh와 null을 가리키는 주소를 나타냄)mov edx, eax(null을 execve호출을 위한 세번째 인자를 나타내는 edx에 저장한다)mov al,0x8( execve에 해당하는 0XB를 eax에 넣는다)inc ..

dev-tools그냥 개발자도구켜서 여기저기 뒤져보니 나왔다! 플래그는 보통 맨 끝에 있어서 그리 오랬동안 찾진 않았다. session-basicadmin으로 접속해서 세션값 얻기guest 세션 값대신 admin의 세션값 대입한 뒤 f5하면 flag 출력 cookieguest로 로그인하면 username=guest고 session은 저대로인데 거기서 username을 admin으로 바꿔줬다. xss 모르겠다. 낼 다시 풀 것이다.

2f 68 6f 6d 65 2f 73 68 65 6c 6c 5f 62 61 73 69 63 2f 66 6c 61 67 5f 6e 61 6d 65 5f 69 73 5f 6c 6f 6f 6f 6f 6f 6f 6e 67 이걸 리틀 엔디언으로 16개씩 쪼개서 넣을 것이다. 먼저 스택에 넣어주고push 0x00mov rax, 0x676e6f6f6f6f6f6fpush raxmov rax, 0x6c5f73695f656d61push raxmov rax, 0x6e5f67616c662f63push raxmov rax, 0x697361625f6c6c65push raxmov rax, 0x68732f656d6f682fpush rax ;open(path, fd, null)mov rdi, rsp ;stackxor rsi, rsix..

첫번째 공격기법 셸코드는 익스플로잇을 위해 제작된 어셈블리 코드 조각을 일컫는다. 일반적으로 셸을 획득하기 위한 목적으로 셸코드를 사용해서 특별히 셸이 접두사로 붙었다. 셸을 획득하는 것은 시스템 해킹의 관점에서 매우 중요한데, 그 이유는 execve셸코드에서 알 수 있다. 만약 해커가 rip를 자신이 작성한 셸코드로 옮길 수 있으면 해커는 원하는 어셈블리 코드가 실행되게 할 수 있다. 어셈블리어는 기계어와 거의 일대일 대응되므로 사실상 원하는 모든 명령을 CPU에 내릴 수 있게 된다. 쉘코드는 어셈블리어로 구성되므로 공격을 수행할 대상 아키텍처와 운영체제에 따라 셸코드의 목적에 따라 다르게 작성된다. 공유되는 셸코드는 범용적으로 작성된 것이기 떄문에, 실행될 떄의 메모리 상태 같은 시스템 환경을 완..

컴퓨터는 크게 cpu와 메모리로 구성되어 있습니다. cpu는 실행할 명령어와 명령어 처리에 필요한 데이터를 메모리에서 읽고, instruction ser architecture에 따라 이를 처리합니다. 공격자가 메모리를 조작할 수 있다면 조작된 메모리 값에 의해 cpu도 잘못된 동작을 할 수 있다. 이를 메모리가 오염됐다고 표현하며 이를 메모리 오염 취약점이라고 부른다. 리눅스 메모리 구조- 프로세스 가상메모리의 각 구역이 어떤 정보를 담고 있는지 이해해보자 세그먼트 프로세스의 메모리를 용도별로 5가지의 세그먼트로 구분한다. 프로그램이 실행되면서 세그먼트를 자세히 이해하려면 운영체제의 메모리 관리 기법 중 하나인 세그멘테이션 기법과 인텔x64에서 관련된 하드웨어의 설계를 알아야한다. 코드세그먼트실행..

의미: 웹 서비스의 파일 시스템에 존재하는 파일을 다운로드 하는 과정에서 발생하는 보안 취약점 조건: 공격자는 웹 서비스의 파일 시스템에 존재하는 임의 파일을 다운로드 받을 수 있다. 공격: Path Traversal 취약점과 함께 사용됨. 서버 파일 시스템에 존재하는 임의 파일을 다운로드하여 민감 정보가 포함된 파일, 예를 들어 데이터베이스 백업본, 외부 API 서버의 비밀키 등이 포함된 설정 파일등을 탈취할 수 있음 Path Traversal 취약점 ‘웹 서비스는 이용자가 업로드한 파일을 다운로드 받거나 이미지를 불러올 때 특정 디렉토리에 있는 파일만 접근하도록 해야한다.’ 를 우회하여 임의 디렉토리에 있는 파일을 다운로드 받을 수 있는 취약점을 말한다. 파일 다운로드 취약점이 자주 발생하는 URL ..
#1 서론 파일을 업로드하고 업로드된 파일을 다운로드 받을 때 발생하는 취약점이다 이용자가 업로드한 파일을 데이터베이스에 저장하는 것보다 서버의 파일 시스템에 저장하는 것이 개발하기 쉽고, 관리 효율도 높으나 파일 업로드 취약점을 일으킬 수 있다. #2 Path Traversal 1) 취약점: File Upload Vulnerability 의미: 공격자의 파일을 웹 서비스의 파일 시스템에 업로드하는 과정에서 발생하는 보안 취약점 조건 : 이용자가 업로드될 파일의 이름을 임의로 정할 수 있어서 파일 시스템 상 임의 경로에 원하는 파일을 업로드하거나 악성 확장자를 갖는 파일을 업로드할 수 있을 때 원하는 시스템 커맨드를 실행하는 ‘원격 코드 실행 취약점’을 유발할 수 있을 때 취약점 : 파일 이름에 이용자가..

#1 서론 언어별 시스템 함수 : 전달된 인자를 셸 프로그램에 전달해 명령어를 실행 예) system(“cat /etc/passwd”)호출→ 셸 프로그램에서 cat /etc/passwd을 수행 PHP의 system Node JS의 child_process 파이썬의 os.system Injection: 악의적인 데이터를 프로그램에 입력하여 이를 시스템 명령어, 코드, 데이터베이스 쿼리 등으로 실행되게 하는 기법 SQL Injection은 이용자의 입력을 데이터베이스 쿼리로 실행하게 하는 취약점 Command Injection은 이용자의 입력을 시스템 명령어로 실행하게 하는 취약점 #2 Command Injection 이용자의 입력을 제대로 검사하지 않아서 리눅스 셸 프로그램이 지원하는 다양한 메타문자를 이..