Hacking/Wargame

Wargame ) Type Confusion

proggg 2020. 7. 9. 16:15
728x90

๊ฐ„๋‹จํ•œ Compare ์— ๊ด€ํ•œ ์ทจ์•ฝ์ ์œผ๋กœ ๋ณด์—ฌ์ง„๋‹ค. 

 

ํŽ˜์ด์ง€ ์ž์ฒด๋Š” ๋ณผ ํ’ˆ ์—†๋‹ค. ์†Œ์Šค๋ฅผ ์‚ดํŽด๋ณด์ž.

php ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉฐ, ์ž…๋ ฅ๋ฐ›์€ ๊ฐ’์„ key ๋กœ ์‚ฌ์šฉํ•˜๊ณ  json ํ˜•ํƒœ๋กœ ์„œ๋ฒ„์— ์ „์†กํ•˜๋Š” ๊ฒƒ์œผ๋กœ ๋ณด์—ฌ์ง„๋‹ค. ๊ทธ๋ฆฌ๊ณ  submit_check ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ž…๋ ฅ๊ฐ’ ๊ฒ€์ฆ๋„ ํ•˜๋Š” ๊ฒƒ ์ฒ˜๋Ÿผ ๋ณด์—ฌ์ง„๋‹ค.

์ด ๋ถ€๋ถ„์„ ๋ณด๋ฉด, POST ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ „์†ก ๋œ json ํ˜•ํƒœ์˜ ๊ฐ’์„ ๊ฐ€์ ธ์˜จ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์„œ๋ฒ„์—์„œ ์ƒ์„ฑํ•œ key ๊ฐ’๊ณผ ์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅ์— ๋ณด๋‚ธ ๊ฐ’์„ '==' ๋™๋“ฑ์—ฐ์‚ฐ์ž๋ฅผ ์ด์šฉํ•˜์—ฌ ๋น„๊ตํ•œ๋‹ค. ๋น„๊ต์™€ ๊ด€๋ จ ๋œ ์ฝ”๋“œ๋ฅผ ์‚ดํŽด๋ณด์•„์•ผ๊ฒ ๋‹ค. 

์„œ๋ฒ„์—์„œ ๊ฐ€์ ธ์˜จ js ์—์„œ๋Š” submit๊ณผ submit_check ํ•จ์ˆ˜๊ฐ€ ์กด์žฌํ•œ๋‹ค. submit ํ•จ์ˆ˜์—์„œ๋Š” submit_check ์—์„œ ๊ฒ€์ฆํ•œ ์ž…๋ ฅ๊ฐ’์„ ์ธ์ž๋กœ ์‚ฌ์šฉํ•˜๋Š”๋ฐ ์ด ์‚ฌ์ด์—์„œ ๋ฐœ์ƒ๊ฐ€๋Šฅํ•œ ์ทจ์•ฝ์ ์ด๋‹ค. submit_check ์—์„œ submit ์œผ๋กœ ๋„˜๊ธฐ๋Š” ์ค‘์— ๋ฐ์ดํ„ฐ์˜ ๋ณ€์กฐ (key = true ; )๊ฐ€ ์ผ์–ด๋‚œ๋‹ค๋ฉด ์ž…๋ ฅ๊ฐ’์„ ํ•œ๋ฒˆ๋” ๊ฒ€์ฆํ•˜์ง€ ์•Š๋Š” submit ํ•จ์ˆ˜์—์„œ๋Š” ๊ทธ๋Œ€๋กœ true ๊ฐ’์œผ๋กœ ์ธ์‹ํ•  ๊ฒƒ ์ด๊ณ , ํ”Œ๋ž˜๊ทธ๋ฅผ ๋„˜๊ฒจ์ค„ ๊ฒƒ์ด๋‹ค.

 

ํ•ด๋‹น ํ•จ์ˆ˜๋“ค์„ ๋ชจ๋‘ ๋ณต์‚ฌํ•˜์—ฌ, ์ฝ˜์†”์—์„œ ์žฌ ์ •์˜ ํ•˜๋„๋ก ํ•˜๊ฒ ๋‹ค.

์‚ฌ์‹ค ์ด๋Ÿฐ์‹์œผ๋กœ ํ•จ์ˆ˜๋ฅผ ์žฌ ์ •์˜ ํ•  ์ˆ˜ ์žˆ๋Š”์ง€๋Š” ๋ชฐ๋ž๋‹ค. ๋ฌผ๋ก  submit ์€ ์„œ๋ฒ„์™€ ํ†ต์‹ ํ•˜๋Š” ๋ถ€๋ถ„์ด์ง€๋งŒ submit_check ๋Š” ๋กœ์ปฌ์—์„œ ๊ฐ€์ ธ์˜จ ๊ฐ’์„ ์ด์šฉํ•˜๋Š” ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— submit_check ์—์„œ key ๊ฐ’์„ ์ „์†ก์ „์— true ๋กœ ๋ฐ”๊พธ์–ด์ค€๋‹ค. 

 

์ด๋ ‡๊ฒŒ ํ•œ๋‹ค๋ฉด , ์–ด๋–ค ๊ฐ’์„ ์ž…๋ ฅ์ฐฝ์— ์ž…๋ ฅํ•ด๋„ ์„œ๋ฒ„์— ์ „์†ก ์ง์ „์— true ๋กœ ๋ฐ”๊พธ์–ด ๋ฒ„๋ฆฌ๊ธฐ ๋•Œ๋ฌธ์— ์„œ๋ฒ„์—์„œ๋Š” ํ•ญ์ƒ true ๊ฐ’๋งŒ์„ ๋ฐ›๊ฒŒ ๋œ๋‹ค.

 

ํ’€๊ธดํ–ˆ์ง€๋งŒ ์‚ฌ์‹ค type confusion ์ด๋ผ๊ธฐ ๋ณด๋‹ค, input validation ์ทจ์•ฝ์ ์„ ์ด์šฉํ–ˆ๋‹ค๊ณ  ํ•  ์ˆ˜๋„ ์žˆ๊ฒ ๋‹ค. ์ด๋Ÿฌํ•œ ์ข…๋ฅ˜์˜ type confusion ๋ฌธ์ œ๋ฅผ webgoat 8.0 ์—์„œ ํ’€์–ด๋ณธ์ ์ด ์žˆ๋‹ค. XXE(XML Externel Entity ) ์—์„œ Modern REST framework ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด JSON ๊ฐ์ฒด๋ฅผ ๋ฐ›์•„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ถ€๋ถ„์ด XXE ๊ณต๊ฒฉ์— ์ทจ์•ฝํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์ด์—ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด Json ๊ฐ์ฒด๋ฅผ ์ด์šฉํ•˜๋ คํ–ˆ๋˜ ์„œ๋ฒ„์—์„œ XML ๊ฐ์ฒด๋ฅผ ๋ณด๋‚ด๋„ ์ž‘๋™์„ ํ•œ๋‹ค๋Š” ๊ฒƒ์ด์—ˆ๋‹ค.  ๋ญ ์–ด์จŒ๋“  type confusion ์˜ ์˜๋ฏธ๋ฅผ ๋‹ค ์‚ด๋ฆฌ์ง€ ๋ชปํ•œ ํ’€์ด์—ˆ๋˜๊ฒƒ ๊ฐ™๋‹ค.

728x90

'Hacking > Wargame' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

Wargame ) EASY_Crackme  (0) 2020.07.12
Wargame ) Web Chatting  (0) 2020.07.11
Wargame ) tmitter  (0) 2020.07.09
Wargame ) Fly me to the moon  (0) 2020.07.07
Wargame ) MD5 Compare  (0) 2020.07.06