일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 자료구조 복습
- 파이썬
- 머신러닝
- Sookmyung Information Security Study
- 드림핵
- PHP 웹페이지 만들기
- lob
- SWEA
- siss
- 생활코딩
- c++
- WarGame
- Javascript
- hackctf
- CSS
- C언어
- hackerrank
- XSS Game
- 풀이
- The Loard of BOF
- c
- BOJ Python
- HTML
- 숙명여자대학교 정보보안동아리
- Python
- 백준
- 숙명여자대학교 정보보안 동아리
- 웹페이지 만들기
- 기계학습
- BOJ
- Today
- Total
목록2021 SISS 21기 활동 (136)
혜랑's STORY
오늘 해결할 문제는 이 사이트의 Basic_FSB 문제이다. 다운로드를 눌러 문제를 다운받아 주었고, chmod를 통해 파일에 실행할 수 있는 권한을 부여하였다. 실행해본 결과 입력한 내용을 그대로 출력해주고 있는 것 같다. checksec을 통해 파일을 열어보니 32bit 바이너리 파일이며 아무런 보호기법도 걸려있지 않았다. IDA를 통해 열어본 결과 바로 vuln() 함수를 호출하고 vuln() 함수는 입력을 받은 것을 바로 출력하고 있었다. 이어 함수 목록을 살펴본 결과 flag 함수가 있었고 이 함수를 실행시켜 flag를 얻는 문제라고 생각하였다. 또한 문제의 이름에서 힌트를 얻어 fsb 취약점이 발생한다는 것을 알 수 있었고 입력으로 %x를 준 결과 2번째 인자를 건너뛰고 %X의 형식으로 출력하..
오늘 해결할 문제는 이 사이트의 Basic_BOF #2 문제이다. 이전에 Basic_BOF #1을 해결한 적이 있는데, 이 문제의 연장 선이라 생각한다. [HackCTF] Basic_BOF #1 # IDA를 사용하여 bof_basic 살펴보기 s의 크기는 0x34(52) byte 라는 것을 알 수 있다. fgets() 함수의 길이 제한 없이 입력 받는다는 취약점을 이용하여 v5의 값을 "-559038737"로 바꿔주면 shell이 실행되는.. a1ways-hyerang.tistory.com 다운로드를 눌러 파일을 다운받고, chmod를 통해 파일에 실행 권한을 부여해 주었다. chmod +x bof_basic2 AAAA를 입력하니 다음과 같은 출력 이후에 바로 프로그램이 종료하였다. checksec을 통..
오늘 해결할 문제는 이 사이트의 add 문제이다. 역시 실행을 위해 권한을 부여했다. chmod +x challenge 일단 파일을 실행해보자. 그냥 종료된다. checksec으로 보호기법을 확인해보자. 64 bit 바이너리 파일이고, canary와 nx가 걸려있다. IDA로 통해 코드와 함수 목록을 확인해 보았다. 숫자 형식으로 입력을 받고 반환값이 3이 아니면 while문을 탈출하는 코드였다. 함수 목록을 살펴보니 win() 이라는 함수가 있었다. while문을 탈출하고 win으로 이동하여 flag를 출력해야 하는 문제인 것 같다. 일단 숫자를 입력해 보았는데 앞에 입력받은 두 수의 합을 3번째 숫자가 인덱스가 되는 자리에 저장하는 것 같았다. 이때 엄청 큰 수를 입력하거나 작은 수를 입력하게 되면 ..
오늘 해결할 문제는 이 사이트의 sub 문제이다. 다운로드를 눌러 문제를 다운받았고, chmod를 사용하여 파일을 실행할 수 있도록 바꿔주었다. chmod +x challenge 파일을 실행하고 AAAA를 입력하였더니 그냥 프로그램이 종료되었다. checksec을 통해 파일에 어떤 보호기법이 걸려있는지 확인하였다. 64 bit 바이너리 파일이었고 모든 보호기법이 다 걸려있었다. IDA를 통해 코드를 확인해 보았는데 v4랑 v5의 차가 4919가 되면 flag를 출력해준다. 앞에서 친절히 v4와 v5를 입력을 받는데 별 다른 제한이 없기때문에 4918과 -1을 입력 해주었다. 출력할 flag가 없다고 한다. 이제 진짜 서버로 해보자! 성공이다.
# 문제 # 풀이 int* countingSort(int arr_count, int* arr, int* result_count) { int *temp = malloc(sizeof(int)*100); memset(temp, 0, sizeof(int)*100); for(int i=0; i
# 문제 # 풀이 int* countingSort(int arr_count, int* arr, int* result_count) { *result_count = 100; int *list = malloc(sizeof(int)*(*result_count)); memset(list, 0, sizeof(int)*(*result_count)); for(int i=0; i
source를 다운받아서 살펴보자. asm1: :push ebp :mov ebp,esp :cmp DWORD PTR [ebp+0x8],0x71c :jg 0x512 :cmp DWORD PTR [ebp+0x8],0x6cf :jne 0x50a :mov eax,DWORD PTR [ebp+0x8] :add eax,0x3 :jmp 0x529 :mov eax,DWORD PTR [ebp+0x8] :sub eax,0x3 :jmp 0x529 :cmp DWORD PTR [ebp+0x8],0x8be :jne 0x523 :mov eax,DWORD PTR [ebp+0x8] :sub eax,0x3 :jmp 0x529 :mov eax,DWORD PTR [ebp+0x8] :add eax,0x3 :pop ebp :ret 문제에서 0x8b..
이번에 해결할 문제이다. crackme.py를 다운받아 주었다. # Hiding this really important number in an obscure piece of code is brilliant! # AND it's encrypted! # We want our biggest client to know his information is safe with us. bezos_cc_secret = "A:4@r%uL`M-^M0c0AbcM-MFE07b34c`_6N" # Reference alphabet alphabet = "!\"#$%&'()*+,-./0123456789:;?@ABCDEFGHIJKLMNOPQRSTUVWXYZ"+ \ "[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~" d..