전체 글 114

[ecs ctf] [리버싱 자체제작] WpfApp - writeup

[문제 설명] admin 계정을 탈취해서 플래그값을 찾기 [문제의 의도] 코드/어셈블리 패치를 통한 admin 계정 탈취 문제 풀이 실행시 다음과 같은 화면이 나타납니다. 여기서 어드민을 체크해볼까요? 어드민이 아니라면서 체크도 해제되고 아예 체크박스가 막혀버렸네요. 그럼 이 상태에서 Get Flag 버튼을 한번 눌러봅시다 어드민이 아니라면서 막네요. 그럼 다시 실행시키고 이번에는 아무것도 안 누른 상태로 플래그 버튼을 눌러보겠습니다. 동일하게 경고문이 뜨는군요 :) 그러면 이제 분석을 해봅시다. 분석에 앞서, 이 문제의 이름을 보면 WpfApp이라고 되어있습니다. 구글에 wpf 이라고 치면 다음과 같이 나옵니다 그럼 C#으로 만든 앱인걸 알 수 있습니다! C# 같은 경우에는 분석을 할때 대중적으로 많이..

WARGAME/made by me! 2024.01.24

[CryptoHack] Confusion through Substitution

SubBytes confusion - 안전한 암호문의 필수요소 중 하나 - 암호문과 키의 관계는 가능한 한 복잡해야 함 = 암호문만 보고 키를 유추 할 수는 없어야 함! - confusion이 약하면, 암호문, 키, 원문과의 관계는 일차 함수로 나타낼 수 있음 (ex. 카이사르 암호: 암호문 = 원문 + 키) S-box(Substitution Box)의 가장 큰 목적: input(plaintext)가 일차함수로 유추될 수 있는 가능성을 낮추는 역할 S-box의 fast lookup: input 바이트에 대한 비선형적인 함수를 행하는 shortcut - 이 함수는 Galois field 2**8의 모듈러 역연산을 갖고 아핀변환(affine transformation)을 한다 -> maximum confus..

[CryptoHack] Round Keys

Initial key addition 의 단계 -> AddRoundKey 현재 state 와 현재 round key를 XOR 연산 해준다! - AddRoundKey는 각 라운드가 끝날때 마지막 단계에서 일어난다 - AES에서 가장 중요한 부분!! -> 왜냐면 키가 state에 서로 섞이는 단계라서 AES에서 키를 알면 복호화를 하기 정말 쉽지만 키를 모르면 정말 어려움. 근데 심지어, AES에서는 11개의 키를 통해 state와 섞이기 때문에 정말 어려움^^.. 퀴즈) add_round_key.py의 내용 state = [ [206, 243, 61, 34], [171, 11, 93, 31], [16, 200, 91, 108], [150, 3, 194, 51], ] round_key = [ [173, 12..

[CryptoHack] Structure of AES

AES 암호화 과정 설명 https://www.youtube.com/watch?v=gP4PqVGudtg AES 암호화 과정 요약 1. Key Expansion 128비트 키에서 11개의 128비트 라운드키가 파생된다. 2. Initial key addition AddRoundKey - 첫번째 라운드 키는 바로 state(plaintext의 블록)와 XOR 연산된다. 3. Round - 9개의 라운드와 마지막 10번째 최종 라운드를 포함해 총 10번 반복된다. a) SubBytes - state의 각 바이트는 S-box에 따라 다른 바이트로 대체된다. b) ShiftRows - state 행렬의 마지막 3행은 1~3열만큼 전치된다. c) MixColums - state의 각 열에 대해 행렬 곱셈이 수행되어..

[CryptoHack] Resisting Bruteforce

만약 블록 암호가 안전하려면, 공격자가 AES와 랜덤치환을 구별할 수 없을 것이다. 즉, AES를 공격하는 것은 브루트포스보다 나은 방법은 없어야 한다!! Biclique attack? MITM 공격법 중 하나인데, 블록암호와 해쉬함수 둘다 공격할 수 있다. 이 방식으로 AES를 공격할 경우 security level을 128비트에서 126.1 비트로 살짝 내린다. Shor's algorithm? quantum algorithm for finding the prime factor of an integer. RSA와 같은 공개키 암호를 깰 수 있음! 퀴즈) What is the name for the best single-key attack against AES? 답: biclique attack

[CryptoHack] Keyed Permutations

keyed permutation(치환)? AES maps an input block into a unique output block, with a key determining which permutation to perform. block? fixed number of bytes or bits. ex) AES-128: 128 bit block & key (16 byte) 퀴즈) 일대일 대응(one-to-one correspondense)의 수학적 용어는? 답: bijection 💡같은 키를 가지고 역 연산을 하면 우리는 decrypt를 할 수 있게 된다. 다만, 이때 일대일 대응이 되어야지만 plaint text -> cipher text 변환과 cipher text -> plain text 변환이 가능..

[CryptoHack] Modular Inverting

modular inverse 에 대한 설명은 다음 포스트 참고... 2024.01.16 - [study/수학&암호] - [CryptoHack] Extended GCD [CryptoHack] Extended GCD 베주 항등식 (Bezout's Identity) 두 정수의 최대공약수를 원래 두 수의 배수의 합으로 나타낼 수 있다. 이때 x 와 y 는 베주 계수(Bezout coefficient)라고 한다!! 정리하자면 GCD(a, b) = d라고 할 때, - ax + by = d lucykorea414.tistory.com 퀴즈) 3 mod 13의 inverse를 구하라~ 역수가 일단 존재하기 위해서는 3과 13이 서로소여야 한다!! (즉, gcd가 1 이어야 함) -> 3과 13은 서로소 O 그러면 오일..