일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 숙명여자대학교 정보보안 동아리
- HTML
- CSS
- PHP 웹페이지 만들기
- hackctf
- XSS Game
- BOJ
- 머신러닝
- 드림핵
- siss
- Javascript
- c++
- hackerrank
- lob
- 파이썬
- BOJ Python
- 자료구조 복습
- 풀이
- WarGame
- Python
- 웹페이지 만들기
- C언어
- The Loard of BOF
- 기계학습
- 숙명여자대학교 정보보안동아리
- Sookmyung Information Security Study
- 백준
- c
- SWEA
- 생활코딩
- Today
- Total
목록2021 SISS 21기 활동 (136)
혜랑's STORY
1. 문제 2. 풀이 void bonAppetit(int bill_count, int* bill, int k, int b) { int sum = 0; for(int i=0; i
1주차 C언어 1. 문제 모든 사람이 한 번씩 악수를 한다고 하였을 때 총 몇 번 악수를 하게 되는지 구하시오. 2. 풀이 int handshake(int n) { return n*(n-1)/2; } 악수하는 횟수를 구하는 것은 확률적으로 보았을 때 다음과 같은 수식으로 계산할 수 있다. n(n-1)/2 이는 n명의 학생 중 두 명씩 뽑을 수 있는 경우의 수와 같고(nC2) 이를 수식으로 나타내면 위와 같이 나타낼 수 있게 되는 것이다. 3. 결과
1. checksec 64bit 파일이고 아무런 보호기법도 걸려있지 않다. 2. IDA IDA로 살펴본 결과 start() 함수가 하나 존재했다. 3. 확인해야 할 목록 Libc offset "pop rax; ret" "syscall" "/bin/sh" 명령어가 저장된 영역 Find "/bin/sh" -> 0x41250 Find "pop rax ; ret" -> 0x41018 Find "syscall ; ret" -> 0x41015 4. Exploit from pwn import * #context.log_level = 'debug' binary = "./moving-signals" context.binary = binary #쉘코드 적용 대상 바이너리의 환경 자동 설정 p = process(binary..
SROP는 sigreturn 시스템 콜을 이용하여 레지스터에 원하는 값을 저장할 수 있다. 해당 기법을 이용하여 원하는 시스템 함수를 호출할 수 있다. x86과 x64의 signal & signal handler 동작은 동일하다. Example Code //gcc -g -o sig64 sig.c #include #include struct sigcontext sigcontext; void handle_signal(int signum){ printf("Signal number: %d\n", signum); } int main(){ signal(SIGINT, (void *)handle_signal); while(1) {} return 0; } Debugging handle_signal 함수에 BP를 설정하고..
SROP는 sigreturn 시스템 콜을 이용하여 레지스터에 원하는 값을 저장할 수 있다. 해당 기법을 이용하여 원하는 시스템 함수를 호출할 수 있다. Signal signal은 프로세스에게 이벤트가 발생했음을 알린다. 또한 다른 프로세스에게 시그널을 전송 할 수 있다. 원시적인 형태의 IPC(InterProcess Communication)로 사용 할 수도 있음 자기 자신에게 시그널을 보내는 것도 가능 signal은 일반적으로 커널이 송신하며, 다음과 같은 이벤트 종류가 있다. 하드웨어 예외가 발생한 경우 사용자가 시그널을 발생시키는 터미널 특수 문자 중 하나를 입력한 경우 Interrupt character(Control + c) Suspend character(Control + z) 소프트웨어 이벤..
1. checksec 64 bit 파일이고, NX가 걸려있다. 2. IDA main() 함수 pwn() 함수 IDA에서 함수 목록을 확인해 본 결과 사용되지 않은 함수인 usefulFunction() 함수가 존재한다는 것을 알 수 있었다. 따라서 코드의 흐름을 usefulFunction()이 실행될 수 있도록 변경하면 목록을 확인할 수 있을 것 같다. code from pwn import * context.log_level = 'debug' r = process('./split') e = ELF('./split') usefulFunction = e.symbols['usefulFunction'] print('usefulFunction : ' + str(hex(usefulFunction))) payload ..
2021년도 1학기 9주차 과제(자료구조 복습용 recursive) 문제 링크 : 문제 요약 : 문장으로 주어진 숫자 배열 n을 k번 반복하고 한 자리 숫자가 될 때 까지의 각 자릿수의 합을 구하여라. 풀이 int superDigit(char* n, int k) { long long int sum = 0; int len = strlen(n); if(len == 1) return *n - '0'; else{ char* newN = malloc(sizeof(char)*(len+1)); for(int i=0; i
2021년도 1학기 8주차 과제(자료구조 복습용 search) 문제 링크 : https://www.hackerrank.com/challenges/icecream-parlor/problem 문제 요약 : 주어진 돈으로 아이스크림 2개 고르기 풀이 int* icecreamParlor(int m, int arr_count, int* arr, int* result_count) { *result_count = 2; int *result = malloc(sizeof(int)*(*result_count)); for(int i=0; i