| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- 웹해킹
- 해킹
- 리버싱
- 소프트웨어
- 네트워크
- WarGame
- reversing
- dreamhack
- 순서도
- System
- network
- Web
- CodeEngn
- 알고리즘
- 네트워크보안
- hacking
- 드림핵
- XSS
- 시스템
- 웹
- 소프트웨어보안
- webhacking
- bee-box
- 워게임
- ftz
- 시스템해킹
- 모의해킹
- TCP
- 비박스
- Webhaking
- Today
- Total
목록전체 글 (236)
Without a Break
세그먼트 : 적재되는 데이터의 용도별로 메모리의 구획을 나눈 것 리눅스에서는 프로세스의 메모리를 크게 5가지의 세그먼트로 구분 운영체제가 메모리를 용도별로 나누면, 각 용도에 맞게 권한(읽기,쓰기,실행)을 부여할 수 있다는 장점이 있음 코드 세그먼트, 데이터 세그먼트, BSS 세그먼트, 힙 세그먼트, 스택 세그먼트로 구분 코드 세그먼트 : 실행 가능한 기계 코드가 위치하는 영역 텍스트 세그먼트(Text Segment)라고도 불림 읽기 권한과 실행 권한이 부여 => 프로그램이 동작하려면 코드를 실행할 수 있어야 하기 때문에 데이터 세그먼트 : 컴파일 시점에 값이 정해진 전역 변수 및 전역 상수들이 위치함 읽기 권한이 부여 => CPU가 세그먼트의 데이터를 읽을 수 있어야 하기 때문에 쓰기가 가능한 세그먼트..
문제 정수 N이 주어졌을 때, 소인수분해하는 프로그램을 작성하시오. 입력 첫째 줄에 정수 N (1 ≤ N ≤ 10,000,000)이 주어진다. 출력 N의 소인수분해 결과를 한 줄에 하나씩 오름차순으로 출력한다. N이 1인 경우 아무것도 출력하지 않는다. #include int main() { int n; scanf("%d", &n); while (n>1) { for (int i = 2; i
Argc/Argv : 함수의 명령 인수. argc : 메인 함수에 전달되는 정보의 개수 argv []: 메인 함수에 전달되는 실질적 정보 (문자열의 배열) #include int main(int argc, char * argv[]){ int count; printf("This program was called with \"%s\".\n",argv[0]); if(argc > 1){ //외부에서 사용자 입력이 있는지 확인(1보다 크면 참) for(count = 1; count 12 return 0; } /* sscamf example 2*/ #include int main() { char sentence [] = "John park is 1238179278479183749173 years old"; char..
커기본 수열 문제 1) 1부터 100까지 자연수의 합을 구하는 알고리즘 순서도 문제 2) 서로 다른 자연수 2개를 받아들여 그 사이에 존재하는 자연수의 합과 3의 배수의 제곱의 합을 구하여 출력하는 알고리즘 순서도 등차 수열 문제) 다음 등차 수열에 대하여 200번째 숫자까지의 합을 구하는 알고리즘 순서도 2, 8, 14, 20, 26, 32, ... *sum -> s로 수정 등비 수열 문제) 다음 등비 수열에 대하여 100번째 항까지의 합을 구하는 알고리즘 순서도 2, 6, 18, 54, 162, 486, ... 피보나치 수열 문제) 다음 피보나치 수열에 대하여 100번째 항까지의 합을 구하는 알고리즘 순서도 1, 1, 2, 3, 5, 8, 13, ...
DevOps : 응용 프로그램을 빠르게/높은 품질로 제공하기 위한 체계 및 기술을 통칭 full lifecycle investment team undertaking better sw development & delivery pracitces acclerates the last mile of continuous delivery 필요성 사용자의 요구가 빠르게 반영되기를 원함 높은 품질의 소프트웨어에 대한 요구가 높아짐 개발 프로세스 with Security DevSecOps의 추가 요구사항 Threat Model Secure Coding : Rule Book Security as Code : Stack guard SAST(Static Analysis Security Test) : Code (정적 분석) DA..
[문제 파일] const BAN = ['admin', 'dh', 'admi']; filter = function(data){ const dump = JSON.stringify(data).toLowerCase(); var flag = false; BAN.forEach(function(word){ if(dump.indexOf(word)!=-1) flag = true; }); return flag; } 배열 BAN에 있는 문자열을 필터링한다. (admin을 쳤을 때 플래그가 바로 뜨지 않도록 한 코드) app.get('/login', function(req, res) { if(filter(req.query)){ res.send('filter'); return; } const {uid, upw} = req.qu..
'csrf_3.php' 페이지의 개발자 도구로 소스 코드를 확인해 보면, 소스 코드에 hidden 타입으로 선언된 login 변수가 노출되어 있다. login 변수에 현재 사용자의 아이디가 입력되어 있으므로 아이디 값을 입력받는 변수라고 추측할 수 있다. login 변수에 다른 사용자의 아이디를 입력하여 비밀번호 힌트를 바꾸는 CSRF 공격을 시도해보자. xss_stored_1.php 페이지에 이미지 태그를 이용해 다른 사용자의 아이디를 입력하여 비밀번호 힌트를 바꾸는 CSRF 공격 시도하는 코드를 입력한다. 입력 후 제출 버튼을 누른 뒤, 개인정보를 출력하는 sqli_16.php에서 ‘bee’ 사용자로 로그인하면 ‘bee’ 사용자의 변경된 비밀번호 힌트를 출력하는 것을 볼 수 있다.
XML 외부 엔티티 공격 가로챈 요청에 다음과 같은 코드로 수정해준 후 send 버튼을 누른다. 위와 같이 수정한 요청의 응답이 출력되는 것을 볼 수 있음. 이 때, 오른쪽 마우스를 클릭하고 Show response in brower를 누르면 다음과 같이 URL이 뜬다. URL을 복사하여 웹 브라우저에 입력하면 passwd 파일 안에 있는 내용을 웹브라우저에서도 출력한다. xxe-2.php 페이지는 직접 접근이 불가능한 페이지지만, 서버의 계정 정보를 출력함 DoS 공격 위에서 했던 실습과 마찬가지로 마찬가지로 any bugs?를 눌러 버프스위트로 중간에 요청을 가로챈 후 요청에 다음 코드를 입력하고 send 버튼을 누른다. 30초가 지나면 오류 메시지가 실린 응답을 출력한다. 이는 애플리케이션 계층에서..