Web hacking/Nomaltic) 웹 해킹 수업 노트 👩💻47 [6주차]XSS 키로커 삽입과 대응방안 * 참고사항 XSS 시 단순한 알림창에 위협을 느끼지 못하기 때문에 버그바운티나 실제 업무에서 보고서를 작성할 떄 위험하다는 것을 직관적으로 인지시켜주기 위해서 얼마나 영향력 있는 취약점인지 보여주는 게 좋다. 작성 시 - - 1. XSS를 어떻게 잘 막을 수 있을지에 대한 의견 취합 입출력 HTML Entity 전환 필터링 White List 기반 필터링 Black List 기반 필터링 보안 라이브러리 사용 문자열 길이 제한 웹 방화벽 보안 정책 CSP Http Only 설정 2. XSS 대응방안 정석 적용가능한 모든 곳에서, 사용자의 파라미터에서 HTML 특수문자들을 HTML Entity로 표현한다. HTML Entity : = &it, > 이 Entity 를 출력시나 입력시에 적용할 수 있다. .. 2021. 11. 20. [6주차]XSS 공격 벡터와 대응방안 XSS 공격에 일반적으로 사용되는 몇가지의 백터를 알아보자. 태그: 스크립트 태그는 외부 Java script 코드를 참조하는데 사용할 수 있으므로 가장 간단한 XSS 태그이다. 공격자는 스크립트 태그 내에 악성코드를 삽입할 수 있다. Java Script 이벤트: 공격자가 사용하는 또 다른 태그인 이벤트 속성은 다양한 태그에 적용된다. "onerror" 및 "onload"와 같은 속성이 예이다. 태그: 이벤트 속성은 "body" 태그를 통해 제공되는 경우 스크립트의 소스가 될 수도 있다. 태그: 사용중인 브라우저에 따라 이 속성은 유용할 수 있따. 태그: 피싱 공격에 효과적인 이 벡터를 XSS 공격이 현재 페이지에 다른 HTML 페이지를 삽입할 수 있도록 한다. 태그: 일부 브라우저는 이 벡터를 통한 .. 2021. 11. 18. [5주차]XSS(Cross site script)를 공부해보자 + XVWA에서 실습 1. XSS 크로스 사이트 스크립트(크사)란? => 다른 취약점에 비해 우선순위가 낮다 왜냐면 서버를 향한 공격이 아닌 이용자들을 공격하는 것이기 때문. ---> 이용자의 브라우저에서 실행됨 클라이언트 스크립트를 삽입하는 공격!! -서버 측 코드 PHP, JSP, ASP - -클라이언트 측 코드 HTML, javascript - ---> 크사 발생 이유 :공격자의 스크립트가 그대로 서버에서 응답되기 때문이다. (Dom Based XSS 제외) :이용자의 입력(파라미터)이 서버에서 그대로 응답되기 때문이다. ---> 크사 : 영원한 우리의 친구 피라미터가 너무 수많이 존재하기때문에 찾으면 나옴. ---> 분류 서버에 저장: Stored XSS 서버에서 반사: Reflected XSS 클라이언트 측에서 조립.. 2021. 11. 12. [5주차]XSS(Cross-Site Scripting)이란? 0. 개념 자바스크립트: 웹 애플리케이션에서 사용되는 언어 HTML : 정적인 내용 / Java Script : 동적인 기능 구현 와 같이 구현. > 공격 ]예시 1. XSS(교차 사이트 스크립팅)의 개념 웹 애플리케이션에서 일어나는 취약점으로 OWASP Top 10에 포함되어 있다. 사이트간 스크립팅은 공격자가 취약한 응용프로그램과 사용자의 상호작용을 손상시킬 수 있는 웹 보안 취약점이다. 크로스 사이트 스크립팅 취약점은 일반적으로 공격자가 피해자 사용자로 가장하여 사용자가 수행할 수 있는 모든 작업을 수행하고 사용자 데이터에 엑세스 할 수 있게 한다. 공격자는 이로 인해 모든 기능과 데이터를 장악할 수 있다. 이는 일반적으로 브라우저 측 스크립트의 형태로 다른 사용자에게 악성코드를 보낼 때 발생한다... 2021. 11. 10. Burp suit 유투브 강의 듣기 https://www.youtube.com/watch?v=4cJ9Mgpqmpw&list=PL1jdJcP6uQtted4aeuNVSbHaljyD1Q-s-&index=5 ** 노트정리 ** 사용법을 배워서 Blind injection 실습을 하기 위함 01 인증서 설치 CA 인증서 설치 Open browser내에서 사용하면 설치 안 해도 됨. history내 다 저장 가능, 우클릭으로 넘길 수 있음. option내 도메인 지정해서 그 도메인만 저장할 수도 있음. 03 테스트 환경 소개와 범위 설정 1. 가상 환경 : VMware,Virtual machin >> 2. 파일 형태로 동작 3. 테스트 환경 서비스 사이트 scope 설정해서 필요 사이트만 조회할 수 있다. 04. 원하는 사이트만 해킹 대상으로 설정... 2021. 11. 9. [4주차]Blind SQL Injection과 대응방안 Blind SQL Injection SQL 질의 결과가 노출되지 않는 곳에 사용 ex)로그인 페이지 기법 ( 1 ) LIMIT Limit [시작위치:0으로 시작], [개수] limit 0,1 => 0부터 1개 가져옴 limit 1,2 => 1에서부터 2개 가져옴 ( 2 ) substring Ex) Select password from member limit 0,1 > ‘12345’라면 Substring( ‘12345’ , 1, 1 ) 자동화로 비교하도록 ( 3 ) ASCII 코드 받아온 데이터를 숫자로 변경해줌. 이진 탐색 알고리즘을 통하면 매우 빠르게 비교 가능 33 ~ 126 ( ) ‘normaltic’ 글자의 첫 글자 비교 예시 Substring(‘normaltic’, 1, 1) Select ~~~.. 2021. 11. 9. [4주차]Burp Suite 설치 및 기본설정 Burp Suite 이는 가장 널리 사용되는 침투 테스트 및 취약점 찾기 도구로 웹 애플리케이션 보안을 확인하는 데 자주 사용된다. 일반적으로 버프란 웹 보안을 평가하고 실습 테스트를 수행하는 데 사용하는 프록시 기반 도구이다. 사용자 중심 워크플로우(작업 절차 운영적 측면)의 핵심으로 브라우저와 대상 애플리케이션 사이에서 웹 프록시 서버로 작동하며 양방향으로 전송되는 원시 트래픽을 가로채고 검사하고 수정할 수 있다. 이 도구는 스캔 및 공격 권한이 있는 도메인에서만 사용해야한다. 1. Burp suite 설치 링크 아래에 접속해서 자신의 운영체제 버전에 맞는 프로그램을 다운로드 할 수 있다. https://portswigger.net/burp/releases/professional-community-2.. 2021. 11. 7. [4주차]SQL Injection 대응 방안 SQL 주입 방지 -기본 방어 옵션 1. 준비된 명령문 사용(매개 변수화된 쿼리 포함) □ 이는 개발자가 먼저 모든 SQL 코드를 정의한 후 나중에 각 매개변수를 쿼리에 전달하도록 하는 방법으로서 제공된 사용자의 입력에 관계없이 코드와 데이터를 구분 가능하다. 공격자가 아이디에 tom' or '1'='1를 입력하더라도 문자 그대로 전체 문자열과 일치하는 사용자 이름을 찾는다. Java EE – PreparedStatement()바인드 변수와 함께 사용 .NET - 사용과 같은 쿼리를 매개 변수화 SqlCommand()또는 OleDbCommand()바인드 변수 PHP – 강력한 형식의 매개변수화된 쿼리와 함께 PDO 사용(bindParam() 사용) Hibernate - createQuery()바인드 변수.. 2021. 11. 4. [4주차]해시 함수에 대한 이해 □ 해시 함수란 임의의 길이의 데이터를 고정된 길이의 데이터로 매핑하는 함수이다. 일 방향 함수로 역연산이 불가능하다. □ 해시 함수는 1993년 미국 안전 보장국(NSA)가 설계했으며 최초의SHA-0부터 SHA-1, SHA-3까지 발전되었다. 2020년 6월 미국 NSA에서 발표한 안전한 VPN 사용을 위한 제안서에 따르면, 최소 권장사항 중에 Hash함수는 최소 Hash-384 Hash를 사용하라고 권장하고 있다. □ 미국 국립 표준 기술 연구소가 게시한 SHA-3 예제 해시 값은 다음과 같다. □ 암호학적 해시 함수는 역상(pre-image), 제2 역상(2nd preimage), 충돌 쌍(collision)에 대하여 안전성을 가져야한다. 역상(pre-image): 해당 해시 입력 값을 알아내기가 .. 2021. 11. 3. 이전 1 2 3 4 5 6 다음