Parameter Pollution | JSON Injection

Tip

AWS ํ•ดํ‚น ๋ฐฐ์šฐ๊ธฐ ๋ฐ ์—ฐ์Šตํ•˜๊ธฐ:HackTricks Training AWS Red Team Expert (ARTE)
GCP ํ•ดํ‚น ๋ฐฐ์šฐ๊ธฐ ๋ฐ ์—ฐ์Šตํ•˜๊ธฐ: HackTricks Training GCP Red Team Expert (GRTE) Azure ํ•ดํ‚น ๋ฐฐ์šฐ๊ธฐ ๋ฐ ์—ฐ์Šตํ•˜๊ธฐ: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks ์ง€์›ํ•˜๊ธฐ

HTTP Parameter Pollution (HPP) ๊ฐœ์š”

HTTP Parameter Pollution (HPP)๋Š” ๊ณต๊ฒฉ์ž๊ฐ€ HTTP ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์กฐ์ž‘ํ•˜์—ฌ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋™์ž‘์„ ์˜๋„ํ•˜์ง€ ์•Š์€ ๋ฐฉ์‹์œผ๋กœ ๋ณ€๊ฒฝํ•˜๋Š” ๊ธฐ์ˆ ์ž…๋‹ˆ๋‹ค. ์ด ์กฐ์ž‘์€ HTTP ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์ถ”๊ฐ€, ์ˆ˜์ • ๋˜๋Š” ๋ณต์ œํ•จ์œผ๋กœ์จ ์ด๋ฃจ์–ด์ง‘๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์กฐ์ž‘์˜ ํšจ๊ณผ๋Š” ์‚ฌ์šฉ์ž์—๊ฒŒ ์ง์ ‘์ ์œผ๋กœ ๋ณด์ด์ง€ ์•Š์ง€๋งŒ, ์„œ๋ฒ„ ์ธก์—์„œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๊ธฐ๋Šฅ์„ ์ƒ๋‹นํžˆ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ํด๋ผ์ด์–ธํŠธ ์ธก์—์„œ ๊ด€์ฐฐ ๊ฐ€๋Šฅํ•œ ์˜ํ–ฅ์„ ๋ฏธ์น  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

HTTP Parameter Pollution (HPP) ์˜ˆ์‹œ

์€ํ–‰ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฑฐ๋ž˜ URL:

  • ์›๋ณธ URL: https://www.victim.com/send/?from=accountA&to=accountB&amount=10000

์ถ”๊ฐ€ from ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์‚ฝ์ž…ํ•จ์œผ๋กœ์จ:

  • ์กฐ์ž‘๋œ URL: https://www.victim.com/send/?from=accountA&to=accountB&amount=10000&from=accountC

๊ฑฐ๋ž˜๊ฐ€ accountA๊ฐ€ ์•„๋‹Œ accountC์— ์ž˜๋ชป ์ฒญ๊ตฌ๋  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ด๋Š” HPP๊ฐ€ ๊ฑฐ๋ž˜ ๋˜๋Š” ๋น„๋ฐ€๋ฒˆํ˜ธ ์žฌ์„ค์ •, 2FA ์„ค์ •, API ํ‚ค ์š”์ฒญ๊ณผ ๊ฐ™์€ ๋‹ค๋ฅธ ๊ธฐ๋Šฅ์„ ์กฐ์ž‘ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ€๋Šฅ์„ฑ์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

๊ธฐ์ˆ ๋ณ„ ๋งค๊ฐœ๋ณ€์ˆ˜ ํŒŒ์‹ฑ

  • ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ํŒŒ์‹ฑ๋˜๊ณ  ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋งค๊ฒจ์ง€๋Š” ๋ฐฉ์‹์€ ๊ธฐ๋ณธ ์›น ๊ธฐ์ˆ ์— ๋”ฐ๋ผ ๋‹ค๋ฅด๋ฉฐ, HPP๊ฐ€ ์–ด๋–ป๊ฒŒ ์•…์šฉ๋  ์ˆ˜ ์žˆ๋Š”์ง€์— ์˜ํ–ฅ์„ ๋ฏธ์นฉ๋‹ˆ๋‹ค.
  • Wappalyzer์™€ ๊ฐ™์€ ๋„๊ตฌ๋Š” ์ด๋Ÿฌํ•œ ๊ธฐ์ˆ ๊ณผ ๊ทธ ํŒŒ์‹ฑ ๋™์ž‘์„ ์‹๋ณ„ํ•˜๋Š” ๋ฐ ๋„์›€์„ ์ค๋‹ˆ๋‹ค.

PHP์™€ HPP ์•…์šฉ

OTP ์กฐ์ž‘ ์‚ฌ๋ก€:

  • ๋งฅ๋ฝ: ์ผํšŒ์šฉ ๋น„๋ฐ€๋ฒˆํ˜ธ(OTP)๋ฅผ ์š”๊ตฌํ•˜๋Š” ๋กœ๊ทธ์ธ ๋ฉ”์ปค๋‹ˆ์ฆ˜์ด ์•…์šฉ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ๋ฐฉ๋ฒ•: Burp Suite์™€ ๊ฐ™์€ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ OTP ์š”์ฒญ์„ ๊ฐ€๋กœ์ฑ„๊ณ , ๊ณต๊ฒฉ์ž๋Š” HTTP ์š”์ฒญ์—์„œ email ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ๋ณต์ œํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ๊ฒฐ๊ณผ: ์ดˆ๊ธฐ ์ด๋ฉ”์ผ์„ ์œ„ํ•œ OTP๊ฐ€ ์กฐ์ž‘๋œ ์š”์ฒญ์—์„œ ์ง€์ •๋œ ๋‘ ๋ฒˆ์งธ ์ด๋ฉ”์ผ ์ฃผ์†Œ๋กœ ์ „์†ก๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ฒฐํ•จ์€ ์˜๋„๋œ ๋ณด์•ˆ ์กฐ์น˜๋ฅผ ์šฐํšŒํ•˜์—ฌ ๋ฌด๋‹จ ์ ‘๊ทผ์„ ํ—ˆ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค.

์ด ์‹œ๋‚˜๋ฆฌ์˜ค๋Š” OTP ์ƒ์„ฑ์„ ์œ„ํ•ด ์ฒซ ๋ฒˆ์งธ email ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์ฒ˜๋ฆฌํ–ˆ์ง€๋งŒ, ์ „๋‹ฌ์„ ์œ„ํ•ด ๋งˆ์ง€๋ง‰ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋ฐฑ์—”๋“œ์—์„œ์˜ ์ค‘์š”ํ•œ ๊ฐ„๊ณผ๋ฅผ ๊ฐ•์กฐํ•ฉ๋‹ˆ๋‹ค.

API ํ‚ค ์กฐ์ž‘ ์‚ฌ๋ก€:

  • ์‹œ๋‚˜๋ฆฌ์˜ค: ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์‚ฌ์šฉ์ž๊ฐ€ ํ”„๋กœํ•„ ์„ค์ • ํŽ˜์ด์ง€๋ฅผ ํ†ตํ•ด API ํ‚ค๋ฅผ ์—…๋ฐ์ดํŠธํ•  ์ˆ˜ ์žˆ๋„๋ก ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • ๊ณต๊ฒฉ ๋ฒกํ„ฐ: ๊ณต๊ฒฉ์ž๋Š” POST ์š”์ฒญ์— ์ถ”๊ฐ€ api_key ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์ถ”๊ฐ€ํ•จ์œผ๋กœ์จ API ํ‚ค ์—…๋ฐ์ดํŠธ ๊ธฐ๋Šฅ์˜ ๊ฒฐ๊ณผ๋ฅผ ์กฐ์ž‘ํ•  ์ˆ˜ ์žˆ์Œ์„ ๋ฐœ๊ฒฌํ•ฉ๋‹ˆ๋‹ค.
  • ๊ธฐ์ˆ : Burp Suite์™€ ๊ฐ™์€ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ณต๊ฒฉ์ž๋Š” ํ•˜๋‚˜์˜ ํ•ฉ๋ฒ•์ ์ธ api_key ๋งค๊ฐœ๋ณ€์ˆ˜์™€ ํ•˜๋‚˜์˜ ์•…์˜์ ์ธ api_key ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ํฌํ•จํ•˜๋Š” ์š”์ฒญ์„ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค. ์„œ๋ฒ„๋Š” ๋งˆ์ง€๋ง‰ ๋ฐœ์ƒ๋งŒ ์ฒ˜๋ฆฌํ•˜์—ฌ ๊ณต๊ฒฉ์ž๊ฐ€ ์ œ๊ณตํ•œ ๊ฐ’์œผ๋กœ API ํ‚ค๋ฅผ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค.
  • ๊ฒฐ๊ณผ: ๊ณต๊ฒฉ์ž๋Š” ํ”ผํ•ด์ž์˜ API ๊ธฐ๋Šฅ์„ ์ œ์–ดํ•˜๊ฒŒ ๋˜์–ด, ๊ฐœ์ธ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฌด๋‹จ์œผ๋กœ ์ ‘๊ทผํ•˜๊ฑฐ๋‚˜ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ์˜ˆ์‹œ๋Š” API ํ‚ค ๊ด€๋ฆฌ์™€ ๊ฐ™์€ ์ค‘์š”ํ•œ ๊ธฐ๋Šฅ์—์„œ ์•ˆ์ „ํ•œ ๋งค๊ฐœ๋ณ€์ˆ˜ ์ฒ˜๋ฆฌ๊ฐ€ ํ•„์š”ํ•จ์„ ๋”์šฑ ๊ฐ•์กฐํ•ฉ๋‹ˆ๋‹ค.

๋งค๊ฐœ๋ณ€์ˆ˜ ํŒŒ์‹ฑ: Flask vs. PHP

์›น ๊ธฐ์ˆ ์ด ์ค‘๋ณต HTTP ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ์‹์€ ๋‹ค๋ฅด๋ฉฐ, HPP ๊ณต๊ฒฉ์— ๋Œ€ํ•œ ์ทจ์•ฝ์„ฑ์— ์˜ํ–ฅ์„ ๋ฏธ์นฉ๋‹ˆ๋‹ค:

  • Flask: ์ฟผ๋ฆฌ ๋ฌธ์ž์—ด a=1&a=2์—์„œ a=1๊ณผ ๊ฐ™์€ ์ฒซ ๋ฒˆ์งธ ๋งค๊ฐœ๋ณ€์ˆ˜ ๊ฐ’์„ ์ฑ„ํƒํ•˜๋ฉฐ, ์ดˆ๊ธฐ ์ธ์Šคํ„ด์Šค๋ฅผ ํ›„์† ์ค‘๋ณต๋ณด๋‹ค ์šฐ์„ ์‹œํ•ฉ๋‹ˆ๋‹ค.
  • PHP (Apache HTTP Server์—์„œ): ๋ฐ˜๋Œ€๋กœ, ๋งˆ์ง€๋ง‰ ๋งค๊ฐœ๋ณ€์ˆ˜ ๊ฐ’์„ ์šฐ์„ ์‹œํ•˜์—ฌ ์ฃผ์–ด์ง„ ์˜ˆ์—์„œ a=2๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. ์ด ๋™์ž‘์€ ๊ณต๊ฒฉ์ž๊ฐ€ ์กฐ์ž‘ํ•œ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์›๋ณธ๋ณด๋‹ค ์šฐ์„ ์‹œํ•จ์œผ๋กœ์จ HPP ์•…์šฉ์„ ์šฐ์—ฐํžˆ ์ด‰์ง„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ธฐ์ˆ ๋ณ„ ๋งค๊ฐœ๋ณ€์ˆ˜ ์˜ค์—ผ

๊ฒฐ๊ณผ๋Š” https://medium.com/@0xAwali/http-parameter-pollution-in-2024-32ec1b810f89์—์„œ ๊ฐ€์ ธ์™”์Šต๋‹ˆ๋‹ค.

PHP 8.3.11 ๋ฐ Apache 2.4.62

https://miro.medium.com/v2/resize:fit:1100/format:webp/1*l_Pf2JNCYhmfAvfk7UTEbQ.jpeg

  1. ๋งค๊ฐœ๋ณ€์ˆ˜ ์ด๋ฆ„ ๋’ค์˜ %00์„ ๋ฌด์‹œํ•ฉ๋‹ˆ๋‹ค.
  2. name[]๋ฅผ ๋ฐฐ์—ด๋กœ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.
  3. _GET์€ GET ๋ฉ”์„œ๋“œ๋ฅผ ์˜๋ฏธํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  4. ๋งˆ์ง€๋ง‰ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์„ ํ˜ธํ•ฉ๋‹ˆ๋‹ค.

Ruby 3.3.5 ๋ฐ WEBrick 1.8.2

https://miro.medium.com/v2/resize:fit:1100/format:webp/1*kKxtZ8qEmgTIMS81py5hhg.jpeg

  1. & ๋ฐ ; ๊ตฌ๋ถ„์ž๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ๋ถ„๋ฆฌํ•ฉ๋‹ˆ๋‹ค.
  2. name[]๋ฅผ ์ธ์‹ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  3. ์ฒซ ๋ฒˆ์งธ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์„ ํ˜ธํ•ฉ๋‹ˆ๋‹ค.

Spring MVC 6.0.23 ๋ฐ Apache Tomcat 10.1.30

https://miro.medium.com/v2/resize:fit:1100/format:webp/1*llG22MF1gPTYZYFVCmCiVw.jpeg

  1. POST RequestMapping == PostMapping & GET RequestMapping == GetMapping.
  2. POST RequestMapping & PostMapping์—์„œ name[]๋ฅผ ์ธ์‹ํ•ฉ๋‹ˆ๋‹ค.
  3. name๊ณผ name[]๊ฐ€ ๋ชจ๋‘ ์กด์žฌํ•  ๊ฒฝ์šฐ name์„ ์„ ํ˜ธํ•ฉ๋‹ˆ๋‹ค.
  4. ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ: first,last.
  5. POST RequestMapping & PostMapping์—์„œ Content-Type๊ณผ ํ•จ๊ป˜ ์ฟผ๋ฆฌ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์ธ์‹ํ•ฉ๋‹ˆ๋‹ค.

NodeJS 20.17.0 ๋ฐ Express 4.21.0

https://miro.medium.com/v2/resize:fit:1100/format:webp/1*JzNkLOSW7orcHXswtMHGMA.jpeg

  1. name[]๋ฅผ ์ธ์‹ํ•ฉ๋‹ˆ๋‹ค.
  2. ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ: first,last.

GO 1.22.7

https://miro.medium.com/v2/resize:fit:1100/format:webp/1*NVvN1N8sL4g_Gi796FzlZA.jpeg

  1. name[]๋ฅผ ์ธ์‹ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  2. ์ฒซ ๋ฒˆ์งธ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์„ ํ˜ธํ•ฉ๋‹ˆ๋‹ค.

Python 3.12.6 ๋ฐ Werkzeug 3.0.4 ๋ฐ Flask 3.0.3

https://miro.medium.com/v2/resize:fit:1100/format:webp/1*Se5467PFFjIlmT3O7KNlWQ.jpeg

  1. name[]๋ฅผ ์ธ์‹ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  2. ์ฒซ ๋ฒˆ์งธ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์„ ํ˜ธํ•ฉ๋‹ˆ๋‹ค.

Python 3.12.6 ๋ฐ Django 4.2.15

https://miro.medium.com/v2/resize:fit:1100/format:webp/1*rf38VXut5YhAx0ZhUzgT8Q.jpeg

  1. name[]๋ฅผ ์ธ์‹ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  2. ๋งˆ์ง€๋ง‰ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์„ ํ˜ธํ•ฉ๋‹ˆ๋‹ค.

Python 3.12.6 ๋ฐ Tornado 6.4.1

https://miro.medium.com/v2/resize:fit:1100/format:webp/1*obCn7xahDc296JZccXM2qQ.jpeg

  1. name[]๋ฅผ ์ธ์‹ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  2. ๋งˆ์ง€๋ง‰ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์„ ํ˜ธํ•ฉ๋‹ˆ๋‹ค.

JSON Injection

์ค‘๋ณต ํ‚ค

obj = {"test": "user", "test": "admin"}

ํ”„๋ก ํŠธ์—”๋“œ๋Š” ์ฒซ ๋ฒˆ์งธ ๋ฐœ์ƒ์„ ๋ฏฟ์„ ์ˆ˜ ์žˆ์ง€๋งŒ ๋ฐฑ์—”๋“œ๋Š” ๋‘ ๋ฒˆ์งธ ๋ฐœ์ƒ์˜ ํ‚ค๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ‚ค ์ถฉ๋Œ: ๋ฌธ์ž ์ž˜๋ฆผ ๋ฐ ์ฃผ์„

ํŠน์ • ๋ฌธ์ž๋Š” ํ”„๋ก ํŠธ์—”๋“œ์—์„œ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ํ•ด์„๋˜์ง€ ์•Š์ง€๋งŒ ๋ฐฑ์—”๋“œ๋Š” ์ด๋ฅผ ํ•ด์„ํ•˜๊ณ  ํ•ด๋‹น ํ‚ค๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ํŠน์ • ์ œํ•œ์„ ์šฐํšŒํ•˜๋Š” ๋ฐ ์œ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

{"test": 1, "test\[raw \x0d byte]": 2}
{"test": 1, "test\ud800": 2}
{"test": 1, "test"": 2}
{"test": 1, "te\st": 2}

์ด ๊ฒฝ์šฐ ํ”„๋ก ํŠธ ์—”๋“œ๋Š” test == 1์ด๋ผ๊ณ  ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ๊ณ  ๋ฐฑ์—”๋“œ๋Š” test == 2๋ผ๊ณ  ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฐ’ ์ œํ•œ์„ ์šฐํšŒํ•˜๋Š” ๋ฐ์—๋„ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

{"role": "administrator\[raw \x0d byte]"}
{"role":"administrator\ud800"}
{"role": "administrator""}
{"role": "admini\strator"}

์ฃผ์„ ์ž˜๋ผ๋‚ด๊ธฐ ์‚ฌ์šฉ

obj = {"description": "Duplicate with comments", "test": 2, "extra": /*, "test": 1, "extra2": */}

์—ฌ๊ธฐ์—์„œ๋Š” ๊ฐ ํŒŒ์„œ์˜ ์ง๋ ฌ ๋ณ€ํ™˜๊ธฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ•ด๋‹น ์ถœ๋ ฅ์„ ๋ณผ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

Serializer 1 (์˜ˆ: GoLang์˜ GoJay ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ)์€ ๋‹ค์Œ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค:

  • description = "Duplicate with comments"
  • test = 2
  • extra = ""

Serializer 2 (์˜ˆ: Java์˜ JSON-iterator ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ)์€ ๋‹ค์Œ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค:

  • description = "Duplicate with comments"
  • extra = "/*"
  • extra2 = "*/"
  • test = 1

๋˜๋Š”, ์ฃผ์„์„ ๊ฐ„๋‹จํ•˜๊ฒŒ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๋„ ํšจ๊ณผ์ ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

obj = {"description": "Comment support", "test": 1, "extra": "a"/*, "test": 2, "extra2": "b"*/}

Java์˜ GSON ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ:

{ "description": "Comment support", "test": 1, "extra": "a" }

๋ฃจ๋น„์˜ simdjson ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ:

{ "description": "Comment support", "test": 2, "extra": "a", "extra2": "b" }

์ผ๊ด€๋˜์ง€ ์•Š์€ ์šฐ์„ ์ˆœ์œ„: ์—ญ์ง๋ ฌํ™” ๋Œ€ ์ง๋ ฌํ™”

obj = {"test": 1, "test": 2}

obj["test"] // 1
obj.toString() // {"test": 2}

Float and Integer

์ˆซ์ž

999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999

์—ฌ๋Ÿฌ ํ‘œํ˜„์œผ๋กœ ๋””์ฝ”๋”ฉ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ์„ ํฌํ•จํ•˜์—ฌ:

999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
9.999999999999999e95
1E+96
0
9223372036854775807

์–ด๋–ค ๊ฒƒ์ด ๋ถˆ์ผ์น˜๋ฅผ ์ดˆ๋ž˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค

References

Tip

AWS ํ•ดํ‚น ๋ฐฐ์šฐ๊ธฐ ๋ฐ ์—ฐ์Šตํ•˜๊ธฐ:HackTricks Training AWS Red Team Expert (ARTE)
GCP ํ•ดํ‚น ๋ฐฐ์šฐ๊ธฐ ๋ฐ ์—ฐ์Šตํ•˜๊ธฐ: HackTricks Training GCP Red Team Expert (GRTE) Azure ํ•ดํ‚น ๋ฐฐ์šฐ๊ธฐ ๋ฐ ์—ฐ์Šตํ•˜๊ธฐ: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks ์ง€์›ํ•˜๊ธฐ