# Dangling Markup - HTML scriptless injection {{#include ../../banners/hacktricks-training.md}} ## Resume 이 기술은 **HTML injection이 발견되었을 때** 사용자로부터 정보를 추출하는 데 사용할 수 있습니다. 이는 **XSS** [**를 악용할 방법을 찾지 못했을 때**](../xss-cross-site-scripting/index.html) 유용하며, **HTML 태그를 주입할 수 있는 경우**에 매우 유용합니다.\ 또한 **비밀이 HTML에 평문으로 저장되어** 있고 이를 클라이언트에서 **유출**하고 싶거나, 스크립트 실행을 오도하고 싶을 때도 유용합니다. 여기에서 언급된 여러 기술은 정보를 예상치 못한 방식으로 유출하여 일부 [**Content Security Policy**](../content-security-policy-csp-bypass/index.html)를 우회하는 데 사용할 수 있습니다 (html 태그, CSS, http-meta 태그, 폼, base...). ## Main Applications ### Stealing clear text secrets 페이지가 로드될 때 `test ``` ### 양식 훔치기 ```html ``` 그런 다음, 데이터를 경로로 보내는 폼(`
`)은 악성 도메인으로 데이터를 보냅니다. ### 폼 훔치기 2 폼 헤더를 설정합니다: `` 이렇게 하면 다음 폼 헤더가 덮어쓰여지고 폼의 모든 데이터가 공격자에게 전송됩니다. ### 폼 훔치기 3 버튼은 "formaction" 속성을 사용하여 정보가 전송될 URL을 변경할 수 있습니다: ```html ``` 공격자는 이를 사용하여 정보를 훔칠 수 있습니다. [**이 공격의 예를 이 문서에서 찾으세요**](https://portswigger.net/research/stealing-passwords-from-infosec-mastodon-without-bypassing-csp). ### 평문 비밀 훔치기 2 가장 최근에 언급된 기술을 사용하여 양식을 훔치는 것(새 양식 헤더 주입)을 통해 새로운 입력 필드를 주입할 수 있습니다: ```html ` 태그를 주입하여 동일한 작업을 수행할 수 있습니다. 닫힌 ``이 발견될 때까지 모든 데이터가 전송됩니다: ```html Click Me ← Injected lines ← Existing form (ignored by the parser) ... ← Subverted field ... ...
``` ### Stealing clear text secrets via noscript ``는 브라우저가 자바스크립트를 지원하지 않을 경우 그 내용을 해석하는 태그입니다 (Chrome에서 자바스크립트를 [chrome://settings/content/javascript](chrome://settings/content/javascript)에서 활성화/비활성화할 수 있습니다). 공격자가 제어하는 사이트로 주입 지점에서 페이지의 내용을 하단까지 유출하는 방법은 다음을 주입하는 것입니다: ```html