| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- 웹해킹
- System
- TCP
- 시스템해킹
- WarGame
- 순서도
- 알고리즘
- webhacking
- network
- dreamhack
- 해킹
- 네트워크
- CodeEngn
- 네트워크보안
- Webhaking
- 비박스
- 소프트웨어보안
- 워게임
- 모의해킹
- reversing
- 시스템
- Web
- 드림핵
- 리버싱
- 소프트웨어
- XSS
- bee-box
- 웹
- hacking
- ftz
- Today
- Total
목록전체 글 (236)
Without a Break
TCP가 제공하는 서비스 TCP 서비스 UDP와 같은 네트워크 계층(IP) 이용 UDP와는 완전히 다른 서비스를 응용 계층에 제공 연결지향의 신뢰성있는 바이트스트림 서비스를 제공 => "TCP provides a connection-oriented, reliable, byte stream service" 1. 신뢰성 서비스 1) 정보단위인 세그먼트인 IP로 전송 응용이 보내는 데이터는 TCP가 전송하기 적합한 크기로 나뉘어짐 (반면, UDP는 각 응용이 UDP 데이터그램을 적절한 크기로 만들어 줌) IP 데이터그램 = IP 헤더 + TCP 세그먼트(TCP 헤더+TCP데이터) 2)TCP는 세그먼트를 보낼 때마다 타이머를 설정 수신측으로부터 확인 응답 (ACK) 메세지를 기다림 확인 응답이 오지 않을 경우 ..
UDP Simple, datagram-oriented, transport layer protocol best effort service model : 전송에는 최선을 다하지만 전송 완료는 보장하지 않음 신뢰성 (Reliability)을 전혀 지원하지 않음 : 응용이 쓴 데이터그램은 IP 계층에 전달되지만, 목적지까지 도착한다는 보장은 없음 이로 인해 UDP 응용은 최종 IP 데이터그램의 크기를 고려가 중요하다 => 네트워크의 MTU를 초과하는 UDP/IP 데이터그램이 분할됨 (fragment) IP 데이터그램 = IP 헤더 + UDP 데이터그램(UDP 헤더 + UDP 데이터) UDP Header Port number 필드 sending process와 receiving process 구별에 사용 보통 T..
'csrf_2.php' 페이지의 개발자 도구에서 소스 코드를 확ㅇ니해 보면 소스 코드에 'account' 변수와 'amount' 변수가 노출되어 있다. => account 변수는 계좌번호, amount 변수는 이체할 금액 'xss_stored_1.php' 페이지로 이동하여 amount 변수의 값에 마이너스 값을 입력하여 계좌의 돈을 증가하게 하는 height, width가 0인 이미지 태그를 입력한다. 조작한 이미지 태그가 있는 블로그에 사용자들이 접근할 때마다 다음과 같이 계좌의 돈이 증가한다. 이 외에도 account 변수를 조작하여 원하는 계좌로 돈을 입금할 수 있다. amount 변수에 입력한 만큼 계좌에 있는 금액이 account 변수에 입력한 계좌로 이체된다.
'htmli_stored.php'에서 넓이와 높이가 0인 이미지 태그에 사용자 비밀번호를 변경하는 페이지를 호출하여 비밀번호를 evil로 변경하는 URL을 입력한다. 제출 후 'sqli_16.php' 페이지에서 변경된 비밀번호 evil을 입력하면 로그인에 성공한다 csrf_1.php 페이지는 새로운 비밀번호를 입력하는 password_new 변수를 mysqli_real_escape_string을 사용하여 우회 => SQL 인젝션 등 다른 공격이 불가능 mysqli_real_escape_string 함수는 SQL 문법에서 사용되는 특수 문자들에 백슬래스 붙여 입력 값을 SQL 문법으로 인식되지 않게 방어하는데, 백슬래시가 붙는 문자는 NULL, \n, \r, ',",^Z이이다. => SQL 인젝션으로 현재..
https://www.acmicpc.net/problem/2033 2033번: 반올림 정수 N이 주어져 있을 때 이 수가 10보다 크면 일의 자리에서 반올림을 하고, 이 결과가 100보다 크면 다시 10의 자리에서 반올림을 하고, 또 이 수가 1000보다 크면 100의 자리에서 반올림을 하고.. ( www.acmicpc.net 문제 정수 N이 주어져 있을 때 이 수가 10보다 크면 일의 자리에서 반올림을 하고, 이 결과가 100보다 크면 다시 10의 자리에서 반올림을 하고, 또 이 수가 1000보다 크면 100의 자리에서 반올림을 하고.. (이하 생략) 이러한 연산을 한 결과를 출력하시오. 입력 첫째 줄에 정수 N이 주어진다. (0 ≤ N ≤ 99,999,999) 출력 첫째 줄에 위와 같은 연산을 한 결..
사례 1) #include main() { int SUM; int A; int B; A = 10; B = 25; SUM = A + B; printf("%d\n", SUM); } 변수 A와 B의 값을 합한 값을 변수 SUM에 저장 후 출력 사례 2) #include void main() { int SUM = 0, N1, N2, N; scanf("%d", &N1); scanf("%d", &N2); for(N = N1; N NUM[N]) { MIN = NUM[N]; } } printf("배열 NUM의 원소들 중에서 최솟값은 %d입니다. \n", MIN); } 배열변수 NUM의 5개 원소 값을 초깃값으로 설정하고 MIN을 9999로 초기화 N번 동안 NUM(N)이 MIN보다 더 작으면 새로운 MIN으로 바꿔 최..
C 프로그램 구조 한 개 이상의 함수들로 구성 함수몸체 : 중괄호 { } 화이트 스페이스(white space) 삽입 : 변수나 값, 키워드를 억지로 분절시키지 않는 이상, 빈 줄이나 빈 칸, 탭과 같은 공백을 마음대로 넣는 것을 허용하는 것 각 함수들 사이에 들여쓰기를 사용하여 소스코드의 가독력 향상 => 통합개발환경(IDE)에서는 들여쓰기 실수로 인한 오해 유발을 막기 위해 시스템이 자동으로 들여쓰기 진행 C언어는 전달하고 전달받는 변수나 값의 데이터 타입이 서로 일치하는지 번역 단계에서 미리 점검하여 오류를 줄이는 특징을 가짐 C 문장 든 C 문장은 세미콜론(;)으로 종료 문장의 끝에 세미콜론을 붙인다면 한 줄에 여러 C 문장을 쓰는 것도 가능 콤마(,) 연산자를 통해 C문장을 나열형으로 변형하여 ..
ARP 개요 전제 : 이더넷 브로드캐스트 네트워크 기본 개념 : 네트워크 인터페이스가 하드웨어 주소를 갖음 응용이나 시스템 관리자에게 인식되지 않은 채 동작 32bit IP 주소 TCP/IP 프로토콜 그룹에서만 동작 물리적 하드웨어 주소 : 독자적 주소체계 데이터 전송 시 목적지 하드웨어 주소를 알아야 함 ARP 기능 IP 주소를 대응하는 물리적 하드웨어 주소로 자동적으로 변환하는 보조적 프로토콜 IP 데이터 그램을 정확한 목적지 호스트로 보냄 여러 가지 형태의 물리적 하드웨어 주소를 처리 점 대 점 접속은 ARP를 사용 안 함 +) ARP, RARP 참고 이미지 ARP 캐시 각 호스트는 매번 ARP를 실행하지 않고 ARP 캐시에 물리적 주소 임시저장 인터넷 주소로부터 하드웨어 주소로 최신 정보 유지, ..