์ƒˆ์†Œ์‹

Game/Bee-box

[Bee-box] Change Secret

  • -
๋ฐ˜์‘ํ˜•

์ด๋ฒˆ ํฌ์ŠคํŒ…์€ 'Change Secret' ์ž…๋‹ˆ๋‹ค.

 

์‹ค์Šตํ•˜๋Š” ๋ชจ๋“  ๊ณต๊ฒฉ์€ ์‹ค์ œ๋กœ ์‚ฌ์šฉํ•˜์‹œ๋ฉด ์•ˆ๋ฉ๋‹ˆ๋‹ค.

ํ—ˆ์šฉ๋ฐ›์ง€ ์•Š์€ ์„œ๋น„์Šค ๋Œ€์ƒ์— ํ•ดํ‚น์„ ์‹œ๋„ํ•˜๋Š” ํ–‰๋™์€ ๊ธˆ์ง€ํ•˜๋ฉฐ,

๋ชจ๋“  ๋ฒ•์  ์ฑ…์ž„์€ ์‚ฌ์šฉ์ž์—๊ฒŒ ์žˆ๋Š” ๊ฒƒ์„ ๋ช…์‹ฌํ•ด์ฃผ์„ธ์š”.

 


 

๋‚œ์ด๋„ ํ•˜

 

ํŽ˜์ด์ง€ ์ ‘์†!

์ด ํŽ˜์ด์ง€๋Š” ๋น„๋ฐ€๋ฒˆํ˜ธ ํžŒํŠธ๋ฅผ ์ƒˆ๋กœ ์„ค์ •ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค.

์ƒˆ๋กœ์šด ํžŒํŠธ๋ฅผ ์ž…๋ ฅ๋ž€์— ๊ฒฝ๊ณ ์ฐฝ์œผ๋กœ ์ถœ๋ ฅํ•˜๋Š” ์Šคํฌ๋ฆฝํŠธ ์ฝ”๋“œ๋ฅผ ์ž…๋ ฅํ•œ๋‹ค.

ex) <script>alert("Hello world~");</script>

 

 

 

 

์ž…๋ ฅ ํ›„ change๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜๋ฉด

์„ฑ๊ณต์ ์œผ๋กœ ํžŒํŠธ๊ฐ€ ๋ณ€๊ฒฝ๋˜์—ˆ๋‹ค๊ณ  ์•Œ๋ ค์ค€๋‹ค.

 

 

์˜คํƒ€ ๋‚ฌ์–ด์š”.. alert์ž…๋‹ˆ๋‹ค.

 

 

๋น„๋ฐ€๋ฒˆํ˜ธ ํžŒํŠธ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š” ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•ด์„œ, ์ž…๋ ฅ ํ•œ ์Šคํฌ๋ฆฝํŠธ ์ฝ”๋“œ๊ฐ€ ์‹คํ–‰๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•ด๋ณด์ž.

 

 

SQL์ธ์ ์…˜์˜ LoginForm ํŽ˜์ด์ง€์—์„œ ๋กœ๊ทธ์ธ ํ•˜๋ฉด ๋น„๋ฐ€๋ฒˆํ˜ธ ํžŒํŠธ๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

 

 

 

ํŽ˜์ด์ง€์— ์ ‘์† ํ›„ ๋กœ๊ทธ์ธ ํ•˜๋ฉด ํžŒํŠธ๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

 

๋น„๋ฐ€๋ฒˆํ˜ธ ํžŒํŠธ๋ฅผ ๋ณ€๊ฒฝํ•œ 'bee' ์‚ฌ์šฉ์ž๋กœ ๋กœ๊ทธ์ธ ํ•ด๋ณด์ž.

 

 

 

ํžŒํŠธ๋ฅผ ๋ณ€๊ฒฝํ•œ ๊ฒƒ์ฒ˜๋Ÿผ, ๊ฒฝ๊ณ  ์ฐฝ์ด ๋œฌ๋‹ค.

 

 

 

 

์ด๋ฒˆ์—๋Š” ์ƒˆ๋กœ์šด ํžŒํŠธ ์„ค์ •์„ ํ•  ๋•Œ, ์‚ฌ์šฉ์ž์˜ ์ฟ ํ‚ค๊ฐ’์„ ๊ฒฝ๊ณ ์ฐฝ์œผ๋กœ ์ถœ๋ ฅํ•˜๋Š” ์Šคํฌ๋ฆฝํŠธ ์ฝ”๋“œ๋ฅผ ์ž…๋ ฅํ•ด๋ณด์ž.

 

<script>alert(document.cookie);</script>

 

 

 

 

์ž…๋ ฅ ํ›„ ํ™•์ธํ•ด๋ณด๋ฉด

 

 

 

 

sqliํŽ˜์ด์ง€์—์„œ Your secret์ด๋ผ๋Š” ํžŒํŠธ ๋ถ€๋ถ„์ด ์ถœ๋ ฅ๋˜์ง€ ์•Š๋Š”์ด์œ ๋Š” ์Šคํฌ๋ฆฝํŠธ ์ฝ”๋“œ๋ฅผ ๋„ฃ์—ˆ๊ธฐ ๋•Œ๋ฌธ์—,

ํžŒํŠธ ๋ถ€๋ถ„์ด ๋ณด์ด์ง€ ์•Š๋Š” ๊ฒƒ์ด๋‹ค.

 

๋งŒ์•ฝ hello๋ฅผ ํžŒํŠธ๋กœ ๊ทธ๋ƒฅ ์ฃผ๊ณ , ํ™•์ธํ•ด๋ณด๋ฉด bee๋กœ ๋กœ๊ทธ์ธ ํ–ˆ์„ ๋•Œ hello๋ผ๋Š” ํžŒํŠธ๊ฐ€ ์ถœ๋ ฅ๋œ๋‹ค.

 

 

 

xss_stored_3.php ํŽ˜์ด์ง€๋Š” ์‚ฌ์šฉ์ž์˜ ์•„์ด๋””๋ฅผ ์›น ํŽ˜์ด์ง€ ์†Œ์Šค ์ฝ”๋“œ์— ๋…ธ์ถœํ•œ๋‹ค.

 

 

 

 

hidden ํƒ€์ž…์œผ๋กœ ์ •์˜๋œ login ๋ณ€์ˆ˜์— ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž์˜ ์•„์ด๋””๋ฅผ ์ž…๋ ฅํ•˜๊ณ  ๊ทธ ์‚ฌ์šฉ์ž์˜ ๋น„๋ฐ€๋ฒˆํ˜ธ ํžŒํŠธ๋ฅผ ์ˆ˜์ •ํ•œ๋‹ค๋ฉด?

 

๋‹ค๋ฅธ ์‚ฌ์šฉ์ž๊ฐ€ ์ž์‹ ๋„ ๋ชจ๋ฅด๊ฒŒ ์ •๋ณด๊ฐ€ ์œ ์ถœ๋  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด๋‹ค.(์ฟ ํ‚ค ๊ฐ’ ๋…ธ์ถœ๋“ฑ..)

 

์ƒˆ๋กœ์šด ๊ณ„์ •์„ ์ถ”๊ฐ€ ํ•ด๋ณด๊ณ  ๊ทธ ์•„์ด๋””๋ฅผ hidden value๋กœ ์ค€ ๋‹ค์Œ, ๋น„๋ฐ€ ๋ฒˆํ˜ธ ํžŒํŠธ๋ฅผ ๋ฐ”๊ฟ”๋ณด๊ฒ ๋‹ค.

 

 


1. ๊ณ„์ • ์ถ”๊ฐ€ํ•˜๊ธฐ

 

 

 

Create user๋กœ ์ƒˆ๋กœ์šด ๊ณ„์ • ์ƒ์„ฑ

 

 

 

 

์ƒ์„ฑ์ด ์™„๋ฃŒ๋จ.

 

 

 

์ฒดํฌ ํ•ด๋ณด๊ธฐ. 

haeun1 ์˜ ์‹œํฌ๋ฆฟ ํžŒํŠธ 123 ๋ชจ๋‘ ์ •์ƒ์ ์œผ๋กœ ๋กœ๊ทธ์ธ ๋จ.

 

 

2. ๋‹ค๋ฅธ ์‚ฌ๋žŒ ๊ณ„์ •์œผ๋กœ pwํžŒํŠธ ๋ณ€๊ฒฝํ•˜๊ธฐ.

 

 

๊ณต๊ฒฉ์ž ์ž…์žฅ์—์„œ value๊ฐ’์„ haeun1๋กœ ๋ฐ”๊พผ๋‹ค๋ฉด, haeun1๊ณ„์ •์˜ passwordํžŒํŠธ๊ฐ€ ๋ณ€๊ฒฝ๋˜๋Š” ๊ฒƒ์ด๋‹ค.

 

 

 

๋ณ€๊ฒฝ ํ›„ change!

 

 

3. ๋‹ค๋ฅธ ๊ณ„์ •์œผ๋กœ ๋กœ๊ทธ์ธ ํ•ด๋ณด๊ธฐ

 

haeun1๊ณ„์ •์œผ๋กœ ๋กœ๊ทธ์ธ ํ–ˆ๋”๋‹ˆ, ํžŒํŠธ๊ฐ€ ๋ณ€๊ฒฝ๋จ.

 

 

 

์ด์ „๊ณผ ๋‹ค๋ฅด๊ฒŒ secret๋ถ€๋ถ„์ด ์ง€์›Œ์ง (์Šคํฌ๋ฆฝํŠธ ์ฝ”๋“œ๋ฅผ ์ž…๋ ฅํ•˜์˜€๊ธฐ ๋•Œ๋ฌธ์—)

 

 

 

๋Œ€์‘๋ฐฉ์•ˆ

 

๋‚œ์ด๋„ ์ƒ์—์„œ๋Š” ๋น„๋ฐ€๋ฒˆํ˜ธ ํžŒํŠธ ์ž…๋ ฅ์นธ์— ์Šคํฌ๋ฆฝํŠธ ์ฝ”๋“œ๋ฅผ ์ž…๋ ฅํ•˜์—ฌ๋„ ์Šคํฌ๋ฆฝํŠธ ์ฝ”๋“œ๊ฐ€ ์‹คํ–‰๋˜์ง€ ์•Š๊ณ 

๋ฌธ์ž์—ด๋กœ ์•„๋ž˜์ฒ˜๋Ÿผ ์ถœ๋ ฅ๋œ๋‹ค.

 

 

 

ํŽ˜์ด์ง€ ์†Œ์Šค๋ฅผ ํ™•์ธํ•ด๋ณด์•˜๋”๋‹ˆ xss_check_3ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ž…๋ ฅ ๋ฐ์ดํ„ฐ๋ฅผ ์šฐํšŒํ•œ๋‹ค.

ํ•จ์ˆ˜ ๋‚ด๋ถ€์—๋Š” htmlspecialchars() ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ์ž…๋ ฅ ๋ฐ์ดํ„ฐ๋ฅผ UTF-8๋กœ ์ธ์ฝ”๋”ฉ ํ•œ๋‹ค.

 

 

 

๋‚ด์šฉ์„ ์‚ดํŽด๋ณด๋‹ˆ utf-8๋กœ ์ธ์ฝ”๋”ฉ์„ ํ•ด์ค€๋‹ค.

๋ฐ์ดํ„ฐ๋ฅผ htmlspecialchars๋ฅผ ํ†ตํ•ด ๋ฐ›์€ data(์ž…๋ ฅ๋ฐ์ดํƒ€)๋ฅผ ์ธ์ฝ”๋”ฉ ํ•ด์ฃผ๋Š” ํ•จ์ˆ˜์ธ๋ฐ

 

 

http://b.redinfo.co.kr/56

 

 

์œ„์™€ ๊ฐ™์ด ํŠน์ˆ˜๋ฌธ์ž๋ฅผ html์—”ํ‹ฐํ‹ฐ๋กœ ๋ณ€ํ™˜์‹œํ‚จ๋‹ค.

 

 

http://b.redinfo.co.kr/56

 

 

๋‘๋ฒˆ์งธ ์ธ์ž๋Š” ์œ„๋ฅผ ๋ณด๋ฉด ๋ ๊ฒƒ ๊ฐ™๋‹ค.

 

ํ•˜์—ฌํŠผ ๋ฌธ์ž๋กœ ์ธ์‹ํ•˜๊ฒŒ ๋ฐฉ์–ด ํ•˜๋ฉด ๋œ๋‹ค!

 

์ฆ‰ ์‹คํ–‰๋˜๋Š” ์›น ๊ณต๊ฐ„์„ ๋ง‰๊ธฐ์œ„ํ•ด htmlspecialcharsํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉ

--> pwํžŒํŠธ๋Š” db์— ์ €์žฅ๋จ (์—ฌ๊ธฐ์„œ sql injection์„ ๋ง‰์•„์•ผํ•จ) --> mysqli_real_escape__stringํ•จ์ˆ˜ ์‚ฌ์šฉ

 

 

์ด๋ ‡๊ฒŒ ์ด ํŽ˜์ด์ง€์—์„œ ๋ณ€๊ฒฝํ•œ ๋น„๋ฐ€๋ฒˆํ˜ธ ํžŒํŠธ๋Š” MYSQL ์˜ ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค์— ์ €์žฅ๋˜๋ฏ€๋กœ

secret ๋ณ€์ˆ˜๋ฅผ ๋‹ค์‹œ ์šฐํšŒํ•œ๋‹ค.

mysqli_real_escape_string()ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•˜์—ฌ, ๊ธฐํ˜ธ์— \(๋ฐฑ์Šฌ๋ž˜์‹œ)๋ฅผ ๋ถ™์—ฌ SQL์ธ์ ์…˜ ๊ณต๊ฒฉ์„ ๋ฐฉ์–ดํ•œ๋‹ค.

๋˜ํ•œ htmlspecialchars()ํ•จ์ˆ˜๋กœ HTML์— ์‚ฌ์šฉ๋˜๋Š” ๊ธฐํ˜ธ๋ฅผ UTF-8๋กœ ๋ฐ˜ํ™˜ํ•˜๊ณ  HTML์ฝ”๋“œ์— ์‚ฌ์šฉ๋˜๋Š” ๋ฌธ์ž๋“ค์„

HTML ์—”ํ‹ฐํ‹ฐ ์ฝ”๋“œ๋กœ ๋ณ€ํ™˜ํ•œ๋‹ค.

 

๊ทธ ๋‹ค์Œ MySQL ์—…๋ฐ์ดํŠธ ์…‹ ๊ตฌ๋ฌธ์„ ์‚ฌ์šฉํ•˜์—ฌ ์œ„ํ—˜ ๋ฌธ์ž๊ฐ€ ๋ณ€ํ™˜๋œ secret๋ณ€์ˆ˜๋ฅผ ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค์— ์ €์žฅํ•œ๋‹ค.

 

 

 

 

 

๋‚œ์ด๋„ ์ƒ์—์„œ๋Š” ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž์˜ ๋น„๋ฐ€๋ฒˆํ˜ธ ํžŒํŠธ๋ฅผ ๋ณ€๊ฒฝํ•˜์ง€ ๋ชปํ•˜๋„๋ก ์ •๋ณด๋ฅผ hidden -> value๊ฐ€ ์•„๋‹Œ,

token์œผ๋กœ ๋ฐ›์•„ ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž๋กœ ์ ‘๊ทผํ•  ๊ฐ€๋Šฅ์„ฑ์„ ๋ง‰๋Š”๋‹ค.

 

 

 

 

 

๋ฐ˜์‘ํ˜•

'Game > Bee-box' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[Bee-box] ๋ฐ˜์‚ฌ๋œ XSS ์ทจ์•ฝ์   (0) 2020.10.04
[Bee-box] User-Agent  (0) 2020.09.30
[Bee-box] Stored Xss - Blog  (0) 2020.09.26
[Bee-box] ์ €์žฅ๋œ XSS ์ทจ์•ฝ์   (0) 2020.09.25
Contents

ํฌ์ŠคํŒ… ์ฃผ์†Œ๋ฅผ ๋ณต์‚ฌํ–ˆ์Šต๋‹ˆ๋‹ค

์ด ๊ธ€์ด ๋„์›€์ด ๋˜์—ˆ๋‹ค๋ฉด ๊ณต๊ฐ ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค.