SECCON 2021 Write up : Average calculator

Arch: amd64-64-little RELRO: Partial RELRO Stack: No canary found NX: NX enabled PIE: No PIE (0x400000) #include <stdio.h> #include <stdlib.h> #include <unistd.h> int main() { long long n, i; long long A[16]; long long sum, average; alarm(60); setvbuf(stdin, NULL, _IONBF, 0); setvbuf(stdout, NULL, _IONBF, 0); setvbuf(stderr, NULL, _IONBF, 0); printf("n: "); if (scanf("%lld", &n)!=1) exit(0); for (i=0; i<n; i++) { printf("A[%lld]: ", i); if (scanf("%lld", &A[i])!=1) exit(0); // prevent integer overflow in summation if (A[i]<-123456789LL || 123456789LL<A[i]) { printf("too large\n"); exit(0); } } sum = 0; for (i=0; i<n; i++) sum += A[i]; average = (sum+n/2)/n; printf("Average = %lld\n", average); } 분석 long long 에서 의심스럽다.. 저번 작문에 서 long long으로는 메모리주소범위의 숫자도 다룰 수 있는 것을 알았다. ...

December 12, 2021 · EBeb

CyberSecurityRumble : baby-flag-checker

요즘은 일을 하다보니 CTF에 참가하는 일이 줄었고 참가해도 주로 가벼운 문제만 쓰윽하고 나오는 것 같다.. 우선 소스코드가 주어진 초심자용 문제이다. ebeb@DESKTOP-44QI01G:/mnt/e/CTF/CyberSecurityRumble/baby_flag_checker$ ./chall Flag not found, contact challenge authors. 일단 바이너리를 실행해보았다. 저번 출제에서도 든 생각인데 가끔 이러면 더미플래그도 같이 제공해야하나 고민이다. ebeb@DESKTOP-44QI01G:/mnt/e/CTF/CyberSecurityRumble/baby_flag_checker$ nc challs.rumble.host 53921 Enter the flag: aaaaaaaaaaaaaaa Wrong flag: aaaaaaaaaaaaaaa 입력하면 로컬의 FLAG파일과 비교하는 전형적인 문제이다. 주로 조건문 돌파나 스택에서 정보를 꺼내는 문제로 나오는 타입이다. Enter the flag: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa HACKER! 오버플로우를 내면 싫어한다 ㅋㅋㅋ ...

November 29, 2021 · EBeb