일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- hackctf
- The Loard of BOF
- 숙명여자대학교 정보보안 동아리
- PHP 웹페이지 만들기
- 숙명여자대학교 정보보안동아리
- HTML
- XSS Game
- 자료구조 복습
- siss
- 기계학습
- Javascript
- Python
- CSS
- 머신러닝
- lob
- c++
- 풀이
- 웹페이지 만들기
- WarGame
- BOJ Python
- c
- 파이썬
- BOJ
- C언어
- SWEA
- hackerrank
- Today
- Total
목록분류 전체보기 (346)
혜랑's STORY
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
Volatility 플러그인 : https://schmidtiana95.tistory.com/entry/Volatility 1. What the password? You got a sample of rick's PC's memory. can you get his user password? 먼저 메모리 덤프 파일의 프로파일 정보를 imageinfo 플로그인을 사용하여 출력해 보았다. profile은 Win7SP1x64를 사용하고 메모리상의 파일 오브젝트 전체 검색을 위해 hivelist 플러그인을 사용했다. 위에서 얻은 주소를 가지고 비밀번호가 있을 것 같은 sam을 hashdump를 통해 계정의 해시를 추출했다. 위와 같이 암호화된 해쉬값으로 출력되었다. 마지막으로 lsadump를 사용하여 인증정보에 관..
1. checksec 32비트 파일이고, NX가 걸려있다. 문제 이름처럼 rop를 사용하여 해결하는 것 같다. 2. IDA main() 함수 vulnerable_function() 함수 즉, vulnerable_function() 함수에서 buf의 크기보다 더 많이 입력을 받아 overflow가 발생한다. 3. Debug [Break Point] 0x084844b : vulnerable_function() 함수 코드 첫 부분 0x0848465 : read() 함수 호출 전 프로그램을 실행할 수 없다고 한다. 따라서 파일의 권한을 변경하고 다시 실행해 보았다. 즉, 문자를 140개 이상 입력하면 Return Address를 덮을 수 있다. [확인해야 할 정보 목록] 쓰기 가능한 영역 read(), writ..
https://github.com/hyerang0125/TIL/tree/master/SISS/System hyerang0125/TIL Contribute to hyerang0125/TIL development by creating an account on GitHub. github.com 깃 허브에서 계속 작성을 할 까 고민을 했지만 캡쳐했던 사진을 이슈에 올렸다가 그걸 다시 옮기는게 너무 귀찮아서 다시 티스토리를 사용하려고 한다.
2021년도 1학기 6주차 과제(자료구조 복습용 tree) 문제 링크 : https://www.hackerrank.com/challenges/tree-height-of-a-binary-tree/problem 문제 요약 : 트리의 height를 구하여라. (이 문제에서는 edge 수를 height라고 한다.) 풀이 int getHeight(struct node* root) { // Write your code here if(!root) return -1; else{ int left_h = getHeight(root->left); int right_h = getHeight(root->right); return 1 + (left_h > right_h ? left_h : right_h); } } 만약 root가..
checksec을 통해 보호기법 확인하기 32bit 파일이고, Partial RELRO와 NX가 적용되어 있다. RET 변조를 통해 문제를 해결할 수 있을 것 같다. ret2lic 코드 살펴보기 #include void See_something(unsigned int addr){ int *address ; address = (int *)addr ; printf("The content of the address : %p\n",*address); }; void Print_message(char *mesg){ char buf[48]; strcpy(buf,mesg); printf("Your message is : %s",buf); } int main(){ char address[10] ; char message..