ํ‹ฐ์Šคํ† ๋ฆฌ ๋ทฐ

18๋ฒˆ์งธ ๋ฌธ์ œ์ธ "nightmare"์ž…๋‹ˆ๋‹ค.

 

if(preg_match('/prob|_|\.|\(\)|#|-/i', $_GET[pw])) exit("No Hack ~_~"); 
if(strlen($_GET[pw])>6) exit("No Hack ~_~");

"pw" ๋ณ€์ˆ˜์—๋Š” _ . () # - ๊ฐ™์€ ๊ธฐํ˜ธ๋“ค์„ ๊ฒ€์ฆํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค

๋˜ํ•œ GET [pw]>6์ฒ˜๋Ÿผ ์ž…๋ ฅ๊ฐ’ ๊ธธ์ด๋ฅผ ๊ฒ€์ฆํ•˜๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— 6๊ธ€์ž๋ฅผ ๋„˜์–ด๊ฐ€๋ฉด No Hack์ด๋ผ๋Š” ํŽ˜์ด์ง€๋กœ ๋„˜๊ธฐ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

 

๋ฌธ์ œ

1. ์šฐ์„  ์ž…๋ ฅ๊ฐ’ ๊ธธ์ด ์ œํ•œ์„ ๋งž์ถฐ์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ธฐ๋ณธ์ ์ธ "์ฐธ๊ตฌ๋ฌธ์ธ or 1=1 ์€ ๋ถˆ๊ฐ€๋Šฅํ•  ๊ฒƒ์œผ๋กœ ๋ณด์ž…๋‹ˆ๋‹ค
๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด์„  if($result['id']) solve("nightmare"); ์ฒ˜๋Ÿผ admin ์ด ์•„๋‹Œ ์•„๋ฌด๋Ÿฐ ๊ณ„์ •์œผ๋กœ ์ ‘๊ทผ๋งŒ ํ•˜๋ฉด ํ†ต๊ณผ์ž…๋‹ˆ๋‹ค.

2.admin 
์ผ ํ•„์š”์—†์œผ๋‹ˆ ์ž…๋ ฅ๋œ pw ๊ฐ’ ์ด์™ธ์— ์ฟผ๋ฆฌ๋ฌธ์„ ์‹คํ–‰๋˜์ง€ ์•Š๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•ด --%20 ๊ณผ # ์ด์™ธ ๋ฐฉ๋ฒ•์œผ๋กœ "์ฃผ์„์ฒ˜๋ฆฌ๋ฅผ ํ•ด์•ผ ๋  ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

 

์ž…๋ ฅ๊ฐ’ ๊ธธ์ด๋ฅผ ๊ฒ€์ฆํ•˜๊ณ  ()(๊ด„ํ˜ธ๋กœ ๋ง‰ํ˜€ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ฟผ๋ฆฌ๋ฌธ์„ ์‹คํ–‰์‹œํ‚ค๊ธฐ ์‰ฝ์ง€๊ฐ€ ์•Š์Šต๋‹ˆ๋‹ค.. ํžŒํŠธ๋ฅผ ํ™•์ธํ•ด ๋ณธ ๊ฒฐ๊ณผ
mysql
์˜ "auto type cast"(์ž๋™ ํ˜• ๋ณ€ํ™˜๋ฅผ ํ™œ์šฉํ•ด์„œ ์ž…๋ ฅ๊ฐ’์„ ์ตœ์†Œํ•œ์œผ๋กœ ๋‹จ์ถ•์‹œ์ผœ ๊ฐ’์„ ๋น„๊ตํ•ด์•ผ ๋ฉ๋‹ˆ๋‹ค.

 

Auto Type Cast ๋ž€

MySQL์€ ๋น„๊ต๋‚˜ ๊ฒ€์ƒ‰์„ ์ˆ˜ํ–‰ํ•  ๋•Œ ๋ฐ์ดํ„ฐ์˜ ํƒ€์ž…์ด ์„œ๋กœ ๋‹ค๋ฅผ ๊ฒฝ์šฐ, ๋‚ด๋ถ€์ ์œผ๋กœ ํƒ€์ž…์ด ๊ฐ™์•„์ง€๋„๋ก ์ž๋™ ๋ณ€ํ™˜ํ•˜์—ฌ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰ ์„œ๋กœ ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐํ˜•์˜ ๊ฐ’์„ ๋น„๊ตํ•ด๋„ ์•„๋ฌด๋Ÿฐ ๋ฌธ์ œ๊ฐ€ ์—†๋‹ค๋Š” ์–˜๊ธฐ์ž…๋‹ˆ๋‹ค.

 

nightmare ๋ฌธ์ œ ์ด์™ธ์— SQL injection์„ ์ง„ํ–‰ํ•˜๋ฉด์„œ ๋ณ€์ˆ˜์— ์ˆซ์ž๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ์—๋Š” ์•„๋ž˜์™€ ๊ฐ™์ด auto type cast๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์šฐํšŒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

false = 0
true = 1
true+true = 2
floor(version()) = 5

 

ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•

1. ์ž๋™ ํ˜• ๋ณ€ํ™˜ ํ™œ์šฉ
auto type cast
์—์„œ ๊ธฐ๋ณธ์ ์œผ๋กœ "๋ฌธ์ž์—ด" ๋˜๋Š” '' ๋Š”-> ์ˆซ์ž 0 ์œผ๋กœ ๋ฆฌํ„ด๋˜๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์„ ์ด์šฉํ•ด์„œ ์ž…๋ ฅ๊ฐ’ ๊ธธ์ด๋„ ์ค„์ด๊ณ  ์ฐธ๊ฐ’์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

2.
๋ณ€์ˆ˜์ดํ›„์˜๊ตฌ๋ฌธ์„์ฃผ์„์ฒ˜๋ฆฌํ•˜๊ฒŒ ๋จ์œผ๋กœ์จ "pw" ๋ณ€์ˆ˜ ๊นŒ์ง€๋งŒ ์ฟผ๋ฆฌ๋ฌธ์ด ์‹คํ–‰๋˜๊ฒŒ๋” ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.
์•„๋ž˜์— ์ œ์‹œ๋œ ์ฃผ์„ ๋ฐฉ๋ฒ• ์ค‘ ํ•„ํ„ฐ๋งํ•˜์ง€ ์•Š๋Š” ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

--%20
%23
/**/
;%00

 

๋ณ€์ˆ˜์—๋Š” pw=('') ์ฒ˜๋Ÿผ ๊ด„ํ˜ธ๋กœ ๋ฌถ์—ฌ ์žˆ๋Š” ๊ฒƒ์„ ์ด์šฉํ•ด์•ผ ๋˜๊ธฐ์— '(์‹ฑ๊ธ€์ฟผํ„ฐ) ์™€ ๋‹ซ๋Š” ๊ด„ํ˜ธ " ) " ๋ฅผ ์ด์šฉํ•ด์„œ ('') ํ˜•ํƒœ๋กœ ๋ฌถ์–ด์ฃผ๋ฉด --> auto type cast๋กœ ์ธํ•ด ์ˆซ์ž " 0 "์œผ๋กœ ๋ณ€ํ™˜๋ฉ๋‹ˆ๋‹ค. 

 

์ฆ‰ ๋ณ€ํ™˜๋œ ์ˆซ์ž 0 ๊ณผ =0 ๊ณผ ๋น„๊ตํ•˜์—ฌ ๋ฌด์กฐ๊ฑด "์ฐธ" ๊ฐ’์œผ๋กœ ๋˜๊ณ  ๊ทธ ์ดํ›„์˜ ๊ตฌ๋ฌธ๋“ค์„ ;%00 ์œผ๋กœ  ์ฃผ์„์ฒ˜๋ฆฌ๋จ์œผ๋กœ์จ ;(์„ธ๋ฏธ์ฝœ๋ก ) ์ดํ›„์˜ ๊ตฌ๋ฌธ๋“ค์€ ๋ชจ๋‘ ์˜๋ฏธ๊ฐ€ ์—†๊ฒŒ ๋˜์–ด ์ฟผ๋ฆฌ๋ฌธ์ด ์‹คํ–‰๋˜๋Š” ๊ฒƒ์„ ๋ฐฉํ•ดํ•˜์ง€ ์•Š๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

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

XSS Challenges 8  (0) 2020.12.11
[LOS] Xavis ํ’€์ด(19)  (0) 2020.12.10
XSS Challenges 7  (0) 2020.12.10
[LOS] Zombie assassin ํ’€์ด(17)  (0) 2020.12.09
[LOS] Succubus ํ’€์ด(16)  (0) 2020.12.09
๊ณต์œ ํ•˜๊ธฐ ๋งํฌ
Comment