반응형 전체 글992 Ethernet 헤더 Ethernet 헤더는 제일 낮은 계층의 프로토콜. 0 1 2 3 Destination Address Destination Address Source Address Source Address Ethernet Type X Ethernet 헤더는 도착지 MAC 주소가 6바이트, 출발지 MAC 주소가 6바이트 그리고 어떤 프로토콜의 데이터를 운반하는지 Ethernet Type 2바이트 필드로, 총 14바이트로 구성된다. Ethernet Type은 리눅스 환경에서 /usr/include/net/ethernet.h 파일에 정의되어있다. 2019. 9. 5. SQL Injection SQL Injection 웹 페이지의 입력 또는 매개변수인 파라미터의 값에 SQL 쿼리를 주입하여 데이터베이스의 데이터 조작이 가능한 웹 해킹 기법 중 하나이다. 이 취약점은 데이터베이스와 웹 애플리케이션이 연동되면서 태생되었으며 허용된 권한, 기능, 실행 가능한 SQL 쿼리에 의해서 피해 정도가 가늠되는 취약점이다. SQL Query 이 취약점은 DB의 데이터를 질의하기 위한 SQL 쿼리가 핵심 공격 기술에 해당되고, SQL 쿼리 구문 구현 능력이 공격 능력을 좌우한다고 할 수 있다. SQL은 데이터베이스로부터 정보를 얻거나 갱신하기 위한 표준 대화식 프로그래밍 언어이다. 데이터 조작어(DML) : 스키마 객체 내에서 데이터를 관리한다. ex) select, insert, update, delete 등.. 2019. 9. 3. 체크섬(Checksum) 체크섬은 전송되는 헤더 및 데이터의 무결성을 보장하기 위해서 사용되며, 기본적으로 데이터의 합으로 계산된다. 통신 프로토콜에서 헤더 및 운반 중인 데이터에 오류가 발생하지 않았는지 확인하는 일반적인 방법은 바로 체크섬을 이용한다. 1. 데이터를 전송할 때 송신 측에서는 체크섬 값을 계산하고 이 값을 데이터와 함께 전송한다. 2. 데이터를 받는 수신 측에서는 송신 측에서 체크섬을 계산할 때와 동일한 알고리즘으로 체크섬을 계산한다. 3. 만약 데이터를 수신하는 쪽에서 계산된 체크섬 값과 수신된 체크섬 값이 서로 다른 값이 나오면 에러가 발생한 사실을 확인할 수 있다. 수신 측에서 데이터를 수신할 때 체크섬 계산 결과가 일치하지 않는다면 해당 패킷은 폐기되기 때문에 패킷을 전송할 때 정확한 체크섬 계산은 패킷.. 2019. 9. 3. Packet Capture 라이브러리2 다음은 이어서 전 소스코드 사용했던 pcap_findalldevs() 함수, pcap_freealldevs() 함수를 살펴볼 것이다. pcap_findalldevs() 함수 #include int pcap_findalldevs(pcap_if_t **, char *); 이 함수는 사용자 PC에 있는 모든 네트워크 디바이스 정보를 가져오는 함수이다. 매개변수로는 pcap_if_t 타입의 포인터 변수가 저장된 변수의 주소 값과 에러 메시지가 저장될 버퍼의 주소 값을 전달한다. 전에 사용했던 소스코드를 보면 이 함수를 호출한 뒤, alldevs 변수에 연결 리스트로 검색된 네트워크 카드 정보가 저장된다. pcap_if_t의 구조체는 pcap.h 파일에 정의되어 있다. struct pcap_if { struct .. 2019. 9. 3. Packet Capture 라이브러리 RAW 소켓을 사용하지 않고, 라이브러리를 이용하여 패킷을 캡처하거나 프로토콜 헤더를 직접 작성하여 전송할 수 있다. 유닉스 계열에서 네트워크 패킷 캡처를 위해 가장 많이 libpcap 라이브러리를 사용한다. libpcap은 데이터 링크 계층부터 프로토콜 스택을 통과하는 네트워크 패킷을 캡처할 수 있도록, 네트워크 패킷을 전송할 수 있게 해 준다. 리눅스에서 libpcap 이용하여 네트워크 디바이스 정보를 확인해보자. 첫 번째로 libpcap 라이브러리가 필요하므로 다운로드를 하여보자. #apt-get install libpcap-dev 컴파일할 때는 gcc -o libpcap_test libpcap_test.c -lpcap 이렇게 해줘야 pcap.h 파일을 인식해 컴파일이 된다. 이렇게 실행하면 네트워.. 2019. 9. 3. RAW 소켓 RAW 소켓이란 소켓을 생성할 때 지정하는 옵션을 이용하여 데이터를 전송할 때 직접 프로토콜 헤더를 만들고, 데이터를 수신할 때도 프로토콜 헤더를 포함하여 수신하겠다는 의미로 소켓을 생성하는 것이다. 보통 소켓 관련 라이브러리 및 운영체제에서 프로토콜 헤더를 작성하여 직접 작성하지 않아도 되지만, 간혹 직접 다뤄야 하는 경우가 필요하다. 참고로 대부분의 Socket API는 RAW 소켓을 지원한다. 윈도우 XP 경우도 2001년에 출시되었을 때 Winsock 인터페이스를 통해서 RAW 소켓을 지원했다. 하지만, 해커가 RAW 소켓을 이용하여 직접 프로토콜 헤더를 만들어 공격에 사용하였기 때문에 3년 후의 윈도우 XP에서는 RAW 소켓의 사용을 제한하였다. 그래서 윈도우에서 학습할 경우 Packet Cap.. 2019. 9. 3. 이전 1 ··· 162 163 164 165 166 다음 반응형