Jastes 2022. 6. 20. 12:29


Funjs

๋ฌธ์ œํ’€์ด

 

๋ฌธ์ œ์˜ ์‚ฌ์ดํŠธ

๋ฌธ์ œ๋ฅผ ๋ฐ›์œผ๋ฉด ์ €๋Ÿฐ flag ๋„ฃ์œผ์„ธ์š” ํ•˜๋Š”๊ฒŒ ์ •์‹ ์—†์ด ๋‚ ๋ผ๋‹ค๋‹ˆ๋Š”๋ฐ..
๋ณด์‹œ๋ฉด

 ์ƒํ™ฉ์ด ์ €๋ ‡๊ฒŒ ๋˜์–ด์žˆ์ฃ  ์†”์งํžˆ flag ์ฐพ๋Š”๋ฐ ์ € ์›€์ง์ด๋Š”๊ฑฐ ๋ฌด์‹œํ•˜์…”๋„ ์ƒ๊ด€์—†๊ณ ,
๋‚ด๋ถ€ ์ฝ”๋“œ๋ฅผ ๋ณด์‹œ๋ฉด debugger? ๊ทธ ์ฝ”๋“œ ๋•๋ถ„์— ์–ด์งœํ”ผ ์ •์ง€๋˜๊ธฐ๋„ ํ•˜๊ณ ..
๊ทธ๋ž˜๋„ ๊ทธ๊ฑฐ ์ง€์šฐ๊ณ  ์—†์• ๊ณ  ์‹ถ์œผ๋ฉด.. ์•„๋ž˜ ์ฝ”๋“œ๋งŒ ์ฃผ์„์ด๋‚˜ ์ง€์›Œ๋ฒ„๋ ค๋„ ๋ ๊ฑฐ์˜ˆ์š”

์›€์ง์ด๋Š” ์ฝ”๋“œ(์กด์žฌ ์—ฌ๋ถ€ ์ƒ๊ด€์—†๊ธด ํ•จ)

๊ทผ๋ฐ ์ „ ๋”ฑํžˆ ์ €๊ฑฐ ์‹ ๊ฒฝ ์•ˆ ์“ฐ๊ณ  ํ–ˆ์–ด์š”.. ์•„ ์ฐธ๊ณ ๋กœ ์ € debugger๋„ ์ง€์› ๋Š”๋ฐ
์ €๋ž‘ ์™„์ „ํžˆ ๋˜‘๊ฐ™ํžˆ ํ•˜๊ณ  ์‹ถ์œผ๋ฉด ์ง€์šฐ์‹œ๊ณ  ์ €๊ฑฐ ๋‚จ๊ฒจ๋‘๊ณ  ํ•˜์…”๋„ ์ง€์žฅ ์—†์–ด์š”.

์ž ๊ทธ๋Ÿผ ๋ณธ๊ฒฉ์ ์œผ๋กœ ์ฝ”๋“œ์— ๋Œ€ํ•˜์—ฌ ๋ถ„์„ํ•ด๋ด…์‹œ๋‹ค..(์•ฝ๊ฐ„ ์›น ๋ฆฌ๋ฒ„์‹ฑ ๋Š๋‚Œ??)

ํ•ต์‹ฌ ์ฝ”๋“œ(flag๋ฅผ ์ง์ ‘๋Œ€๋ฉด์„œ ํ™•์ธํ•จ)

ํ•ต์‹ฌ ์ฝ”๋“œ๋Š” ์œ„์— ์ € ๋‘๊ฒŒ์˜ ์กฐ๊ฑด์‹์ž…๋‹ˆ๋‹ค. ๋ณด์‹œ๋ฉด text2img์— ์žˆ์–ด์„œ
๊ฐ’์„ ๋„ฃ๊ณ  ๋ฐ˜ํ™˜ํ•ด flag๋ฅผ ๋„์ถœํ•˜๋Š”๋ฐ ํ•ต์‹ฌ์ ์œผ๋กœ text2img๋Š” UI์— ๊ฐ€๊น๊ธฐ์— ๊ตณ์ด ์•ˆ ๋ณด์…”๋„ ๋ ๊ฑฐ ๊ฐ™๊ณ ,
ํ•ต์‹ฌ์€ ์กฐ๊ฑด์‹๊ณผ ๋ฐ˜๋ณต๋ฌธ ๋ฐ‘์— ์กฐ๊ฑด๋ฌธ์ด ๊ฐ€์žฅ ํฐ ํ•ต์‹ฌ์ด์ฃ  ์ € ๋กœ์ง์„ ํ†ตํ•ด flag์— ๋Œ€ํ•œ ๊ฐ’๊ณผ ๋น„๊ตํ•ด ์–ป์œผ๋‹ˆ๊นŒ์š”


ํ•ต์‹ฌ ์ฝ”๋“œ์˜ ๋ถ„์„

์ € flag์˜ document์— ๋Œ€ํ•˜์—ฌ ์ ‘๊ทผํ•ฉ์‹œ๋‹ค


๋ณด์‹œ๋ฉด.. ์ด๋ฏธ์ง€๊ฐ€ ๋„ˆ๋ฌด ์ž‘์•„์ง€๋„ค์š”;; ์จ‹๋“ 
ํ•ด๋‹น ๋กœ์ง์œผ๋กœ ์ ‘๊ทผํ•˜๋ฉด

var flag = document[_0x374fd6(0x183)](_0x374fd6(0x182))['value']

์œ„์— ์ฝ”๋“œ๊ฐ€ ํ•ต์‹ฌ์ด์ฃ 
ํ•ด๋‹น _0x374fd6์œผ๋กœ ์ ‘๊ทผํ•˜๋ฉด ...


์œ„์™€ ๊ฐ™์€ ๋กœ์ง์ด ๋‚˜์˜ค๋Š”๋ฐ ๋ฐ‘์— return์œผ๋กœ ๊ฐ€๊ฐ๊ณผ ๊ณฑ, or ๋“ฑ์— ์žˆ์–ด์„œ ๋ณต์žกํ•˜๊ฒŒ ๋ฐ”๊พธ๊ณ 
์ด๊ฒŒ ๋˜ ๊ทธ๋ ‡๋‹ค๊ณ  ๋‚œ์ˆ˜ํ™”๋‚˜ ์•”ํ˜ธํ™”๋ผ๊ณ  ํ•˜๊ธด.. ๋„ˆ๋ฌด ๊ธˆ๋ฐฉ ๋ถ„์„์ด ๋˜์ง€๋งŒ.. ์ €ํฌ๋Š” ์•Œ๊ธฐ ํž˜๋“œ๋‹ˆ๊นŒ

0x24(36)์ด๋ž‘ ๊ฐ™์„ ๋•Œ๊นŒ์ง€ ์กฐ๊ฑด์‹์œผ๋กœ ํ•˜๋Š” ๋ชจ์–‘์ด๋„ค์š”.(์ฆ‰, ๋ฐ˜๋ณต๋„ ๊ทธ๋ ‡๊ฒŒ๊นŒ์ง€..)
์—ฌ๊ธฐ์„œ flag[_0x374fd6(0x17c)]์˜ ์ด ๋ถ€๋ถ„์— ๋Œ€ํ•˜์—ฌ ์ •์˜ํ•˜๋Š” ๋ถ€๋ถ„์„ ๋“ค์–ด๊ฐ€๋ด…์‹œ๋‹ค


40๋ฒˆ์งธ ์ค„์—์„œ ํ•ด๋‹น ๋กœ์ง์„ ๋‹ค์‹œ ๋‹ค๋ฅธ ๋ช…์นญ์— ์žˆ๋Š” ๋‚ด์šฉ์˜ ์ •์˜๋กœ ์˜ฎ๊ธฐ๋„ค์š”
๊ทธ๋Ÿฌํ•˜๋ฉด _0x376c์˜ ๋‚ด์šฉ์€ 35-39๋ฒˆ์งธ ์ค„์—์„œ ํ•ด๋‹น ํ•จ์ˆ˜์— ๋Œ€ํ•œ ๋‚ด์šฉ์„ ์ •์˜ํ•˜๋ฉฐ, 34๋ฒˆ์งธ ์ค„์˜ ๋‚ด์šฉ์—
๋ฆฌ์ŠคํŠธ๋ฅผ ํ™œ์šฉํ•ด 0x175๋งŒํผ ๋นผ๊ณ  ํ•˜๋Š” ๋ชจ์–‘์ด๊ฒ ๋„ค์š” ๊ทธ๋Ÿผ ํ•ด๋‹น ๋กœ์ง์— ๋Œ€ํ•œ ๋ชจ๋“  ๋‚ด์šฉ์ด ์–ด๋Š์ •๋„ ์ •๋ฆฌ!


๋งˆ๋ฌด๋ฆฌ

์ด ์ฝ”๋“œ๋ฅผ ํ†ตํ•ด Flag๋ฅผ ํƒ์ƒ‰ ๊ฐ€๋Šฅ

์ €ํฌ๋Š” ์ด ๋‚ด์šฉ์˜ ๋ฐ˜๋ณต๋ฌธ๊ณผ ์กฐ๊ฑด์‹์— ๋Œ€ํ•œ ๋‚ด์šฉ์„ ๊ทธ๋Œ€๋กœ ํ™•์ธ์„ ํ•˜๋ฉด flag๊ฐ€ ์ถ”์ถœ๋˜๊ฒ ๋„ค์š”
์•„๋ž˜ ๋ช…์นญ๋“ค์€ ํ•จ์ˆ˜์™€ ๋ณ€์ˆ˜๋ช…์œผ๋กœ ๋‹ค ํ™•์ธํ–ˆ์—ˆ์ฃ  ๊ทธ๋Ÿฌ๋ฏ€๋กœ console์—์„œ ์‹คํ–‰ํ•˜์—ฌ ๋ถ„์„ํ•  ๊ฒƒ์ด๋ฏ€๋กœ..
console๊ณผ ํ•ด๋‹น Source๊ฐ„์˜ ๋‚ด์šฉ์€ ์ผ๋ถ€๋ถ„์€ ๊ณต์œ ๊ฐ€ ๋˜์–ด ์žˆ์ง€ ์•Š์œผ๋ฏ€๋กœ ์ •์˜ํ•ด์„œ ๋„ฃ์–ด์ค˜์•ผํ•ด์š” ใ… 

์ด๋Ÿฐ์‹์œผ๋กœ ๋‹ค ์ •์˜๊ฐ€ ๋๋‚ฌ๋‹ค๋ฉด.. ์ด์ œ flag๋ฅผ ์ฐพ์„ ์ฝ”๋“œ๋ฅผ ๋„ฃ์–ด์ค˜์•ผ๊ฒ ์ฃ 

1
2
3
4
let result=''; 
for (let i = 0x0; i < 0x24; i++){  
    result+=String.fromCharCode(operator[i % operator[_0x374fd6(0x17c)]](_0x4949[i], _0x42931[i]));
}
cs

ํ•ด๋‹น ์ฝ”๋“œ๋ฅผ ๋ณด์‹œ๋ฉด result๋ผ๋Š” ๋นˆ ๋ฌธ์ž์—ด์„ ์ง€์ •ํ•ด์ฃผ๊ณ  ํ•ด๋‹น ํ•จ์ˆ˜๋Š” ์•„๊นŒ 0x24๋ž‘ ๊ฐ™์„ ๋•Œ๊นŒ์ง€
๋ฐ˜๋ณตํ•˜๋ฏ€๋กœ ์กฐ๊ฑด์„ ํ•ด์ฃผ๋ฉฐ ํ•ด๋‹น flag๋ฅผ ํƒ์ƒ‰ํ•  ์ฝ”๋“œ์˜ ๋กœ์ง์„ ๋ณต์‚ฌํ•˜์—ฌ...

result์— ์ถ”๊ฐ€๋ฅผ ํ•ด์ค๋‹ˆ๋‹ค.. ์–ด๋–ป๊ฒŒ? String์ด๋ผ๋Š” libc ์‚ฌ์šฉํ•ด ๊ฐ–๊ณ  ์˜ค๋Š”๊ฒ๋‹ˆ๋‹ค
ํ•ด๋‹น ๋‚ด์šฉ์„ fromCharCode(์ด๊ฑฐ ๊ทธ๋ƒฅ ํ•˜๋‹ค๋ณด๋ฉด ์ž๋™์™„์„ฑ.. ํ ..)ํ•ด์„œ ํ•ด๋‹น ๋กœ์ง์„ ๋„ฃ์–ด์ฃผ๋ฉด..

'DH{cfd4a77a013ea616d3d5cc0ddf87c1ea}'


์ฐธ๊ณ  ์ž๋ฃŒ

 

funjs

Description ์ž…๋ ฅ ํผ์— ๋ฐ์ดํ„ฐ๋ฅผ ์ž…๋ ฅํ•˜์—ฌ ๋งž์œผ๋ฉด ํ”Œ๋ž˜๊ทธ, ํ‹€๋ฆฌ๋ฉด NOP !์„ ์ถœ๋ ฅํ•˜๋Š” HTML ํŽ˜์ด์ง€์ž…๋‹ˆ๋‹ค. main ํ•จ์ˆ˜๋ฅผ ๋ถ„์„ํ•˜์—ฌ ์˜ฌ๋ฐ”๋ฅธ ์ž…๋ ฅ ๊ฐ’์„ ์ฐพ์•„๋ณด์„ธ์š” !

dreamhack.io

์ฐธ๊ณ  ์ด๋ฏธ์ง€