Top 13 Html 인젝션 5457 Votes This Answer

You are looking for information, articles, knowledge about the topic nail salons open on sunday near me html 인젝션 on Google, you do not find the information you need! Here are the best content compiled and compiled by the https://chewathai27.com/to team, along with other related topics such as: html 인젝션 html injection – reflected (get)


가장 쉬운 웹사이트 버그 – HTML 삽입 전체 튜토리얼
가장 쉬운 웹사이트 버그 – HTML 삽입 전체 튜토리얼


HTML 인젝션(Injection) 이론

  • Article author: power-girl0-0.tistory.com
  • Reviews from users: 18659 ⭐ Ratings
  • Top rated: 4.0 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about HTML 인젝션(Injection) 이론 HTML 인젝션(Injection) 이론 · 공격자가 악의적으로 넣은 쿼리문을 웹 애플리케이션에서 데이터베이스의 정상적 쿼리로 인식하고 실행할 때 발생하는 … …
  • Most searched keywords: Whether you are looking for HTML 인젝션(Injection) 이론 HTML 인젝션(Injection) 이론 · 공격자가 악의적으로 넣은 쿼리문을 웹 애플리케이션에서 데이터베이스의 정상적 쿼리로 인식하고 실행할 때 발생하는 … 안녕하세요-!! 이번에는 HTML 인젝션에 대해서 알아볼거예요😎 신나죠~~?? 저도 너무 너무 신나요-!! 오늘은 어떤 지식을 보따리에 담을지 다함께 출발~~!! 그전에-!!! Injection에 대해서 알아야겠죠?? 간단하게..
  • Table of Contents:

power-girl0-0

HTML 인젝션(Injection) 이론 본문

HTML 인젝션(Injection) 이론
HTML 인젝션(Injection) 이론

Read More

HTML Injection(인젝션) – Reflected(반사) GET

  • Article author: btyy.tistory.com
  • Reviews from users: 49646 ⭐ Ratings
  • Top rated: 3.4 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about HTML Injection(인젝션) – Reflected(반사) GET 공격자가 악의적인 목적으로 조작된 데이터를 주입시켜 웹 어플리케이션에서 정상적인 데이터 일부로 인식하고 실행하게 되면서 발생하는 취약점이다. …
  • Most searched keywords: Whether you are looking for HTML Injection(인젝션) – Reflected(반사) GET 공격자가 악의적인 목적으로 조작된 데이터를 주입시켜 웹 어플리케이션에서 정상적인 데이터 일부로 인식하고 실행하게 되면서 발생하는 취약점이다. HTML Injection(인젝션) – Reflected(반사) GET – Injection(인젝션)이란? 공격자가 악의적인 목적으로 조작된 데이터를 주입시켜 웹 어플리케이션에서 정상적인 데이터 일부로 인식하고 실행하게 되..
  • Table of Contents:

태그

관련글

댓글0

공지사항

티스토리툴바

HTML Injection(인젝션) - Reflected(반사) GET
HTML Injection(인젝션) – Reflected(반사) GET

Read More

Các loại HTML Injection và cách phòng tránh

  • Article author: viblo.asia
  • Reviews from users: 9533 ⭐ Ratings
  • Top rated: 3.8 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about Các loại HTML Injection và cách phòng tránh Vậy HTML Injection là gì? … Là một loại tấn công mà hacker sẽ tiêm những code HTML vào website thông qua những lỗ hổng, với mục đích thay đổi thiết kế hoặc một … …
  • Most searched keywords: Whether you are looking for Các loại HTML Injection và cách phòng tránh Vậy HTML Injection là gì? … Là một loại tấn công mà hacker sẽ tiêm những code HTML vào website thông qua những lỗ hổng, với mục đích thay đổi thiết kế hoặc một … Software Quality AssuranceHTML là gì?
  • Table of Contents:

Vậy HTML Injection là gì

Các loại HTML Injection

HTML Injection được thực hiện như thế nào

Test thế nào để chống lại được HTML Injection

Làm thế nào để ngăn chặn HTML Injection

Các loại HTML Injection và cách phòng tránh
Các loại HTML Injection và cách phòng tránh

Read More

[ Bee-Box ] HTML Injection – Reflected(GET)

  • Article author: ffoorreeuunn.tistory.com
  • Reviews from users: 1568 ⭐ Ratings
  • Top rated: 4.9 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about [ Bee-Box ] HTML Injection – Reflected(GET) HTML 인젝션 – 반사기법은 URL에 악의적인 HTML 태그를 삽입해서. 링크를 클릭한 사용자의 PC에서 HTML 태그가 실행되게 하는 공격입니다. …
  • Most searched keywords: Whether you are looking for [ Bee-Box ] HTML Injection – Reflected(GET) HTML 인젝션 – 반사기법은 URL에 악의적인 HTML 태그를 삽입해서. 링크를 클릭한 사용자의 PC에서 HTML 태그가 실행되게 하는 공격입니다. HTML 인젝션이란? HTML 인젝션은 일종의 코드 인젝션 공격입니다. HTML 인젝션의 기법은 크게 두가지로 나뉩니다. 반사(Reflected) 기법 저장(Stored) 기법 반사(Reflected) 기법 HTML 인젝션 – 반사기법은 URL에..
  • Table of Contents:

HTML 인젝션이란

HTML Injection 대응방안

태그

관련글

댓글0

공지사항

최근글

인기글

최근댓글

태그

전체 방문자

[ Bee-Box ] HTML Injection - Reflected(GET)
[ Bee-Box ] HTML Injection – Reflected(GET)

Read More

HTML 인젝션

  • Article author: motie.tistory.com
  • Reviews from users: 46681 ⭐ Ratings
  • Top rated: 4.2 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about HTML 인젝션 – 공격자는 사용자가 연결을 요청한 페이지에 HTML 태그를 삽입하여 의도하지 않은 내용을 보게 하거나 악의적인 사이트에 연결한다. … – URL에 악의적인 … …
  • Most searched keywords: Whether you are looking for HTML 인젝션 – 공격자는 사용자가 연결을 요청한 페이지에 HTML 태그를 삽입하여 의도하지 않은 내용을 보게 하거나 악의적인 사이트에 연결한다. … – URL에 악의적인 … 1) 개요 – 공격자는 사용자가 연결을 요청한 페이지에 HTML 태그를 삽입하여 의도하지 않은 내용을 보게 하거나 악의적인 사이트에 연결한다. 2) HTML 인젝션 반사기법 – URL에 악의적인 HTML 태그를 삽입 하여 링..
  • Table of Contents:

Information Security

HTML 인젝션 본문

티스토리툴바

HTML 인젝션
HTML 인젝션

Read More

A1. 인젝션 – HTML 인젝션(Reflected) : 네이버 블로그

  • Article author: blog.naver.com
  • Reviews from users: 15990 ⭐ Ratings
  • Top rated: 3.3 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about A1. 인젝션 – HTML 인젝션(Reflected) : 네이버 블로그 HTML 인젝션이란? 일반적으로 Client와 Server가 HTTP 통신을 할 때 Client에서는 html과 java script를 사용하고 Server 는 php, jsp, asp 등을 사용 … …
  • Most searched keywords: Whether you are looking for A1. 인젝션 – HTML 인젝션(Reflected) : 네이버 블로그 HTML 인젝션이란? 일반적으로 Client와 Server가 HTTP 통신을 할 때 Client에서는 html과 java script를 사용하고 Server 는 php, jsp, asp 등을 사용 …
  • Table of Contents:

블로그

악성코드가 포함되어 있는 파일입니다

작성자 이외의 방문자에게는 이용이 제한되었습니다

A1. 인젝션 - HTML 인젝션(Reflected) : 네이버 블로그
A1. 인젝션 – HTML 인젝션(Reflected) : 네이버 블로그

Read More

Part-1, HTML 인젝션

  • Article author: velog.io
  • Reviews from users: 34095 ⭐ Ratings
  • Top rated: 4.4 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about Part-1, HTML 인젝션 HTML 인젝션이란 취약한 매개변수에 악의적인 HTML 코드를 삽입하는 공격반사(Reflected)기법 \- GET \- POST저장(Stored)기법URL에 악의적인 HTML … …
  • Most searched keywords: Whether you are looking for Part-1, HTML 인젝션 HTML 인젝션이란 취약한 매개변수에 악의적인 HTML 코드를 삽입하는 공격반사(Reflected)기법 \- GET \- POST저장(Stored)기법URL에 악의적인 HTML … HTML 인젝션이란 취약한 매개변수에 악의적인 HTML 코드를 삽입하는 공격반사(Reflected)기법 \- GET \- POST저장(Stored)기법URL에 악의적인 HTML 태그를 삽입하여 링크를 클릭한 사용자의 PC에서 HTML태그가 실행되게 하는 공격각
  • Table of Contents:

비박스

반사(Reflected)기법

저장(Stored)기법

Part-1, HTML 인젝션
Part-1, HTML 인젝션

Read More

[Bee-box] HTML injection – Reflected(GET)

  • Article author: lucete1230-cyberpolice.tistory.com
  • Reviews from users: 46353 ⭐ Ratings
  • Top rated: 4.8 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about [Bee-box] HTML injection – Reflected(GET) HTML 인젝션의 종류는 저번 게시글에서 포스팅 했었죠. 오늘은 Reflected기법 중 GET방법을 실습해볼게요. 실습하는 모든 공격은 실제로 사용하시면 … …
  • Most searched keywords: Whether you are looking for [Bee-box] HTML injection – Reflected(GET) HTML 인젝션의 종류는 저번 게시글에서 포스팅 했었죠. 오늘은 Reflected기법 중 GET방법을 실습해볼게요. 실습하는 모든 공격은 실제로 사용하시면 … HTML 인젝션의 종류는 저번 게시글에서 포스팅 했었죠. 오늘은 Reflected기법 중 GET방법을 실습해볼게요 실습하는 모든 공격은 실제로 사용하시면 안됩니다. 허용받지 않은 서비스 대상에 해킹을 시도하는 행동은..
  • Table of Contents:

I-Tstory

[Bee-box] HTML injection – Reflected(GET) 본문

티스토리툴바

[Bee-box] HTML injection - Reflected(GET)
[Bee-box] HTML injection – Reflected(GET)

Read More

HTML 인젝션

  • Article author: kucs.tistory.com
  • Reviews from users: 29191 ⭐ Ratings
  • Top rated: 4.7 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about HTML 인젝션 HTML 인젝션이란? 웹 해킹에서 가장 많이 쓰이는 기법으로 HTML 인젝션이라고 하여 단순한 HTML 태그만 쓰일 것으로 생각하기 쉽지만 이것은 반은 … …
  • Most searched keywords: Whether you are looking for HTML 인젝션 HTML 인젝션이란? 웹 해킹에서 가장 많이 쓰이는 기법으로 HTML 인젝션이라고 하여 단순한 HTML 태그만 쓰일 것으로 생각하기 쉽지만 이것은 반은 … 1. HTML 인젝션이란? 웹 해킹에서 가장 많이 쓰이는 기법으로 HTML 인젝션이라고 하여 단순한 HTML 태그만 쓰일 것으로 생각하기 쉽지만 이것은 반은 맞고 반은 틀린 말이다 HTML 인젝션은 단순하지만 관련된 유사..
  • Table of Contents:
HTML 인젝션
HTML 인젝션

Read More

HTML Injection

  • Article author: hammieunseo.tistory.com
  • Reviews from users: 30335 ⭐ Ratings
  • Top rated: 5.0 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about HTML Injection HTML Injection. – XSS나 CSRF 공격을 이해하는 데 좋은 수단. HTML 인젝션 공격 개념. ✓ 간단한 웹 프로그래밍을 통한 HTML 인젝션의 이해. …
  • Most searched keywords: Whether you are looking for HTML Injection HTML Injection. – XSS나 CSRF 공격을 이해하는 데 좋은 수단. HTML 인젝션 공격 개념. ✓ 간단한 웹 프로그래밍을 통한 HTML 인젝션의 이해. ▶ HTML Injection – XSS나 CSRF 공격을 이해하는 데 좋은 수단. ✔ 간단한 웹 프로그래밍을 통한 HTML 인젝션의 이해  – 사용자의 이름을 입력 받아 화면에 이름을 나타내는 프로그램.  – 여기서 특정 취약점..
  • Table of Contents:

보안 개발 챌린저가 목표

HTML Injection 본문

HTML Injection
HTML Injection

Read More


See more articles in the same category here: Chewathai27.com/to/blog.

HTML Injection(인젝션) – Reflected(반사) GET

반응형

HTML Injection(인젝션) – Reflected(반사) GET

– Injection(인젝션)이란?

공격자가 악의적인 목적으로 조작된 데이터를 주입시켜 웹 어플리케이션에서 정상적인 데이터 일부로 인식하고 실행하게 되면서 발생하는 취약점이다. 인젝션에 종류로는 SQL, HTML, OS command, LDAP 인젝션 등이 있다.

인젝션 예시 그림(SQL injection)

1)HTML injection

반사(Reflected) – GET

Level – low

HTML injection – Reflected(GET) 페이지는 사용자가 입력한 값을 검증하지 않고 그대로 출력한다. 입력값을 검증하지 않는다는걸 알아보기 위해서는 html 태그를 포함한 데이터를 GET 방식으로 웹 어플리케이션 변수에 넣어서 보내보면 알 수 있다.

입력값을 검증하지 않기 때문에 HTML 태그를 입력 받으면 웹 브라우저는 HTML 태그로 해석을 해서 웹 브라우저로 결과를 돌려주기 때문에 HTML 태그를 이용 한 악의적인 공격이 가능하다.

– GET 방식 HTML Injection Code

http://172.30.1.21/bWAPP/htmli_get.php?firstname=%3Cimg+src%3Dhttp%3A%2F%2F172.30.1.21%2FbWAPP%2Fimages%2Fbee_1.png%3E&lastname=%3Ch1%3Ehello%3C%2Fh1%3E&form=submit

* Reflected 방식에서 공격자는 해당 코드를 링크 형식으로 만들어서 사용자에게 클릭을 하게하는 등의 사용자를 유도하는 시나리오를 계획하고 실행 할 것이다.

Level – medium

medium 난이도에서는 HTML 태그를 입력 값으로 주게 되면 HTML 태그로 해석하지 않고 웹 브라우저에서 문자열로 결과를 준다. 이는 submit 버튼을 눌러서 데이터를 전송할 때 HTML 태그에 대한 필터링이 진행되고 있다고 판단 된다.

해당 페이지 소스를 분석해보면 submit 버튼을 눌렀을때 low 난이도와 똑같이 /bWAPP/htmli_get.php로 action이 일어나는걸 보면 난이도마다 지정해둔 security_level에 value 값에 따라서 입력 값 검증에 대한 차이가 이루어지는 것으로 생각된다.

* 만약 security_level의 value 값에 따라 난이도 상, 중, 하가 아닌 어느 홈페이지에 일반회원, 우수회원, 관리자에 따른 등급을 구분하는 값이라고 가정할때, 공격자가 버프 스위트와 같은 프록시 프로그램을 이용해서 웹 페이지로 전송되는 세션을 잡아서 security_level에 대한 value 값을 일반회원이 아닌 관리자에 대한 값으로 변경 시켜 해당 권한을 사용 할 수 있다고 가정해 볼 수 있다. 실제로 이정도까지 보안에 허술한 홈페이지가 있을지는 모르겠지만 이러한 가정을 통해서 생각해보면 웹 보안을 할때 간단한 페이지 소스 분석이지만 쉽게 지나치지 말아야 한다는 걸 알 수 있다.

HTML 태그가 필터링 되어 문자열로 출력되기 때문에 php 코드에서 ‘<', '>‘와 같은 HTML 태그 시작과 끝 문자가 필터링 된다고 생각된다. 이런 경우에는 문자를 URL 인코딩하여 입력해준다. ASCII 코드의 HEX 값을 이용해서 앞쪽에 % 붙여서 URL 인코딩 결과인 ‘<'(%3C)와 '>‘(%3E)를 사용해서 HTML 태그를 포함한 코드를 작성한다.

– URL 인코딩 예시

Hello

==

%3Ch1%3EHello%3C%2Fh1%3E

==

%3Cimg src=http://192.168.219.119/bWAPP/images/bee_1.png%3E

– URL 인코딩을 이용한 HTML injection code

http://192.168.219.119/bWAPP/htmli_get.php?firstname=%253Ch1%253EHello%253C%2Fh1%253E&lastname=%253Cimg+src%3Dhttp%3A

%2F%2F192.168.219.119%2FbWAPP%2Fimages%2Fbee_1.png%253E&form=submit

해당 코드를 작성해서 보내게 되면 PHP 코드가 있는 back-end 구간에서는 %3C와 %3E라는 문자로 검사되어 필터링에 걸리지 않게 되고 웹 브라우저에서 다시 해석되어 결과가 출력 될 때는 %3C와 %3E가 URL 디코딩 되서 ‘<', '>‘ 문자로 변환하여 HTML 태그의 시작과 끝 문자로 웹 브라우저가 해석하게 된다.

* URL Encoding에 대해서 알아보려면 wikipedia

(https://ko.wikipedia.org/wiki/%ED%8D%BC%EC%84%BC%ED%8A%B8_%EC%9D%B8%EC%BD%94%EB%94%A9)를 참고하면 된다.

실제로 /var/www/bWAPP/htmli_get.php 파일 안에 코드를 확인해 보면 다음과 같다.

– xss_check_1() 함수에 대한 정리

str_replace() 함수를 이용해서 해당 문자열 안에 “<", ">” 문자가 있다면 HTML Entities(<, >)로 변환하고 있다. 그리고나서 urldecode() 함수를 이용해서 URL 인코딩 문자를 디코딩해서 다시 변수에 저장해서 해당 값을 반환함으로써 URL 인코딩을 이용한 HTML injection 공격을 막고 있다. 다만, 여기서는 urldecode() 함수가 한번 사용 되었기 때문에 위에 완성된 공격 코드와 같이 더블 인코딩을 이용하면 공격이 가능해진다.

( 위 완성된 코드에서는 %253C와 같이 데이터를 보내주게 되면 urldecode()에서 디코딩 된다고 해도 %25는 %이기 때문에 %3C와 같은 결과가 변수에 저장되어 웹 브라우저에서 해석 될 때는 ‘<' 문자로 출력 된다. ) Level - high medium 난이도에서 사용했던 URL 인코딩 코드를 그대로 사용하면 이번에는 URL 인코딩도 문자열 그대로 해석해서 출력된다. 여기서는 입력 값을 입력해서 전송버튼을 누르면 back-end 구간에서 htmlspecialchars 함수가 사용되어 있어서 입력값에 &, <, >, “, ‘ 문자가 포함되어 있다면 HTML Entities 문자로 변환한다.

(결과가 출력된 페이지에 ‘소스 코드 보기’를 이용해서 결과 부분을 보면 HTML Entities 문자로 변환이 된걸 볼 수 있다)

그렇기 때문에 브라우저에서 결과가 출력될 때는 HTML 태그가 아닌 HTML Entities 문자로 해석되어 해당 문자 그대로 출력이 된다.

HTML injection reflected GET 공격을 막는 방법 중에 htmlspecialchars 함수를 사용해서 HTML 태그에 사용되는 문자들을 웹 브라우저가 HTML 태그로 인식하지 못하게 막을 수 있다.

htmlspecialchars 함수 참조 페이지: https://www.php.net/manual/en/function.htmlspecialchars.php

반응형

Các loại HTML Injection và cách phòng tránh

HTML là gì?

Để có nhận thức tốt hơn về HTML Injection, đầu tiên cần hiểu HTML là gì.

HTML là một ngôn ngữ đánh dấu mà tất cả các element của website đều được viết trong các thẻ. Nó hầu hết được sử dụng để tạo website. Các trang web sẽ được gửi tới trình duyệt dưới dạng các tài liệu HTML. Sau đó, các tài liệu HTML đó được convert sang website thông thường và hiển thị cho người dùng.

Vậy HTML Injection là gì?

Là một loại tấn công mà hacker sẽ tiêm những code HTML vào website thông qua những lỗ hổng, với mục đích thay đổi thiết kế hoặc một số thông tin của website, rồi hiển thị cho user. Kết quả, user có thể nhìn thấy những dữ liệu mà hacker đã gửi.

Những dữ liệu này sẽ khác nhau dựa vào loại tấn công. Nó có thể là 1 vài thẻ HTML, cũng có thể là 1 form hoặc 1 trang web fake. Khi tấn công xảy ra, trình duyệt sẽ hiển thị dữ liệu mà hacker đã tiêm vào.

Thay đổi hiển thị website không phải là rủi ro duy nhất khi cuộc tấn công này xảy ra. Nó cũng tương tự cuộc tấn công XSS, nên hacker có thể dễ dàng lấy cắp danh tính của người dùng.

Các loại HTML Injection

Như đề cập, HTML Injection được thực hiện với 2 mục đích:

Thay đổi giao diện hiển thị trang web

Lấy cắp danh tính của người dùng

Tuy nhiên, các loại HTML Injection chủ yếu là:

Tấn công HTML lưu trữ (stored HTML Injection)

Tấn công HTML phản ánh (reflected HTML Injection)

1. Stored HTML Injection:

Stored HTML injection xảy ra khi đoạn mã HTML độc hại được lưu trữ vào web server và được thực thi mỗi khi user gọi một tính năng phù hợp. Loại tấn công này thường ảnh hưởng đến nhiều người dùng.

2. Reflected HTML Injection:

Với loại tấn công này, các mã độc không được lưu trữ vĩnh viễn trên web server. Reflected HTML Injection xảy ra khi website phản hồi ngay lập tức với đầu vào độc hại. Loại tấn công này thường ảnh hưởng đến từng người dùng độc lập.

Có thể chia thành các loại sau:

Reflected GET

Reflected POST

Reflected URL

Cuộc tấn công reflected HTML injection có thể thực hiện theo những phương thức HTML khác nhau. Ví dụ: GET và POST. Với phương thức POST, dữ liệu sẽ được gửi đi. Còn với phương thức GET, dữ liệu sẽ được get về.

Để biết phương thức nào đang được sử dụng cho website, chúng ta có thể check source của trang (sử dụng phím F12, hoặc click chuột phải -> Inspect).

Ví dụ: đoạn code form login dưới đây sử dụng phương thức post

Reflected GET Injection xảy ra khi dữ liệu đầu vào hiển thị (reflected) trên website. Giả sử, chúng ta có một trang đơn giản với form tìm kiếm là lỗ hổng cho cuộc tấn công này. Chúng ta sẽ nhập HTML code vào tìm kiếm, nó sẽ xuất hiện trên website cùng một thời điểm, và nó sẽ tiêm vào tài liệu HTML của web.

Ví dụ: chúng ta nhập một thẻ HTML đơn giản:

Reflected POST Injection khó hơn một chút. Nó xảy ra khi đoạn mã HTML độc hại được gửi thay vì gửi đúng parameters POST.

Ví dụ: Chúng ta có form login có lỗ hổng cho tấn công HTML. Dữ liệu được nhập vào form login sẽ được gửi với phương thức POST. Sau đó, chúng ta sẽ nhập mã HTML thay cho nhập đúng các parameter login, và nó sẽ được gửi đi với phương thức POST và hiển thị trên website.

Để thực hiện tấn công Reflected POST Injection, tôi đề nghị sử dụng plugin của trình duyệt đặc biệt, nó sẽ fake dữ liệu được gửi. Ví dụ như plugin “Tamper Data” của Firefox. Plugin sẽ lưu trữ dữ liệu được gửi đi và cho phép người dùng thay đổi chúng. Sau đó dữ liệu thay đổi sẽ được gửi và hiển thị trên website.

Ví dụ: Nếu chúng ta sử dụng plugin, rồi gửi cùng mã HTML

Testing test

, nó sẽ hiển thị giống như ví dụ ở trên.

Reflected URL xảy ra khi đoạn mã HTML được gửi thông qua URL của website, được hiển thị trong website, đồng thời việc tiêm vào tài liệu HTML.

HTML Injection được thực hiện như thế nào?

Đầu tiên, hacker sẽ tìm các lỗ hổng của website. Các lỗ hổng này có thể là các trường nhập dữ liệu hoặc link website.

Đoạn mã HTML độc hại có thể được lấy từ source code bằng innerHTML. InnerHTML là thuộc tính của tài liệu DOM. Từ innerHTML, chúng ta có thể viết dynamic HTML code (code HTML động). Nó thường được sử dụng cho các trường nhập dữ liệu như các trường comment, form câu hỏi, form đăng ký, … Do đó, những phần tử này dễ bị tấn công HTML nhất.

Giả sử, chúng ta có form các câu hỏi cần điền câu trả lời và họ tên. Khi hoàn thành form này, sẽ hiển thị một thông báo xác nhận. Trong thông báo này, tên của người dùng được chỉ định được hiển thị.

Ví dụ:

Trong đó, Tester_name là tên được chỉ định của user. Và code của đoạn thông báo này như sau:

var user_name=location.href.indexOf(“user=”); document.getElementById(“Thank you for filling our questionnaire”).innerHTML=” Thank you for filling our questionnaire, ”+user;

Nếu chúng ta nhập code HTML vào, thì đoạn thông báo sẽ hiển thị thông điệp của nó.

Tương tự, chúng ta có form comment như sau:

Trong form này, user cần nhập tên và nội dung comment. Tất cả các comment sẽ được liệt kê trong page và được tải lại khi tải trang. Do đó, mã độc hại có thể được nhập và lưu trữ, nó cũng sẽ được tải lại và hiển thị trên website.

Ví dụ, trong field comment chúng ta nhập đoạn code sau:

Khi đó, đoạn code trên sẽ được hiển thị trên website.

Một cách khác để tấn công HTML là thực hiện thông qua link website, ví dụ PHP website link.

Như bạn biết, “site là một parameter and “1” là value của nó. Nếu parameter “site” thay cho value “1” chúng ta sẽ chỉ định được bất kỳ mã HTML nào có văn bản để hiển thị. Text được chỉ định này sẽ được hiển thị trên trang “Page Not Found”. Điều này chỉ xảy ra khi trang có lỗ hổng dễ bị tấn công.

Do đó, nếu chúng ta nhập thẻ

Testing

thay thế cho giá trị của thông số parameter value, thì text sau sẽ hiển thị:

Test thế nào để chống lại được HTML Injection?

Đầu tiên, tester cần liệt kê tất cả các lỗ hổng có thể của website:

Tất cả các field hập dữ liệu

Website link

Sau đó, thực hiện manual test.

Để test xem HTML Injection là có thể hay không, hãy nhập một đoạn code HTML đơn giản. Ví dụ, để check đoạn text nhập vào có hiển thị hay không, chỉ cần một đoạn code đơn giản là đủ để check điều này, không cần thiết phải sử dụng một đoạn code HTML phức tạp.

Ví dụ: có thể nhập thẻ tag đơn giản sau:

HTML Injection testing

Hoặc với search form, nếu bạn muốn test với cái gì đó phức tạp hơn:

Nhập text để search:

Nếu một đoạn code HTML được hiển thị, thì tester có thể chắc chắn rằng, tấn công HTML là có thể. Sau đó, tester có thể thử với đoạn code phức tạp hơn. Ví dụ, để hiển thị một form login fake.

Một giải pháp khác là quét HTML Injection. Quét tự động loại tấn công này có thể tiết kiệm thời gian của bạn. Tôi muốn chú ý rằng không có nhiều tool cho testing HTML Injection so với các loại tấn công khác.

Trong đó, một giải pháp khả thi là ứng dụng WAS. WAS có thể được gọi là một máy quét lỗ hổng khá mạnh, vì nó test với các đầu vào khác nhau, và không bị dừng lại với lần thất bại đầu tiên.

Ngoài ra, ta có thể kể đến plugin browser bên trên, “Tamper Data”, nó get dữ liệu đã gửi, cho phép tester thay đổi nó và gửi đến browser.

Chúng ta cũng có thể tìm vài công cụ scan online. Hãy nhớ rằng, khi lựa chọn tool scan, chúng ta phải chú ý đến khả năng phân tích kết quả và nó có chính xác hay không.

Tuy nhiên, cần lưu ý rằng, việc test thủ công không được phép bỏ qua. Vì đây là cách chúng ta có thể khẳng định chắc chắn rằng những đầu vào chính xác đã được thử nghiệm và những kết quả chính xác đã được trả về. Hơn nữa, đây cũng là cách dễ dàng hơn trong việc phân tích kết quả thử nghiệm.

Làm thế nào để ngăn chặn HTML Injection?

Không còn nghi ngờ gì nữa, nguyên nhân chính để xảy ra cuộc tấn công này là do các nhà phát triển thiếu chú ý và thiếu kiến thức. Loại tấn công này xảy ra khi đầu vào và đầu ra không được validate chính xác. Do đó, cách để ngăn chặn cuộc tấn công HTML là validate dữ liệu chính xác.

Kiểm tra xem tất cả các đầu vào có chưa bất kỳ code script hay HTML nào không, như , , bằng cách sử dụng các function.

Có nhiều function để check xem code có chứa bất kỳ đoạn HTML đặc biệt nào. Việc lựa chọn function phụ thuộc vào ngôn ngữ lập trình mà dev đang sử dụng.

Tôi chỉ lưu ý rằng, tuy các cuộc tấn công HTML là tương đối hiếm, cũng có ít tài liệu để học về nó, và cũng ít máy scanner để kiểm tra tự động. Tuy nhiên, không nên bỏ qua loại kiểm tra bảo mật này.

Hơn nữa, cả developer và tester cũng nên có kiến thức tốt về cách thực hiện loại tấn công này. Sự hiểu biết về quy trình của loại tấn công này có thể sẽ giúp ngăn chặn nó.

References: https://www.softwaretestinghelp.com/html-injection-tutorial/

[ Bee-Box ] HTML Injection – Reflected(GET)

728×90

반응형

HTML 인젝션이란?

HTML 인젝션은 일종의 코드 인젝션 공격입니다.

HTML 인젝션의 기법은 크게 두가지로 나뉩니다.

반사(Reflected) 기법

저장(Stored) 기법

반사(Reflected) 기법

HTML 인젝션 – 반사기법은 URL에 악의적인 HTML 태그를 삽입해서

링크를 클릭한 사용자의 PC에서 HTML 태그가 실행되게 하는 공격입니다.

저장(Stored) 기법

HTML 인젝션 -저장기법은 악의적인 HTML 태그를 데이터베이스에 저장해서

저장된 태그 내용을 확인한 사용자의 PC에 HTML태그가 실행되게 하는 공격입니다.

반사기법 vs 저장기법

반사기법과 저장기법의 가장 큰 차이점은 악의적인 HTML 태그의 삽입 위치입니다.

반사기법은 URL에 태그를 삽입하고, 저장기법은 데이터베이스에 삽입합니다.

이제 직접 비박스에서 실습을 해봅시다!

호스트에서 비박스를 실행하는 방법을 모른다면 앞전의 포스팅을 보고오시는 것을 추천드립니다 ㅎㅅㅎ

아이디에 bee, 비밀번호에 bug를 쳐서 로그인합니다.

HTML Injection (GET) 항목을 선택하고 HACK 을 누릅니다.

HTML Injection – Reflected(GET) low(하) 단계

이 페이지는 가장 낮은 단계로 사용자가 입력한 값을 그대로 출력하는데,

입력값을 검증하는 코드가 누락되어 있어 관리자가 의도하지 않은 내용을 출력할 수 있는 취약점이 존재합니다.

h1 태그를 이용해서 확인해보도록하겠습니다.

h1 태그가 인식되는 것을 알 수 있는데요,

url에서도 firstname, lastname 이라는 취약한 변수가 노출되는 것을 확인할 수 있습니다.

http://192.168.100.198/bWAPP/htmli_get.php?firstname=hello&lastname=%3Ch1%3Eworld%21%3C%2Fh1%3E&form=submit

공격자는 이러한 주소의 형태로 사용자들에게 유도할 수 있고,

저 링크를 클릭한 사용자는 서버가 의도하지 않은 내용을 출력하게 됩니다.

HTML Injection – Reflected(GET) medium(중) 단계

우측 상단의 Set your security level을 medium으로 세팅을 해서

난이도 중을 선택해보도록 하겠습니다.

초반에 했던대로, h1 태그를 이용해서 확인해보도록 하겠습니다.

난이도 중은

을 html 태그가 아닌 문자로 인식하는군요.

우회과정을 확인하기 위해서 서버에서 코드를 찾아보도록하겠습니다.

소스파일은 /var/www/bWAPP 경로에 존재합니다.

터미널창을 열어서

cd /var/www/bWAPP

vim htmli_get.php

명령어를 입력합니다.

그럼 htmli_get.php 파일을 볼 수 있습니다.

소스코드를 살펴보니

low 난이도는 no_check() 라는 함수를 통해서,

medium 난이도는 xss_check_1() 라는 함수를 통해서,

high 난이도는 xss_check_3() 라는 함수를 통해서 data를 받는 것을 알 수 있습니다.

저 함수들은 functions_external.php 에 정의되어 있기때문에

functions_external.php 파일을 살펴보도록 하겠습니다.

난이도 low의 no_check() 함수입니다.

데이터를 받으면 그 데이터를 그대로 return 해주고 있는 것을 확인할 수 있습니다.

난이도 medium의 xss_check_1() 함수입니다.

받은 데이터에 < 또는 > 가 있으면 각각 <와 > 로 변환하고,

한번 디코딩을 해서 데이터를 리턴해줍니다.

기본적으로 브라우저는 <와 같은 특수문자를 인코딩해서 서버측에 보내게 되고, 서버측은 받을때 디코딩해서 받게 됩니다. xss_check_1() 함수는 디코딩을 해주는 urldecode() 함수를 사용하고 있으니 <와 >를 인코딩한 값을 넣어주면 우회가 가능할 듯 합니다.

참고로 url인코딩을 행할 시 < 는 %3c ,>는 %3e, /는 %2f 로 변환됩니다.

hello

%3ch1%3eworld%3c%2fh1%3e

의 형태로 넣어주면 우회가 가능한 것을 확인할 수 있습니다.

HTML Injection – Reflected(GET) high(상) 단계

난이도 상으로 가볼까요?

난이도를 high로 선택하고 Set을 눌러봅니다.

일반적인 html태그는 문자로 인식합니다.

medium 방식에서 시도했던 인코딩 우회도 막히네요.

난이도 상의 코드를 살펴볼까요?

난이도 상은 xss_check_3() 함수로 데이터를 우회하고 있습니다.

이 함수는 htmlspecialchars라는 기본함수를 이용해서 입력값을 우회하고 있습니다.

htmlspecialchats?

PHP에서 제공하는 기본함수로, HTML에서 사용하는 특수문자를 UTF-8로 변경하는 역할을 합니다.

htmlspecialchars에서 바꾸는 특수문자는 &,”,’,<,> 가 있습니다.

HTML Injection 대응방안

HTML Injection 공격을 방지하려면 htmlspecialchars 함수를 사용해

태그에 사용하는 특수문자들을 인식할 수 없도록 인코딩해줍니다.

728×90

반응형

So you have finished reading the html 인젝션 topic article, if you find this article useful, please share it. Thank you very much. See more: html injection – reflected (get)

Leave a Comment