web hacking ๐Ÿ–ฅ/techniques โŒ principles 4

Race Condition

Race Condition ์ด๋ž€? ์ƒํ™ฉ ํ•˜๋‚˜๋ฅผ ๊ฐ€์ •ํ•ด๋ณด์ž. num์ด๋ผ๋Š” ํ•˜๋‚˜์˜ ๋ฉ”๋ชจ๋ฆฌ์— 5๋ฅผ ๋„ฃ๊ณ , Process1์€ ํ•ด๋‹น ๋ฉ”๋ชจ๋ฆฌ์— 1 ๋”ํ•˜๊ธฐ, Process2๋Š” 1 ๋นผ๊ธฐ๋ฅผ ์ง„ํ–‰ ํ•œ๋‹ค. ๋งŒ์ผ ๋‘ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋™์‹œ์— num ๋ฉ”๋ชจ๋ฆฌ์— ์ ‘๊ทผํ•œ๋‹ค๋ฉด ๊ฒฐ๊ณผ๊ฐ€ ์–ด๋–ป๊ฒŒ ๋ ๊นŒ? 5๋ผ๋Š” ๊ฐ’์„ 1๋”ํ•˜๊ณ  1๋นผ๋ฉด ๊ฒฐ๊ณผ์ ์œผ๋กœ ๊ทธ๋Œ€๋กœ ์ผ ๊ฒƒ ๊ฐ™๋‹ค. ํ•˜์ง€๋งŒ IMG1์˜ ์•„๋ž˜์ชฝ์„ ๋ณด๋ฉด ์•Œ ์ˆ˜ ์žˆ๋“ฏ์ด, num์ด ํ•ญ์ƒ 5๋ผ๊ณ  ํ™•์ •์ง€์„ ์ˆ˜๋Š” ์—†๋‹ค. ์œ„ ์ƒํ™ฉ์„ Race Condition์ด๋ผ ํ•œ๋‹ค. Race Conditon์€ ๋‘˜ ์ด์ƒ์˜ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๊ณตํ†ต ์ž์›์— ๋™์‹œ์— ์ ‘๊ทผํ• ๋•Œ ๋ฐœ์ƒํ•˜๋Š” ํ˜„์ƒ์ด๋‹ค. 'race'์˜ ์˜๋ฏธ๋Œ€๋กœ ํ•œ์ •๋œ ์ž์›์„ ๋‘๊ณ  ์„œ๋กœ ์‚ฌ์šฉํ•˜๋ ค๊ณ  ๊ฒฝ์Ÿํ•˜๋Š” ์ƒํ™ฉ์ด๋‹ค. ๊ณต์œ  ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์“ฐ๋Š” ํ”„๋กœ์„ธ์Šค๋ผ๋ฆฌ๋Š” ์ด๋Ÿฌํ•œ Race Condition์ด ๋ฐœ์ƒํ• ..

SSTI - RCE(Remote Code Execution) ์—ฐ๊ณ„ ๊ณต๊ฒฉ

SSTI(Server Side Template Injection)์„ ํ†ตํ•œ ์—ฌ๋Ÿฌ ๊ณต๊ฒฉ ๊ฐˆ๋ž˜ ์ค‘ ํ•˜๋‚˜๋ฅผ ์•Œ์•„๋ณผ๊นŒ ํ•ฉ๋‹ˆ๋‹ค. ์šฐ์„ , SSTI๊ฐ€ ์ƒ์†Œํ•˜๋‹ค๋ฉด ์ด์ „ ํฌ์ŠคํŒ…์„ ๋ณด๊ณ ์˜ค์‹œ๋Š” ๊ฒƒ์„ ์ถ”์ฒœ๋“œ๋ฆฝ๋‹ˆ๋‹ค. 2023.09.12 - [web hacking/techniques] - SSTI ๊ธฐ๋ณธ ๊ฐœ๋…๊ณผ ์˜ˆ์ œ ์‹ค์Šต SSTI ๊ธฐ๋ณธ ๊ฐœ๋…๊ณผ ์˜ˆ์ œ ์‹ค์Šต SSTI(Server Side Template Injection)์ทจ์•ฝ์  ๊ณต๊ฒฉ ์ฝ”๋“œ๊ฐ€ ์›น ํ…œํ”Œ๋ฆฟ์— ํฌํ•จ๋œ ์ƒํƒœ์—์„œ ์„œ๋ฒ„ ์ธก์—์„œ ํ…œํ”Œ๋ฆฟ ์ธ์ ์…˜์ด ๋ฐœํ˜„๋˜๋Š” ๊ณต๊ฒฉ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์•ž์„œ, ํ…œํ”Œ๋ฆฟ ์—”์ง„์— ๋Œ€ํ•œ ์ด์•ผ๊ธฐ๋ฅผ ํ•ด๋ด…์‹œ๋‹ค. ์›น ํ…œํ”Œ kortsec1n4mationm.tistory.com RCE(Remote Code Execution)์ด๋ž€, ์ธ๊ฐ€๋ฐ›์ง€ ์•Š์€ ๊ณต๊ฒฉ์ž๊ฐ€ ์•…์„ฑ์ฝ”๋“œ๋ฅผ ์„œ๋ฒ„์—์„œ ์›๊ฒฉ์œผ๋กœ ..

SSTI ๊ธฐ๋ณธ ๊ฐœ๋…๊ณผ ์˜ˆ์ œ ์‹ค์Šต

SSTI(Server Side Template Injection)์ทจ์•ฝ์  ๊ณต๊ฒฉ ์ฝ”๋“œ๊ฐ€ ์›น ํ…œํ”Œ๋ฆฟ์— ํฌํ•จ๋œ ์ƒํƒœ์—์„œ ์„œ๋ฒ„ ์ธก์—์„œ ํ…œํ”Œ๋ฆฟ ์ธ์ ์…˜์ด ๋ฐœํ˜„๋˜๋Š” ๊ณต๊ฒฉ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์•ž์„œ, ํ…œํ”Œ๋ฆฟ ์—”์ง„์— ๋Œ€ํ•œ ์ด์•ผ๊ธฐ๋ฅผ ํ•ด๋ด…์‹œ๋‹ค. ์›น ํ…œํ”Œ๋ฆฟ ์—”์ง„์€ ์›นํŽ˜์ด์ง€ ์† ๊ณ ์ •์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ๋ถ€๋ถ„์„ ํ…œํ”Œ๋ฆฟ์œผ๋กœ ๋ฏธ๋ฆฌ ์ž‘์„ฑํ•ด ๋‘๊ณ , ๋™์ ์œผ๋กœ ๋ณ€๊ฒฝ๋˜๋Š” ๋ฐ์ดํ„ฐ ์˜์—ญ์„ ๊ฒฐํ•ฉํ•˜์—ฌ ์›น ๋ฌธ์„œ๋ฅผ ๊ตฌ์„ฑํ•˜๊ณ  ํ™”๋ฉด์— ์ถœ๋ ฅํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค. ์•„๋ž˜ ์‚ฌ์ง„์€ ์ œ๊ฐ€ ๋ฏธ๋ฆฌ ๊ตฌ์ถ•ํ•ด๋‘” ์‹œํ—˜ ํ™˜๊ฒฝ์ž…๋‹ˆ๋‹ค. ๋ฉ”์ธ ํŽ˜์ด์ง€ ์† ๋ฐฐ๊ฒฝ์— ๊ฐ™์€ ์˜์ƒ์ด ๊น”๋ ค์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ๋™์ผํ•œ, ์ค‘๋ณต๋œ ๋ถ€๋ถ„์„ ๋ฏธ๋ฆฌ ํ…œํ”Œ๋ฆฟ์œผ๋กœ ๋งŒ๋“ค์–ด๋†“์œผ๋ฉด ์†Œ์Šค์ฝ”๋“œ๋ฅผ ์ข€ ๋” ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. {% with messages = get_flashed_messages() %} {% if messages %} ..

sql-injection ๊ธฐ๋ณธ ๊ฐœ๋…๊ณผ ์˜ˆ์ œ ์‹ค์Šต

๊ฐœ์ธ์ ์œผ๋กœ ์ •๋ณด๋ณด์•ˆ ๋ถ„์•ผ๋ฅผ ์ฒ˜์Œ ์ ‘ํ•˜๊ฒŒ๋œ ๊ณ„๊ธฐ์ด์ž, ์ง€๊ธˆ๋„ web ํ•ดํ‚น ํ•˜๋ฉด ๊ฐ€์žฅ ๋จผ์ € ๋– ์˜ค๋ฅด๋Š” ์˜ค๋Š˜์˜ ์ฃผ์ธ๊ณต ๋ฐ”๋กœ sql injection ์ž…๋‹ˆ๋‹ค. ๋ฒŒ์จ๋ถ€ํ„ฐ ๋‚ฏ์„ค์ง€๋งŒ ์ฝ”๋”ฉ์„ ์ ‘ํ•˜๊ธฐ๋งŒ ํ•ด๋ด๋„ ์‰ฝ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ง€๊ธˆ๋ถ€ํ„ฐ์˜ ๋ชจ๋“  ๊ณผ์ •์€ ์ œ๊ฐ€ ์ง์ ‘ ๋งŒ๋“  ์›น์—์„œ ํ…Œ์ŠคํŠธ ํ•˜์˜€์Šต๋‹ˆ๋‹ค. ํ—ˆ๊ฐ€๋˜์ง€ ์•Š์€ ํƒ€ ์‚ฌ์ดํŠธ์—์„œ ๋ฌธ์ œ์‹œ, ์ฑ…์ž„์€ ๋ณธ์ธ์—๊ฒŒ ์žˆ์Œ์„ ๊ผญ ์•Œ์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ œ๊ฐ€ ์—ฐ์Šต์„ ์œ„ํ•ด ๋งŒ๋“  ์›น ํŽ˜์ด์ง€ ์ž…๋‹ˆ๋‹ค. html, css, ์•ฝ๊ฐ„์˜ js๋กœ ํ”„๋ŸฐํŠธ๋ฅผ ๊ทธ๋ฆฌ๊ณ  flask์™€ mysql๋กœ ๋ฐฑ์—”๋“œ๋ฅผ ๊ตฌ์—ฐํ•˜์˜€์Šต๋‹ˆ๋‹ค. ๋‹ค๋“ค SQL์— ๋Œ€ํ•ด์„œ ๋“ค์–ด๋ณด์…จ๋‚˜์š”? SQL์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ๋งŒ๋“ค์–ด์ง„ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์ž…๋‹ˆ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด sql injection ๊ธฐ๋ฒ•์€ sql๊ตฌ๋ฌธ์„ ์‚ฝ์ž…ํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ ‘๊ทผํ•˜๋Š” ๊ณต๊ฒฉ..