Sploitus

Exploit for NotEnough

kitploit ยท 2026-08-25

Exploit Code

MARKDOWN42 lines
## https://sploitus.com/exploit?id=KITPLOIT:TOOLS-GITHUB-CAOWEIQUAN322-NOTENOUGH
# ํ—ˆํ”„๋งŒ ํ…Œ์ด๋ธ” ํ•ดํ‚น ๋„๊ตฌ

์ด ๋„๊ตฌ๋Š” ์ทจ์•ฝํ•œ libwebp ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ(์˜ˆ: libwebp <= `1.3.1`)์— ๋Œ€ํ•ด OOB(Out Of Band) ์“ฐ๊ธฐ๋ฅผ ํŠธ๋ฆฌ๊ฑฐํ•  ์ˆ˜ ์žˆ๋Š” ๊นŒ๋‹ค๋กœ์šด ํ‘œ์ค€ ํ—ˆํ”„๋งŒ ํžˆ์Šคํ† ๊ทธ๋žจ์„ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค. ์ด ์ทจ์•ฝ์„ฑ์€ `CVE-2023-4863` ๋˜๋Š” `CVE-2023-41064`๋กœ ์•Œ๋ ค์ ธ ์žˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ์ „ ํ• ๋‹น๋œ ํ—ˆํ”„๋งŒ ํ…Œ์ด๋ธ”์„ ์ตœ๋Œ€ **132๊ฐœ ํ•ญ๋ชฉ** ๊นŒ์ง€ ์˜ค๋ฒ„ํ”Œ๋กœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ ์ด์œ ๋Š” libwebp๊ฐ€ ๊ฐ webp ์ด๋ฏธ์ง€์— ํฌํ•จ๋œ ํ—ˆํ”„๋งŒ ํžˆ์Šคํ† ๊ทธ๋žจ์ด ์ž˜ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ์ฆ‰, ๋””์ฝ”๋”ฉ ํŠธ๋ฆฌ๋Š” **์™„์ „ํ•œ ํŠธ๋ฆฌ** ์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ฐ€์ • ํ•˜์— libwebp ๊ทธ๋ฃน์€ enough ๋„๊ตฌ๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๋””์ฝ”๋”ฉ ํ—ˆํ”„๋งŒ ํ…Œ์ด๋ธ”(ํ‘œ์ค€ ํ—ˆํ”„๋งŒ ์ฝ”๋“œ๋ฅผ ๋น ๋ฅด๊ฒŒ ๋””์ฝ”๋”ฉํ•˜๊ธฐ ์œ„ํ•œ ๊ฐ•๋ ฅํ•œ ๊ตฌ์กฐ)์„ ๊ตฌ์ถ•ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ์ตœ๋Œ€ ๋ฉ”๋ชจ๋ฆฌ ํฌ๊ธฐ๋ฅผ ์ถ”์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ํ•ด์ปค๋Š” **๋ถˆ์™„์ „ํ•œ** ํŠธ๋ฆฌ๋ฅผ ๊ตฌ์„ฑํ•˜์—ฌ ์ด ๋ฉ”๋ชจ๋ฆฌ ์ œํ•œ์„ ์ดˆ๊ณผํ•˜๊ณ  ์‚ฌ์ „ ํ• ๋‹น๋œ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์˜ค๋ฒ„ํ”Œ๋กœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ํ•ดํ‚น ๋„๊ตฌ๋Š” ๋ถˆ์™„์ „ํ•œ ํŠธ๋ฆฌ ์ง€์›์„ ์œ„ํ•ด enough๋ฅผ ์กฐ์ •ํ•˜์—ฌ ๋งŒ๋“ค์–ด์กŒ์Šต๋‹ˆ๋‹ค.

์•„๋ž˜ ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ฝ”๋“œ๋ฅผ ์ปดํŒŒ์ผํ•˜์„ธ์š”:

root@kitploit:~
    
    
    gcc -o NotEnough ./main.c
    

40๊ฐœ ์‹ฌ๋ณผ, 8๋น„ํŠธ ๋ฃจํŠธ ํ…Œ์ด๋ธ”, ์ตœ๋Œ€ ๊นŠ์ด 15์ธ ํ—ˆํ”„๋งŒ ํ…Œ์ด๋ธ”์˜ ๊ฒฝ์šฐ ์ตœ๋Œ€ ํ…Œ์ด๋ธ” ํ•ญ๋ชฉ ์ˆ˜๋Š” `410`์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋ถˆ์™„์ „ํ•œ ํŠธ๋ฆฌ๋ฅผ ๊ตฌ์„ฑํ•˜๋ฉด ํ…Œ์ด๋ธ” ํ•ญ๋ชฉ ์ˆ˜๊ฐ€ `542`๊ฐ€ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์•„๋ž˜ ๋ช…๋ น์–ด๋ฅผ ์‹œ๋„ํ•ด๋ณด์„ธ์š”:

root@kitploit:~
    
    
    ./NotEnough 40 8 15
    

์ด๋Ÿฌํ•œ ํŠธ๋ฆฌ์˜ ์˜ˆ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค:

![๋‚˜์œ ํŠธ๋ฆฌ](https://raw.githubusercontent.com/caoweiquan322/notenough/HEAD/img/graphviz-40-542-tree.svg)

๊ฐ„๊ฒฐํ•จ์„ ์œ„ํ•ด ์žŽ์ด ์—†๋Š” ๊ฐ€์ง€๋Š” ์ œ๊ฑฐํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฐ ๋‹ค์Œ craft ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ **dwebp** ๋„๊ตฌ(๋ฒ„์ „ <= `1.3.1`)๋ฅผ ์˜ค๋ฒ„ํ”Œ๋กœํ•  ์ˆ˜ ์žˆ๋Š” ํšจ๊ณผ์ ์ธ webp ์ด๋ฏธ์ง€๋ฅผ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ์— ๋”ฐ๋ผ ํ—ˆํ”„๋งŒ ์ฝ”๋“œ ํžˆ์Šคํ† ๊ทธ๋žจ **code_lengths_counts[4]**๋ฅผ {0, 1, 0, 0, 0, 0, 0, 0, 0, 3, 5, 9, 17, 1, 1, 3}์œผ๋กœ ๋ณ€๊ฒฝํ•˜๊ณ  ๋„๊ตฌ๋ฅผ ๋‹ค์‹œ ๋นŒ๋“œํ•˜์„ธ์š”:

root@kitploit:~
    
    
    vim craft.c    # ๊ทธ์— ๋”ฐ๋ผ ํ—ˆํ”„๋งŒ ์ฝ”๋“œ ํžˆ์Šคํ† ๊ทธ๋žจ ๋ณ€๊ฒฝ (์•ฝ 495๋ฒˆ์งธ ์ค„)
    gcc -o craft craft.c
    ./craft -o bad_542.webp
    

`CVE-2023-4863`์— ๋Œ€ํ•œ ๋” ๋‚˜์€ ์ดํ•ด๋ฅผ ์œ„ํ•ด @benhawkes์˜ ๋ธ”๋กœ๊ทธ๋ฅผ ํ™•์ธํ•˜์„ธ์š”.