목록어플리케이션 보안 운영 (17)
kjh00n의 기록저장소

[정의][UNION]• UNION - 두 개의 테이블 결과값을 하나의 테이블에 출력하는 DML• UNION 조건 - 각 테이블에서 반환하는 열의 개수가 같아야 함 - 합쳐지는 각 열의 자료형이 같아야 함My-SQL은 자동 형 변환이 되기 때문에 일치하지 않아도 됨• Union을 이용한 데이터 추출 - 기존 SELECT 문의 출력에 공격자가 원하는 데이터를 합쳐 출력해낼 수 있음기존 SELECT 쿼리 문 UNION 공격자가 작성한 SELECT 쿼리 문 - 열의 수를 조작하여 정상 SQL Query 문이 반환하는 열의 개수 확인 - 조회 결과가 화면에 출력되는 경우 출력 위치 확인 - 공격자가 원하는 데이터가 화면에 출력되도록 하여 데이터 확인 [Database Schema][SQL Injection 유용한..

SQL InjectionInjection● 주입 공격● 데이터 입력이 가능한 위치에 공격을 위한 입력 값을 주입하는 공격 SQL Injection● DB에 직접적으로 전달되는 입력 값에 SQL문이나 DB에서 실행가능한 명령을 삽입하여 인증● 공격 대상 → DB Server (DB Hacking) Injection Vector● GET, POST의 매개변수가 SQL Query에 포함되는 위치● HTTP Request의 Message Header 분류 Non Blind SQL Injection● Query의 결과 값이 반환되는 경우 사용● 공격자가 반환 값을 조작해 공격을 감행하는 형태● 일반적인 SQL Injection은 Non Blind Injection을 말함● Query 결과 확인Error Based..

CSRF (Cross Site Request Forgery)● 사이트 간 요청 위조 공격● 웹 사이트에서 제공하는 기능을 신뢰된 사용자의 권한으로 요청하도록 하는 공격→ 정당한 기능을 정당한 사용자가 실행시키면 Server가 중요 정보를 변조, 생성, 삭제한다(정당한 기능을 정당하지 않은 사용자가 실행시키면 Server가 막는다)● Session Hijacking과 비슷함 → 클라이언트의 권한을 도용함● 공격대상 : Server● Server에게 요청하는 사항이 똑같아도 사용자에 따라서 Server의 응답은 다르다● 공격자를 추적하기 어렵다해커가 해야되는 일1. 요청을 정확하게 분석해야 한다★2. 요청문을 생성하기3. 클라이언트가 어떻게 요청할지 결정 (관리자가 모르게)CSRF vs XSS※CSRF도 S..

Server Side Validation 우회방법 및 필터링① str_replace (필터링)str_replace("검색할 문자열","변경 후 문자열","원본데이터");→ 원본데이터의 특정 글자를 다른 문자로 변환시켜주는 함수 str_replace("a","b","$b_cont");→ b_cont라는 내용물 안에서 a를 b로 변경하겠다board_write_ok.php에 작성DB와 F12에서의 내용 모두 필터링 후 저장되면 으로 저장되어서 태그가 자동으로 완성되어 실행이 된다.DB에 들어가면 이렇게 되어있으면 필터링이 되지만 → ● ⑤-① 필터링 while(preg_match("/"; } else { echo ""; } ?>Client Side Validation

XSS (Cross Site Scripting)● 공격 코드(Scripting)가 서버를 이용하는 클라이언트에서 실행(Cross Site)되게 만들어 클라이언트에서 비정상적인 동작이 수행되게 하는 공격● Hacker가 Server에 있는 특정 기능을 악용해서 Client를 공격 공격 발생 원인● 동적 웹 서비스에서 클라이언트로부터 전달되는 데이터를 검증 없이 받아들일 때 발생하는 취약점 공격 대상 및 특징● 웹 서버의 서비스를 제공받는 클라이언트● 웹 서버에 직접적인 피해를 일으키는 것이 아니라 웹 서버를 경유하여 클라이언트를 공격함서버를 장악하지 않고도 사용자의 권한을 쉽게 도용할 수 있음 공격 종류Reflected XSS (= Non-Persistent XSS)● 공격자의 악성 스크립트를 대상 서버에..

WEB Session Attack● WEB Session의 관리가 안전하게 이뤄지지 않을 때 공격자가 사용자의 Session을 획득하여 사용자의 권한을 도용함 취약한 Session 관리 ● 사용자의 인증 정보가 저장될 때 Hash 또는 암호화되어 보호되지 않음 ● 인증 정보가 취약한 계정관리 기능을 통해 추측되거나 덮어쓰기가 가능함 ● 세션 ID가 URL에 노출, 적절한 시간에 타임아웃 되지 않음, 로그인 후 교체되지 않음 ● 암호화 되지 않은 연결을 통해 세션 ID 및 증명 정보가 전송됨 공격 종류● Brute Forcing Session Token, WEB Session Fixation, WEB Session Hijacking Brute Forcing Session Token● Session Toke..