본문 바로가기

CTF/SWING CTF 2022

(11)
[Misc] QR Discovery SWING{10ec6129104f5e4674735583730dc2a1a80}
[Pwn] SimpleBOF ELF linux 어쩌고 하길래 Kali Linux에서 열어도 안된다... C++ 수업에서 복사생성자가 필요할 때 생기는 오류라고 했는데 C로 된 코드이지만 뭐... 넣어줘야 하는건가 싶어 코드를 이리저리 바꾸어 보았으나 오류를 고칠 수 없었다. 처음에 0이라고 초기화되었지만 gets로 입력받은 buf.check가 true면 cat ./flag 즉 flag를 보여준다. gets(char *buf) 함수는 표준 입력으로부터 문자열을 입력받아 buf에 저장하는 함수로 입력 길이를 검사하지 않기 때문에 버퍼 오버플로우가 발생한다는 취약점이 있다. 저기 위에 있는 링크로 접속해 256바이트 이상을 집어넣으면 flag를 얻을 수 있다. IDA 를 사용하거나, 디컴파일하거나 디스어셈블해서 어셈블리어를 보고 풀면 된..
[Rev] EasyXOR 파이썬 코드를 해석해보자. 0부터 flag의 길이, 즉 24까지 반복한다. 무엇을? append 즉 리스트의 끝에 추가하는 것을. ord는 문자를 넣으면 유니코드 정수를 반환한다. flag의 i번째 배열에 i승을 한 값을 집어넣었을 때...? 게다가 문제에는 XOR 연산에 대해 알아보자고 적혀있다. XOR 연산은 같으면 0을 다르면 1을 출력하는 연산 아닌가? 저 ^ 모양이 i 제곱이 아니라 XOR 연산을 나타내는 것이었을까? 유니코드로 저 주석에 달려있는 값이 나오게 하려고 chr로 다 문자로 바꿔서 넣어봤는데도 안된다. SWING{svkmc~~7zvr;~rw?enu `jb+f|w(p?>]} 라고 넣었었는데. 저 아래 출력된 값을 변환해서 넣어도 안된다. SWING{svkmc~9876543210/.-..