2024-02-10 21:30:13 +00:00
# 유니코드 인젝션
2022-09-02 10:02:33 +00:00
< details >
2024-02-10 21:30:13 +00:00
< summary > < strong > htARTE (HackTricks AWS Red Team Expert)< / strong > 를 통해 AWS 해킹을 처음부터 전문가까지 배워보세요< strong > !< / strong > < / summary >
2022-09-02 10:02:33 +00:00
2024-02-10 21:30:13 +00:00
HackTricks를 지원하는 다른 방법:
2022-09-02 10:02:33 +00:00
2024-02-10 21:30:13 +00:00
* **회사를 HackTricks에서 광고하거나 HackTricks를 PDF로 다운로드**하려면 [**SUBSCRIPTION PLANS** ](https://github.com/sponsors/carlospolop )를 확인하세요!
* [**공식 PEASS & HackTricks 스웨그** ](https://peass.creator-spring.com )를 얻으세요.
* [**The PEASS Family** ](https://opensea.io/collection/the-peass-family )를 발견하세요. 독점적인 [**NFTs** ](https://opensea.io/collection/the-peass-family ) 컬렉션입니다.
* 💬 [**Discord 그룹** ](https://discord.gg/hRep4RUj7f ) 또는 [**텔레그램 그룹** ](https://t.me/peass )에 **참여**하거나 **Twitter** 🐦 [**@carlospolopm** ](https://twitter.com/hacktricks_live )을 **팔로우**하세요.
* **Hacking 트릭을 공유하려면 PR을** [**HackTricks** ](https://github.com/carlospolop/hacktricks ) **및** [**HackTricks Cloud** ](https://github.com/carlospolop/hacktricks-cloud ) **깃허브 저장소에 제출**하세요.
2022-09-02 10:02:33 +00:00
< / details >
2024-02-10 21:30:13 +00:00
## 소개
2022-09-02 10:02:33 +00:00
2024-02-10 21:30:13 +00:00
백엔드/프론트엔드가 **이상한 유니코드 문자를 받을 때** , 공격자는 **보호 기능을 우회하고 임의의 문자를 삽입**하여 XSS 또는 SQLi와 같은 **인젝션 취약점을 악용**할 수 있습니다.
2022-09-02 10:02:33 +00:00
2024-02-10 21:30:13 +00:00
## 유니코드 정규화
2022-09-02 10:02:33 +00:00
2024-02-10 21:30:13 +00:00
유니코드 정규화는 **유니코드 문자를 ASCII 문자로 정규화**하는 과정입니다.
2022-09-02 10:02:33 +00:00
2024-02-10 21:30:13 +00:00
이 유형의 취약점의 일반적인 시나리오는 시스템이 사용자의 **입력을 확인한 후에 입력을 수정**하는 경우입니다. 예를 들어, 언어에 따라 **입력을 대문자 또는 소문자로 변환**하는 간단한 호출은 주어진 입력을 정규화하고 **유니코드가 ASCII로 변환**되어 새로운 문자가 생성될 수 있습니다.\
자세한 내용은 다음을 참조하세요:
2022-09-02 10:02:33 +00:00
{% content-ref url="unicode-normalization.md" %}
[unicode-normalization.md ](unicode-normalization.md )
{% endcontent-ref %}
2024-02-10 21:30:13 +00:00
## `\u`를 `%`로 변환
2022-09-02 10:02:33 +00:00
2024-02-10 21:30:13 +00:00
유니코드 문자는 일반적으로 ** `\u` 접두사**로 표시됩니다. 예를 들어, 문자 `㱋` 은 `\u3c4b` 입니다([여기에서 확인하세요](https://unicode-explorer.com/c/3c4B)). 백엔드가 접두사 ** `\u` 를 `%` 로 변환**하면 결과적으로 문자열은 `%3c4b` 가 되며, 이를 URL 디코딩하면 ** `<4b` **가 됩니다. 그리고 보시다시피 ** `<` 문자가 삽입**됩니다.\
백엔드가 취약하다면 이 기술을 사용하여 **임의의 종류의 문자를 삽입**할 수 있습니다.\
필요한 문자를 찾으려면 [https://unicode-explorer.com/ ](https://unicode-explorer.com/ )를 확인하세요.
2022-09-02 10:02:33 +00:00
2024-02-10 21:30:13 +00:00
이 취약점은 실제로 연구원이 발견한 취약점에서 나온 것입니다. 더 깊은 설명은 [https://www.youtube.com/watch?v=aUsAHb0E7Cg ](https://www.youtube.com/watch?v=aUsAHb0E7Cg )에서 확인할 수 있습니다.
2022-09-02 10:02:33 +00:00
2024-02-10 21:30:13 +00:00
## 이모지 인젝션
2022-09-02 10:02:33 +00:00
2024-02-10 21:30:13 +00:00
백엔드는 때때로 **이모지를 받을 때 이상하게 동작**합니다. 이는 [**이 writeup** ](https://medium.com/@fpatrik/how-i-found-an-xss-vulnerability-via-using-emojis-7ad72de49209)에서 발생한 것으로, 연구원은 `💋img src=x onerror=alert(document.domain)//💛` 와 같은 페이로드로 XSS를 성공적으로 수행했습니다.
2022-09-02 10:02:33 +00:00
2024-02-10 21:30:13 +00:00
이 경우, 문제는 악성 문자를 제거한 후 서버가 UTF-8 문자열을 Windows-1252에서 UTF-8로 **변환**했기 때문에 발생했습니다 (기본적으로 입력 인코딩과 변환 인코딩이 일치하지 않음). 그런 다음 이는 올바른 < 가 아닌 이상한 유니코드인 `‹ ` 를 생성합니다 .\
``그래서 이 출력을 **다시 UTF-8에서 ASCII로 변환**했습니다. 이로 인해 `‹ ` 가 `<` 로 **정규화**되어 해당 시스템에서 이 취약점이 작동할 수 있었습니다.\
다음은 발생한 일입니다:
2022-09-02 10:02:33 +00:00
```php
< ?php
$str = isset($_GET["str"]) ? htmlspecialchars($_GET["str"]) : "";
$str = iconv("Windows-1252", "UTF-8", $str);
$str = iconv("UTF-8", "ASCII//TRANSLIT", $str);
echo "String: " . $str;
```
2024-02-10 21:30:13 +00:00
이모지 목록:
2022-09-02 10:02:33 +00:00
* [https://github.com/iorch/jakaton\_feminicidios/blob/master/data/emojis.csv ](https://github.com/iorch/jakaton\_feminicidios/blob/master/data/emojis.csv )
* [https://unicode.org/emoji/charts-14.0/full-emoji-list.html ](https://unicode.org/emoji/charts-14.0/full-emoji-list.html )
< details >
2024-02-10 21:30:13 +00:00
< summary > < strong > htARTE (HackTricks AWS Red Team Expert)< / strong > 를 통해 AWS 해킹을 처음부터 전문가까지 배워보세요< strong > !< / strong > < / summary >
2022-09-02 10:02:33 +00:00
2024-02-10 21:30:13 +00:00
HackTricks를 지원하는 다른 방법:
2022-09-02 10:02:33 +00:00
2024-02-10 21:30:13 +00:00
* **회사를 HackTricks에서 광고하거나 HackTricks를 PDF로 다운로드**하려면 [**SUBSCRIPTION PLANS** ](https://github.com/sponsors/carlospolop )를 확인하세요!
* [**공식 PEASS & HackTricks 스웨그** ](https://peass.creator-spring.com )를 얻으세요.
* [**The PEASS Family** ](https://opensea.io/collection/the-peass-family )를 발견하세요. 독점적인 [**NFTs** ](https://opensea.io/collection/the-peass-family ) 컬렉션입니다.
* 💬 [**Discord 그룹** ](https://discord.gg/hRep4RUj7f ) 또는 [**텔레그램 그룹** ](https://t.me/peass )에 **참여**하거나 **Twitter** 🐦 [**@carlospolopm** ](https://twitter.com/hacktricks_live )**를** 팔로우하세요.
* **Hacking 트릭을 공유하려면** [**HackTricks** ](https://github.com/carlospolop/hacktricks )와 [**HackTricks Cloud** ](https://github.com/carlospolop/hacktricks-cloud ) github 저장소에 PR을 제출하세요.
2022-09-02 10:02:33 +00:00
< / details >