Web Hacking ๊ณผ์ œ_1์ฃผ์ฐจ (์ˆ˜์—… ๋‚ด์šฉ ์ •๋ฆฌ)

2024. 9. 19. 12:24ใ†SWLUG/web hacking

๐Ÿ“Œ์›น ๊ธฐ์ดˆ ์ง€์‹

 

 

  • ์ด์šฉ์ž๊ฐ€ ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์ด์šฉํ•˜์—ฌ ์›น์„œ๋ฒ„์— ์ ‘์†
  • ๋ธŒ๋ผ์šฐ์ €๋Š” ์ด์šฉ์ž์˜ ์š”์ฒญ์„ ํ•ด์„ํ•˜์—ฌ HTTPํ˜•์‹์œผ๋กœ ์›น ์„œ๋ฒ„์— ๋ฆฌ์†Œ์Šค๋ฅผ ์š”์ฒญ
  • HTTP๋กœ ์ „๋‹ฌ๋œ ์ด์šฉ์ž์˜ ์š”์ฒญ์„ Server Application์—์„œ ํ•ด์„
  • ํ•ด์„ํ•œ ์ด์šฉ์ž์˜ ์š”์ฒญ์— ๋”ฐ๋ผ ์ ์ ˆํ•œ ๋™์ž‘์„ ์ˆ˜ํ–‰ 
    • ๊ณ„์ขŒ ์†ก๊ธˆ, ์ž…๊ธˆ๊ณผ ๊ฐ™์€ ๋ณต์žกํ•œ ๋™์ž‘์„ ์š”๊ตฌํ•  ๊ฒฝ์šฐ ๋‚ด๋ถ€์ ์œผ๋กœ ํ•„์š”ํ•œ ์—ฐ์‚ฐ์„ ์ฒ˜๋ฆฌ
  • ์ด์šฉ์ž์—๊ฒŒ ์ „๋‹ฌํ•  ๋ฆฌ์†Œ์Šค๋ฅผ HTTP ํ˜•์‹์œผ๋กœ ์ด์šฉ์ž์—๊ฒŒ ์ „๋‹ฌ
  • ๋ธŒ๋ผ์šฐ์ €๋Š” ์„œ๋ฒ„์—๊ฒŒ ์‘๋‹ต๋ฐ›์€ HTML,CSS,JS ๋“ฑ์˜ ์›น ๋ฆฌ์†Œ์Šค๋ฅผ ์‹œ๊ฐํ™”ํ•˜์—ฌ ์ด์šฉ์ž์—๊ฒŒ ๋ณด์—ฌ์คŒ

 

 

๐Ÿ“ŒHTTP /HTTPS

 

HTTP๋ž€ ์„œ๋ฒ„์™€ ํด๋ผ์ด์–ธํŠธ์˜ ๋ฐ์ดํ„ฐ ๊ตํ™˜์„ ์š”์ฒญ๊ณผ ์‘๋‹ต ํ˜•์‹์œผ๋กœ ์ •์˜ํ•œ ํ”„๋กœํ† ์ฝœ์„ ๋งํ•œ๋‹ค.

 

HTTP ํ•œ๊ณ„์  : HTTP์˜ ์‘๋‹ต๊ณผ ์š”์ฒญ์€ ํ‰๋ฌธ์œผ๋กœ ์ „๋‹ฌ๋˜๋ฉฐ, ๋งŒ์•ฝ ๋ˆ„๊ตฐ๊ฐ€ ์ด๋ฅผ ๊ฐ€๋กœ์ฑˆ๋‹ค๋ฉด ์ค‘์š”ํ•œ ์ •๋ณด๊ฐ€ ์œ ์ถœ๋  ์ˆ˜ ์žˆ๋‹ค.

 

 

 

๐Ÿ“ŒHijack a session

 

๊ณต๊ฒฉ๊ฐœ์š”๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

 

OWASP ์ •์˜ : ์„ธ์…˜ ํ† ํฐ์„ ํ†ตํ•ด ๊ด€๋ฆฌ๋˜๋Š” ์›น ์„ธ์…˜ ์ œ์–ด ๋งค์ปค๋‹ˆ์ฆ˜์„ ์•…์šฉํ•˜๋Š” ๊ฒƒ

 

๊ฐœ๋ฐœ์ž๊ฐ€ ์ง์ ‘ ๊ฐœ๋ฐœํ•œ ์„ธ์…˜ ๋˜๋Š” ํ† ํฐ์„ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ์ ์šฉํ•  ๋•Œ ์•ˆ์ „์„ ์œ„ํ•œ ์„ธ์…˜ ๊ฐ’์˜ ๋ณต์žก์„ฑ๊ณผ ๋ฌด์ž‘์œ„์„ฑ์„ ๋ฌด์‹œํ•ด ์ง„ํ–‰ํ•˜๋ฉด ํ•ด์ปค๋Š” ๋ฌด์ฐจ๋ณ„ ๋Œ€์ž… ๊ณต๊ฒฉ์œผ๋กœ ์„ธ์…˜ ๊ฐ’์„ ํƒˆ์ทจํ•  ์ˆ˜ ์žˆ๋‹ค.

 

์šฐ์„  ์‹ค์Šต์ „์— WebGoat ๋กœ๊ทธ์ธ์„ ํ•˜๊ณ  Hijack a session ํƒญ์œผ๋กœ ์ด๋™ํ•ด์ค€๋‹ค.

Desktop Docker ์ปจํ…Œ์ด๋„ˆ ์‹คํ–‰์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•˜๋Š”๋ฐ ๋‚˜๋Š” ์—ฌ๊ธฐ์„œ ์‹คํ–‰์ด ๋˜์ง€ ์•Š์•„์„œ, Windows Powershell ๋กœ ์‹คํ–‰ํ–ˆ๋‹ค.

์‹คํ–‰์€ ./mvnw spring-boot:run ์„ ํ†ตํ•ด ๊ฐ€๋Šฅํ•˜๋‹ค.

 

 ์‹ค์Šต์ „์— BurpSuite๋„ ์…‹ํŒ…ํ•ด์•ผํ•˜๋Š”๋ฐ, WebGoat์— ๋งž์ถฐ์„œ 8080ํฌํŠธ๋กœ ์ˆ˜์ •ํ•ด์ค˜์•ผํ•œ๋‹ค.

 

์ดํ›„ ์ฃผ์†Œ์ฐฝ์„ ํ†ตํ•ด WebGoat์ ‘์†ํ•˜๋Š”๋ฐ, ์ด๋•Œ BurpSuite์—์„œ intercept๋ฅผ offํ•˜๋ฉด ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€๋กœ ๋„˜์–ด๊ฐ„๋‹ค.

๊ทธ๋ฆฌ๊ณ  ๋‹ค์‹œ on์œผ๋กœ ๋ณ€๊ฒฝํ•˜๊ณ  username๊ณผ password๋ฅผ ์ž„์˜์˜ ๊ฐ’์œผ๋กœ ์ž…๋ ฅํ•œ ํ›„ ๋กœ๊ทธ์ธ์„ ์‹œ๋„ํ•œ๋‹ค.

 

์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์ž„์˜๋กœ ์ž…๋ ฅํ•œ ๊ฐ’์ด BurpSuite๋ฅผ ํ†ตํ•ด ์ถœ๋ ฅ๋œ ๊ฒƒ์„ ํ™•์ธ ํ•  ์ˆ˜์žˆ๋‹ค.

 

๋ณธ ์‹ค์Šต์€ ๊ณ„์† BurpSuite๋ฅผ ์‚ฌ์šฉํ•˜๋ฏ€๋กœ off์ƒํƒœ๋กœ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š๊ณ  BurpSuite์— ์ ‘์†ํ•œ WebGoat๋ธŒ๋ผ์šฐ์ €์—์„œ ๋กœ๊ทธ์ธ ์ง„ํ–‰ํ•˜๋Š”๋ฐ, ์ž˜๋˜์ง€ ์•Š์„ ๊ฒฝ์šฐ on, off๋ฅผ ์™”๋‹ค๊ฐ”๋‹ค ํ•˜๋ฉด์„œ ํ•˜๋ฉด ๋œ๋‹ค.

 

์‹ค์Šต์„ ํ•˜๋ฉด์„œ ํ”„๋ก์‹œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ธ BurpSuite๋ฅผ ๊ฑฐ์นœ HTTP ์š”์ฒญ ๋ฐ ์‘๋‹ต ๊ธฐ๋ก์„ ๋ณด๊ธฐ์œ„ํ•ด HTTP history ํƒญ์œผ๋กœ ์ด๋™ํ–ˆ๋‹ค.

๊ทธ๋Ÿฌ๋ฉด ์š”์ฒญ ๋‚ด์šฉ์ค‘์— login๊ณผ ๊ด€๋ จํ•œ HTTPํ†ต์‹ ์„ ์ฐพ์„ ์ˆ˜ ์žˆ๋‹ค.

 

Request์˜์—ญ์˜ ์š”์ฒญ ๋‚ด์šฉ์„ ํ™•์ธํ•˜๋ฉด ์ž„์˜๋กœ ์ž…๋ ฅํ•œ ๊ฐ’์„ ํ™•์ธ ํ•  ์ˆ˜ ์žˆ๋‹ค.

๋˜ํ•œ Response์˜์—ญ์˜ HTTP ๊ธฐ๋ก์—์„œ Set-Cookie๋ผ๋Š” ์‘๋‹ต header๋ฅผ ๋ณผ์ˆ˜ ์žˆ๊ณ , hijack cookie๊ฐ’๋„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

 

Intruder๋ฅผ ์ด์šฉํ•œ ๊ณต๊ฒฉ ์‹œ๋„๋ฅผ ํ•˜๊ธฐ์œ„ํ•ด ์šฐํด๋ฆญํ•˜์—ฌ Send to Intruder๋ฅผ ์ง„ํ–‰ํ•œ๋‹ค.

 

์ดํ›„ Intruder ํƒญ์„ ํด๋ฆญํ•˜๊ณ  Positions์„ ์„ ํƒํ•ด์„œ ํŽ˜์ด๋กœ๋“œ Positions ํ™”๋ฉด์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

 

์ฐธ๊ณ ๋กœ  Intruder๋ž€ ์ž๋™ํ™” ๊ณต๊ฒฉ ๋„๊ตฌ๋กœ ๋™์ผํ•œ HTTP์š”์ฒญ์„ ์—ฌ๋Ÿฌ ๋ฒˆ ๋ฐ˜๋ณต์ ์œผ๋กœ ๋ณด๋‚ด๋Š” ๋ฌด์ฐจ๋ณ„ ๊ณต๊ฒฉ์„ ์ž์›ํ•˜๋Š”๋ฐ ํ•„์š” ์‹œ ์„ค์ •๋œ ์œ„์น˜์˜ ๊ฐ’์„ ๋ณ€๊ฒฝ๊ฐ€๋Šฅํ•œ ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค.

 

 

๋ฌด์ฐจ๋ณ„ ๊ณต๊ฒฉ ์‹œ ์„ค์ •ํ•œ ์œ„์น˜์˜ ๊ฐ’์„ ๋ณ€๊ฒฝํ•˜๊ธฐ ์œ„ํ•ด ์ดˆ๊ธฐํ™” ์ž‘์—…์„ ์ง„ํ–‰ํ•ด์ค€๋‹ค.

 

Intruder๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ๋ฌด์กฐ๊ฑด ๋ณ€๊ฒฝํ•  ๊ฐ’์˜ ์œ„์น˜๋ฅผ ์ง€์ •ํ•ด์ค˜์•ผํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ž„์˜๋กœ password ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ๋ณ€๊ฒฝํ•˜์—ฌ ๊ณต๊ฒฉ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.

 

passwordํŒŒ๋ผ๋ฏธํ„ฐ์— ๋Œ€์ž…๋œ ๊ฐ’์„ ๋“œ๋ž˜๊ทธํ•œ ํ›„ Add § ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜๋ฉด ๋“œ๋ž˜๊ทธํ•œ ๋ถ€๋ถ„์— ์ถ”๊ฐ€๋˜๋ฉด์„œ ์œ„์น˜๊ฐ€ ์ง€์ •๋œ๋‹ค.

- ๋“œ๋ž˜๊ทธํ•œ ๋ถ€๋ถ„์— §๊ฐ€ ์ถ”๊ฐ€๋˜๋ฉด์„œ ์œ„์น˜๊ฐ€ ์ง€์ •๋˜๋Š” ๊ฒƒ์ด๋‹ค.

 

์ดํ›„, Payloads, Payload sets, Payload settings, Number format ์˜์—ญ์„ ์•Œ๋งž๊ฒŒ ์ง€์ •ํ•˜์—ฌ ์ค€๋‹ค.

 

 

์‹ค์Šต์„ ์ง„ํ–‰ํ•˜๋ฉด, ์ •ํ•ด์ง„ ํฌ๊ธฐ๋งŒํผ ์ „์†ก๋œ ์š”์ฒญ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๊ณ , ํ†ต์‹ ์— ๋Œ€ํ•œ ์š”์ฒญ๊ณผ ์‘๋‹ต ๋‚ด์šฉ์„ ํ™•์ธ ํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ, 

'-'๊ธฐํ˜ธ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์•ž์— ์ˆซ์ž 1์ด ์ฆ๊ฐ€๋˜๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

์š”์ฒญ์„ ๋ณด๋‚ผ๋•Œ๋งˆ๋‹ค ์ˆซ์ž๊ฐ€ ํ•˜๋‚˜์”ฉ ์ฆ๊ฐ€ํ•œ๋‹ค๋Š” ์˜๋ฏธ์ด๋‹ค.

 

 

๊ทผ๋ฐ '-'๊ธฐํ˜ธ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ˆซ์ž 2๊ฐ€ ์ฆ๊ฐ€๋œ ๊ฒƒ์ด ์žˆ๋‹ค. ์ด๋Š” ๊ทธ ์š”์ฒญ ์‚ฌ์ด์— ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ์š”์ฒญ์„ ๋ณด๋ƒˆ๊ณ  ๊ทธ ์š”์ฒญ์— ๋Œ€ํ•œ hijack cookie ๊ฐ’์„ ํ• ๋‹น๋ฐ›์•˜์„ ๊ฑฐ๋ž€ ๊ฒƒ์„ ์˜๋ฏธํ•˜๋ฏ€๋กœ ๊ทธ๋ถ€๋ถ„์˜ ์‚ฌ์ด๊ฐ’๊ณผ ๊ณตํ†ต๋œ ๊ฐ’์„ ์œ ์ถ”ํ•œ๋‹ค.

๋‚˜๋Š” -์•ž์œผ๋กœ 3์ž๋ฆฌ๊ฐ€ 930์ด๋ผ๊ณ  ์ถ”์ธกํ•  ์ˆ˜ ์žˆ๊ณ , -๊ธฐ์ค€์œผ๋กœ ์˜ค๋ฅธ์ชฝ ๋งจ๋’ค ์ž๋ฆฌ๊ฐ€ 3์ž๋ฆฌ๋งŒ ๋ฐ”๋€Œ๊ณ  ์žˆ๋‹ค.

 

ํ•ด๋‹น ๋ถ€๋ถ„๋งŒ positions์œผ๋กœ ๊ฐ€์„œ ์„ค์ •ํ•ด์ฃผ๊ณ , payloads๋ฅผ ํ†ตํ•ด ๋‹ค์‹œ ๊ณต๊ฒฉ์„ ์ง„ํ–‰ํ•ด์ค€๋‹ค.

 

 

-----------------------+ ์ถ”๊ฐ€ ์‹ค์Šต ์‹คํ–‰------------------------(์ง€์†๋œ ์˜ค๋ฅ˜๋กœ WebGoat์‹คํ–‰์ด ์•„์˜ˆ์•ˆ๋๋Š”๋ฐ, ์ˆ˜์—…๋“ฃ๊ธฐ์ „์— ์ง€์†์ ์œผ๋กœ ์‹œ๋„ํ•ด์„œ ์„ฑ๊ณตํ•จ)

 

 

์‹ค์Šต์„ ์œ„ํ•ด ํฌํŠธ ๋ฒˆํ˜ธ๋ฅผ ๋ฐ”๊ฟจ๋‹ค.

 

 

์ธํ„ฐ์…‰ํŠธ๋ฅผ on์œผ๋กœ ๋‘๊ณ  ๋‚˜์„œ ํ•ด๋‹น ๋ฌธ์ œ๋ฅผ ๋“ค์–ด๊ฐ€์„œ login์„ testํ•ด๋ณด๋ฉด ํ•ด๋‹น ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด username๊ณผ password๊ฐ€ ๋ณด์ธ๋‹ค.

 

 

http history๋กœ ๊ฐ€๋ฉด webgoat hijacking๋ฌธ์ œ ๋กœ๊ทธ์ธ ์‹œ๋„์— ๊ด€ํ•œ ๊ธฐ๋ก์ด ๋‚จ์•„์žˆ๋Š”๋ฐ ์ด์™€ ๊ฐ™์ด request์™€ response๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๊ณ , ์ •์ƒ์ ์œผ๋กœ ์š”์ฒญ์ด ์‹คํ–‰๋œ ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

 

 

์ถ”๊ฐ€ ์‹ค์Šต ๋!!