html injection tutorial
HTML 인젝션에 대한 심층보기 :
HTML 주입에 대해 더 잘 이해하려면 먼저 HTML이 무엇인지 알아야합니다.
HTML은 모든 웹 사이트의 요소가 태그로 작성되는 마크 업 언어입니다. 주로 웹 사이트를 만드는 데 사용됩니다. 웹 페이지는 HTML 문서 형식으로 브라우저에 전송됩니다. 그런 다음 해당 HTML 문서는 일반 웹 사이트로 변환되어 최종 사용자에게 표시됩니다.
셀레늄 인터뷰 질문 및 답변 pdf
이 튜토리얼은 개념을 쉽게 이해할 수 있도록 간단한 용어로 실제 예제와 함께 HTML 주입, 유형 및 예방 조치에 대한 전체 개요를 제공합니다.
학습 내용 :
- HTML 주입이란 무엇입니까?
- HTML 주입 유형
- HTML 주입은 어떻게 수행됩니까?
- HTML 주입에 대해 테스트하는 방법?
- HTML 주입을 방지하는 방법?
- 다른 공격과의 비교
- 결론
- 추천 도서
HTML 주입이란 무엇입니까?
이러한 유형의 주입 공격의 본질은 웹 사이트의 취약한 부분을 통해 HTML 코드를 주입하는 것입니다. 악의적 인 사용자는 웹 사이트의 디자인이나 사용자에게 표시되는 정보를 변경할 목적으로 취약한 필드를 통해 HTML 코드를 보냅니다.
결과적으로 사용자는 악의적 인 사용자가 보낸 데이터를 볼 수 있습니다. 따라서 일반적으로 HTML 주입은 페이지 문서에 마크 업 언어 코드를 주입하는 것입니다.
이러한 유형의 인젝션 공격 중에 전송되는 데이터는 매우 다를 수 있습니다. 전송 된 정보 만 표시하는 몇 가지 HTML 태그 일 수 있습니다. 또한 전체 가짜 양식 또는 페이지 일 수 있습니다. 이 공격이 발생하면 브라우저는 일반적으로 악성 사용자 데이터를 합법적 인 것으로 해석하여 표시합니다.
웹 사이트의 모양을 변경하는 것이 이러한 유형의 공격으로 인한 유일한 위험은 아닙니다. 악의적 인 사용자가 다른 사람의 신원을 도용하는 XSS 공격과 매우 유사합니다. 따라서이 주입 공격 중에 다른 사람의 신원을 훔치는 것도 발생할 수 있습니다.
HTML 주입 유형
이 공격은 HTML이 아주 단순한 언어로 간주되기 때문에 이해하거나 수행하기가 그리 어렵지 않은 것 같습니다. 그러나 이러한 유형의 공격을 수행하는 방법에는 여러 가지가 있습니다. 우리는 또한이 주사의 다른 유형을 구별 할 수 있습니다.
첫째, 다양한 유형이 위험에 따라 분류 될 수 있습니다.
언급했듯이이 주입 공격은 두 가지 다른 목적으로 수행 할 수 있습니다.
- 표시된 웹 사이트의 모양을 변경합니다.
- 다른 사람의 신원을 훔치기 위해.
또한이 인젝션 공격은 웹 사이트의 다른 부분, 즉 데이터 입력 필드와 웹 사이트 링크를 통해 수행 될 수 있습니다.
그러나 주요 유형은 다음과 같습니다.
- 저장된 HTML 주입
- 반영된 HTML 주입
# 1) 저장된 HTML 주입 :
이 두 가지 인젝션 유형의 가장 큰 차이점은 저장된 인젝션 공격은 악성 HTML 코드가 웹 서버에 저장 될 때 발생하고 사용자가 적절한 기능을 호출 할 때마다 실행된다는 것입니다.
그러나 반사 된 인젝션 공격의 경우 악성 HTML 코드가 웹 서버에 영구적으로 저장되지 않습니다. 반사 주입은 웹 사이트가 악의적 인 입력에 즉시 응답 할 때 발생합니다.
# 2) 반영된 HTML 주입 :
이것은 다시 더 많은 유형으로 나눌 수 있습니다.
- 반영된 GET
- 반영된 POST
- 반영된 URL
반사 주입 공격은 HTTP 방식 (예 : GET 및 POST)에 따라 다르게 수행 될 수 있습니다. POST 메서드 데이터가 전송되고 GET 메서드 데이터가 요청되고 있음을 상기시킵니다.
적절한 웹 사이트 요소에 어떤 방법이 사용되는지 알기 위해 페이지 소스를 확인할 수 있습니다.
예를 들어 , 테스터는 로그인 양식의 소스 코드를 확인하고 사용중인 방법을 찾을 수 있습니다. 그런 다음 적절한 HTML 주입 방법을 적절하게 선택할 수 있습니다.
반영된 GET 주입 우리의 입력이 웹 사이트에 표시 (반영) 될 때 발생합니다. 이 공격에 취약한 검색 양식이있는 간단한 페이지가 있다고 가정합니다. 그런 다음 HTML 코드를 입력하면 웹 사이트에 표시되고 동시에 HTML 문서에 삽입됩니다.
예를 들어 HTML 태그를 사용하여 간단한 텍스트를 입력합니다.
어려운 상황에 대처하는 방법
반영된 POST HTML 주입 조금 더 어렵습니다. 올바른 POST 메소드 매개 변수 대신 악성 HTML 코드가 전송 될 때 발생합니다.
예를 들어 , HTML 공격에 취약한 로그인 양식이 있습니다. 로그인 양식에 입력 된 데이터는 POST 방식으로 전송됩니다. 그런 다음 올바른 매개 변수 대신 HTML 코드를 입력하면 POST 방식으로 전송되어 웹 사이트에 표시됩니다.
Reflected POST HTML 공격을 수행하려면 전송 된 데이터를 위조하는 특수 브라우저의 플러그인을 사용하는 것이 좋습니다. 그 중 하나는 Mozilla Firefox 플러그인“Tamper Data”입니다. 플러그인은 전송 된 데이터를 인수하고 사용자가이를 변경할 수 있도록합니다. 그러면 변경된 데이터가 전송되고 웹 사이트에 표시됩니다.
예를 들어, 이러한 플러그인을 사용하면 동일한 HTML 코드를 전송합니다. 또는 더 복잡한 것으로 테스트하려면 양식 코드를 검색하십시오. 검색 할 텍스트 입력
어딘가에 저장된 HTML 코드가 표시되면 테스터는이 주입 공격이 가능한지 확인할 수 있습니다. 그런 다음 더 복잡한 코드를 시도 할 수 있습니다. 예 , 가짜 로그인 양식을 표시합니다.
또 다른 솔루션은 HTML 주입 스캐너입니다. 이 공격에 대해 자동으로 스캔하면 많은 시간을 절약 할 수 있습니다. 다른 공격에 비해 HTML 주입 테스트를위한 도구가 많지 않다는 점을 알려 드리고자합니다.
그러나 가능한 솔루션 중 하나는 WAS 애플리케이션입니다. WAS는 첫 번째 실패로 멈추지 않고 다른 입력으로 테스트하기 때문에 매우 강력한 취약성 스캐너로 명명 될 수 있습니다.
위의 브라우저 플러그인“Tamper Data”에서 언급했듯이 테스트에 유용합니다. 데이터를 전송하고 테스터가이를 변경하고 브라우저로 전송할 수 있습니다.
또한 웹 사이트의 링크 만 제공하면 HTML 공격에 대한 스캔이 수행되는 온라인 스캔 도구를 찾을 수 있습니다. 테스트가 완료되면 요약이 표시됩니다.
저는 스캐닝 도구를 선택할 때 그것이 결과를 분석하는 방법에주의를 기울여야하며 충분히 정확한지 여부에 대해 언급하고 싶습니다.
그러나 수동 테스트를 잊지 말아야한다는 점을 명심해야합니다. 이렇게하면 정확한 입력을 시도하고 어떤 결과를 얻고 있는지 확인할 수 있습니다. 또한 이렇게하면 결과를 분석하는 것도 더 쉽습니다.
소프트웨어 테스팅 경력을 쌓은 경험을 바탕으로 두 테스트 방식 모두 이러한 유형의 주입에 대해 잘 알고 있어야한다는 점을 언급하고 싶습니다. 그렇지 않으면 적절한 자동화 도구를 선택하고 그 결과를 분석하기 어려울 것입니다. 또한 품질에 대해 더 확신 할 수 있도록 수동으로 테스트하는 것을 잊지 않는 것이 좋습니다.
최고의 드라이버 업데이트 프로그램은 무엇입니까
HTML 주입을 방지하는 방법?
이 공격의 주된 이유는 개발자의 부주의와 지식 부족이라는 데는 의심의 여지가 없습니다. 이러한 유형의 주입 공격은 입력 및 출력이 제대로 검증되지 않은 경우 발생합니다. 따라서 HTML 공격을 방지하는 주요 규칙은 적절한 데이터 유효성 검사입니다.
모든 입력에 스크립트 코드 나 HTML 코드가 포함되어 있는지 확인해야합니다. 일반적으로 코드에 특수 스크립트 또는 HTML 대괄호 –,.
코드에 특수 괄호가 포함되어 있는지 확인하는 많은 기능이 있습니다. 검사 기능 선택은 사용중인 프로그래밍 언어에 따라 다릅니다.
기억해야 돼 그게 좋아 보안 테스트 예방의 일부이기도합니다. HTML 주입 공격이 매우 드물기 때문에 이에 대해 배울 문헌이 적고 자동 테스트를 위해 선택할 스캐너가 적다는 점에 주목하고 싶습니다. 그러나 보안 테스트의이 부분은 언제 발생할 수 있는지 결코 알 수 없기 때문에 놓쳐서는 안됩니다.
또한 개발자와 테스터 모두이 공격이 수행되는 방식에 대해 잘 알고 있어야합니다. 이 공격 프로세스를 잘 이해하면이를 방지하는 데 도움이 될 수 있습니다.
다른 공격과의 비교
다른 가능한 공격과 비교할 때이 공격은 확실히 그렇게 위험한 것으로 간주되지 않습니다. SQL 주입 또는 JavaScript 주입 공격 또는 XSS가 될 수도 있습니다. 전체 데이터베이스를 파괴하거나 데이터베이스에서 모든 데이터를 훔치지는 않습니다. 그러나 중요하지 않은 것으로 간주해서는 안됩니다.
앞서 언급했듯이 이러한 유형의 주입의 주요 목적은 표시된 웹 사이트의 모양을 악의적 인 목적으로 변경하여 최종 사용자에게 전송 된 정보 나 데이터를 표시하는 것입니다. 이러한 위험은 덜 중요한 것으로 간주 될 수 있습니다.
그러나 웹 사이트의 외관을 변경하면 회사의 명성이 떨어질 수 있습니다. 악의적 인 사용자가 웹 사이트의 외관을 파괴하면 회사에 대한 방문자의 의견이 바뀔 수 있습니다.
이 웹 사이트 공격이 가져 오는 또 다른 위험은 다른 사용자의 신원을 훔치는 것입니다.
언급했듯이 HTML 주입을 사용하면 악의적 인 사용자가 최종 사용자에게 표시되는 전체 페이지를 주입 할 수 있습니다. 그런 다음 최종 사용자가 가짜 로그인 페이지에 자신의 로그인 데이터를 표시하면 악의적 인 사용자에게 전송됩니다. 물론이 경우는이 공격에서 더 위험한 부분입니다.
다른 사용자의 데이터를 훔치는 경우 다른 공격 가능성이 많기 때문에 이러한 유형의 공격은 자주 선택되지 않습니다.
그러나 이는 사용자의 쿠키 및 기타 사용자 신원을 도용하는 XSS 공격과 매우 유사합니다. HTML 기반의 XSS 공격도 있습니다. 따라서 XSS 및 HTML 공격에 대한 테스트는 매우 유사하고 함께 수행 될 수 있습니다.
결론
HTML Injection은 다른 공격만큼 인기가 없기 때문에 다른 공격보다 덜 위험하다고 간주 될 수 있습니다. 따라서 이러한 유형의 주입에 대한 테스트는 때때로 생략됩니다.
또한 HTML 주입에 대한 문헌과 정보가 확실히 적다는 것도 눈에 띕니다. 따라서 테스터는 이러한 유형의 테스트를 수행하지 않기로 결정할 수 있습니다. 그러나이 경우 HTML 공격 위험은 충분히 평가되지 않을 수 있습니다.
이 튜토리얼에서 분석했듯이 이러한 유형의 주입을 사용하면 웹 사이트의 전체 디자인이 파괴되거나 사용자의 로그인 데이터가 도난 당할 수 있습니다. 따라서 보안 테스트에 HTML 주입을 포함하고 좋은 지식을 투자하는 것이 좋습니다.
일반적인 HTML 인젝션을 보셨습니까? 아래 댓글 섹션에서 경험을 자유롭게 공유하십시오.