전체 글


v11 = v6 ^ v7;XOR 연산snprintf(s, 9uLL, "%08x", v6 ^ v7);XOR 결과를 16진수 문자열로 형식화하고 배열에 저장s 형식 지정자는 **"%08x"**16진수가 8자로 표현되고 필요한 경우 0으로 채워지도록 보장for (i = 0; i 배열의 문자 순서를 반대로 바꾸고 **s**결과를 배열에 저장printf("Result: %s\\n", s1);저장된 역방향 16진수 문자열을 인쇄s2 = "a0b4c1d7";if (!strcmp(s1, "a0b4c1d7")){puts("Congrats!");}s1 은 반전된 16진수 문자열과 "a0b4c1d7" 문자열을 비교동일하면 "Congrats!"가 출력→ **v6**및 값에 대해 비트별 XOR 연산을 수행 **v7**하고 결과..


NASM을 익히기 위해 간단한 예제로 Hello World를 출력해보았다.section .data msg db "Hello world!", 0ahsection .text global _start_start: mov rax, 1 mov rdi, 1 mov rsi, msg mov rdx, 13 syscall mov rax, 60 mov rdi, 0 syscall:어셈블리 파일은 크게 세 부분으로 나뉜다data : 프로그램에서 사용되는 문자열 같은 데이터를 저장할 수 있는 공간dw -> define word 로 2바이트를 사용한다. 0x00XX 이렇게 저장되어 문자열이 null 문자로 끝나게 된다.(xx 는 문자의 아스키코드값)db -> define byt..

분기문#include int main() { int number; printf("input: "); scanf("%d", &number); if (number > 0) { printf("positive number.\\n"); } else if (number pwndbg> disassemble mainDump of assembler code for function main: 0x00000000000011a9 : endbr64 0x00000000000011ad : push rbp 0x00000000000011ae : mov rbp,rsp 0x00000000000011b1 : sub rsp,0x10// rsp, ..

pwntools 설치방법sudo apt updatesudo apt install python3 python3-pip python3-dev git libssl-dev libffi-dev build-essentialsudo python3 -m pip install --upgrade pipsudo python3 -m pip install --upgrade pwntools자주 사용되는 API들0. pwn 모듈 import 시키기from pwn import * #pwntools를 사용하려면 파이썬 파일의 처음에 pwn 모듈을 import 시켜야 함.1. process & remoteprocess 함수: 익스플로잇을 로컬 바이너리를 대상으로 할 때 사용하는 함수보통 익스플로잇을 테스트하고 디버깅하기 위해 사용p =..


컴퓨터 구조(폰노이만 구조): 최초의 프로그램이 내장된 컴퓨터 방식연산의 수행과 관련된 명령어와, 연산에 필요하거나 결과로 나온 데이터를 저장장치(메모리)에 보관 → 순차적으로 메모리에 저장된 것을 끄집어내 지시대로 연산을 수행하는 방식 폰 노이만 구조 컴퓨터의 명령 주기1. 명령어 가져오기: 기억장치(메모리)부터 명령어를 가져오는 과정2. 명령어 해석: 앞서 가져온 명령어가 어떤 명령어인지 해석을 진행하는 과정3. 피연산자 인출: 명령의 실행에 필요한 정보를 기억장치로 접근해 가져오는 과정4. 명령어 실행: 앞서 가져온 연산자와 데이터를 가지고 연산을 수행하고 저장5. 인터럽트 체크 중앙처리장치(CPU)프로그램의 연산을 처리하고 시스템을 제어하는 컴퓨터의 두뇌프로세스의 코드를 불러오고, 실행하고, 결..


https://crackmes.one/search CrackmesDifficulty between 1 2 3 4 5 6 and 1 2 3 4 5 6crackmes.one해당 사이트에서 크랙미를 다운받았다. 다운 받은 파일을 압축 해제하고 x64에 넣어보았다. 그랬더니 x32를 쓰라고 친절하게 알려주었다.이후 다시 x32에 해당 파일을 디버깅해주었다. 파일을 가지고 드래그 앤 드롭을 해주면 저절로 디버깅해준다. 이제 문제가 열렸으니 문제를 풀어볼 차례이다. 위에 있는 실행 버튼을 계속 누르다보면 위와 같이 알람창이 뜬다. 알람창에 확인 버튼을 누르니 다음처럼 에러가 떴다. 해당 알람창 부분을 찾아보기 위해 참조 찾기 → 모든 모듈(문자열)에 들어가보았다.그랬더니 알람창에 뜨는 문구를 비롯해서 해당 문제를..


HTTP 프로토콜하이퍼텍스트 전송 프로토콜(HTTP) : 월드와이드웹(WWW)에서 쓰이는 핵심 통신 프로토콜- 매시지 기반 모델 (클라이언트가 요청 메시지 전송 / 서버는 그에 대한 응답 메시지 보냄)- 비연결지향적 프로토콜(요청과 응답에 대한 교환은 독립적으로 / 각기 다른 연결 사용)+) TCP : 서버와 클라이언트 간에 데이터를 신뢰성 있게 전달하기 위해 만들어진 프로토콜+) 프로토콜 또는 규약 : 컴퓨터나 원거리 통신 장비 사이에서 메시지를 주고 받는 양식과 규칙의 체계- 요청과 응답 : 헤더를 통해 다양한 정보 포함 / 헤더 밑에는 메시지 바디가 나옴 HTTP 요청- HTTP 요청 첫 번째 줄에는 3가지 요소 존재1. HTTP 전송 방법 : 일반적으로는 GET 메소드 사용(자료를 가져오는 기능)..


웹 애플리케이션에서 사용하는 방어 메커니즘 - 데이터와 기능에 대한 사용자 접근 처리(권한이 없는 사용자 접근 제한) - 기능에 대한 사용자 입력 값 처리(의도하지 않은 행동 유발 사용자 입력 제한) - 공격자에 대한 처리(직접적인 공격 대상 방어 및 보안 수준 높임) - 관리자가 안전하게 애플리케이션 관리(실시간 모니터링할 수 있는 기능을 관리자에게 제공) 사용자 접근 처리 - 애플리케이션에는 다양한 사용자 범주 존재 ex) 익명 사용자, 정상적으로 인가된 사용자, 관리적 사용자 그룹 등 → 자신이 속한 그룹 or 자신이 가진 권한에서 접근 허용 - 인증, 세션 관리, 접근 통제 보안 메커니즘 이용 인증 사용자 인증 : 사용자가 자기 자신에 대해 어떤 사용자라고 주장하는 사실을 확인하는 것 - 사용자 ..


세쿠리티에서 첫 수업을 진행하였다. 작년까지는 수업을 듣는 입장이었는데 올해 처음으로 내가 직접 수업이라는 것을 해보았다. HTTP 메소드에 대해 간단한 설명 후 GET 메소드 설명, 특징 및 종류 소개 POST 메소드에 대해 설명 및 특징 설명 GET 메소드와 POST 메소드의 차이점에 대해 설명 불충분한 인증과 인가에 대해 설명하기 전 인증과 인가에 대해 먼저 설명한 후 인증 및 인가에 대한 예시를 들어 설명 이후 불충분한 인증과 인가에 대한 설명 진행 및 예시를 통해 설명 다음으로 파라미터 변조 취약점에 대해 설명 파라미터가 무엇인지 먼저 설명해준 뒤 파라미터 변조란 무엇인지 그림을 통해 자세히 설명한 후 파라미터 변조 취약점의 원인은 무엇인지 설명 관리자가 서버에 로그인을 할 경우 위에 나와있는 ..