목록분류 전체보기 (289)
촉촉한초코칩
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/BLsxg/btsMaPsb9lG/16fc8wa42KyOGT5026KZlk/img.png)
문제 파일이 하나 주어지는데 HxD로 여니, 문제에 있는 문자열이 있었다. 쪽지 ^ 어떤 단일 바이트 = flag 라는 건가? 그런데 암,복호화를 할 때는 키가 있어야 한다. 평문 : P키 : K암호문 : CP[i] ^ K[i] = C[i]평문과 암호문 각각에 키와 xor 연산을 한다. 키가 있어야 하는데.. 키를 찾는 파이썬 코드를 실행해보았다. def xor_decrypt(ciphertext: bytes, key: bytes) -> bytes: return bytes([c ^ key[i % len(key)] for i, c in enumerate(ciphertext)])def brute_force_xor_key(ciphertext: bytes): possible_keys = [] f..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/cCtEMm/btsL7yWSvVw/ZF8PXdNWkmhcZ9dzBKobcK/img.png)
윈도우 시스템 해킹 가이드 - 버그헌팅과 익스플로잇 1. PC 내부 구조1.1 컴퓨터의 언어컴퓨터는 소스 코드를 이해하지 못하기 때문에 내부적으로 컴파일을 거쳐 CPU가 이해할 수 있는 기계어로 대화한다. Exploit 코드를 작성하기 위해서는 기계어인 어셈블리어와 컴퓨터의 내부 동작 구조를 이해해야 한다. (참고 : https://h-factory.tistory.com/53) 1.2 CPU와 레지스터 CPU 구성요소 연산장치 : 수학적 연산 제어장치 : 메모리에서 기계어 코드를 읽고 해석한 뒤 실행하는 역할 레지스터 : 연산을 위해 CPU가 사용하는 데이터 저장소 인텔 IA-32구조 일반적인 32bit 구조의 인텔 CPU에서 사용되는 구조 대부분의 CPU는 IA-32와 호환되도록 설계된다. 레지스터..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/dkWSJz/btsL6ps7Mdr/R3sQLXKBMhDhmiYFLjXtYk/img.png)
문제 풀이 AI와 대화하면서 취약점을 알아내고 flag를 열도록 해야 하는것 같다. 문제 파일에는 index.js가 있었는데 지피티에 보내서 해석하도록 했다. ㅎ.. 계속 딴 소리 하는 거 같아서 다시 들어가보았다. 이 상태가 계속 반복됨..ㅋㅋ결국 또 검색 함.. https://velog.io/@sultanofdisco/%EB%93%9C%EB%A6%BC%ED%95%B5-baby-ai근데 웃긴게 마지막에 . 안 붙이니까 flag가 안 나온다.. 이게 뭐지 싶음 LLM 취약점 LLM 애플리케이션의 가장 치명적인 취약점 10가지와 최근 주목받는 RAG (https://m.boannews.com/html/detail.html?idx=133411)더보기RAG (검색 증강 생성)이글루코퍼레이션에서 개발다양한 취..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bg7DRx/btsL2y3682L/NbSBMdo4Ic5oIU3Wgfxg8K/img.png)
분석문제 파일은 elf 파일이 주어진다. gdb로 해당 파일을 열어보았다. strncmp에서 두 문자열을 비교하고 다르면 193으로 이동한다. 맞으면 아래 명령어를 실행하여 system을 통해 flag가 출력되는 것 같다. strncmp가 실행되기 전에 break를 걸어서 비교하는 문자열을 확인해야 할 것 같다. 이 방법은 아닌 것 같다. (매번 값이 달라짐) strncmp 취약점에 대해 검색해보았다. str1, str2가 있다고 가정했을 때str1 str1 == str2 → 0 str1 > str2 → 양수이런 값이 나온다. 그리고 strncmp가 나오기 전에 8을 edx에 넣는 것으로 보아, 글자수를 비교하는 값은 8개인 것 같다. 그리고 rsi에는 내가 입력한 값, rax에는 비밀번호가 들어있는 ..
보호되어 있는 글입니다.
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/FxPBv/btsLTIfnACB/GV08pF01u3GClVQnd5PVc1/img.png)
문제 풀이 분석#!/usr/bin/env python3hex_list = [(hex(i)[2:].zfill(2).upper()) for i in range(256)]with open('flag.png', 'rb') as f: plain_s = f.read()plain_list = [hex(i)[2:].zfill(2).upper() for i in plain_s]enc_list = list(range(len(plain_list)))for i in range(len(plain_list)): hex_b = plain_list[i] index = hex_list.index(hex_b) enc_list[i] = hex_list[(index + 128) % len(hex_list)]enc_li..