728x90 ๐ดCTF/OWASP Juice Shop5 OWASP Juice Shop - Database Schema Exfiltrate the entire DB schema definition via SQL Injection. ์ง์ญํ๋ฉด SQL Injection์ ํตํ์ฌ DB ์คํค๋ง์ ์ ์์ด๋ฅผ ๊ฐ์ ธ์ค๋ผ๋ ์๋ฏธ์ด๋ค. SQLi๋ฅผ ์๋ํด ๋ณผ ์ ์๋ ๊ณต๊ฒฉ ๋ฒกํฐ๋ ํฌ๊ฒ ๋ก๊ทธ์ธ๊ณผ ์ํ ๊ฒ์ ๋ ๊ฐ์ง ์์ง๋ง ๋ก๊ทธ์ธ ๋ถ๋ถ์ ์ผ๋จ SQLi๋ฅผ ํตํด ์ํ๋ ๊ฒฐ๊ณผ๋ฅผ ๊ฐ์ ธ์ค์ง ๋ชปํ๋ฏ๋ก ์ผ๋จ ํจ์คํ์๋ค. (๊ทธ๋ฆฌ๊ณ ์ด๋ฐ ๋ฌธ์ ์ ํ์ ๊ณต๊ฒฉ ๋ฒกํฐ๋ ์ฃผ๋ก ๊ฒ์ ํ์ด์ง์ธ ๊ฒฝ์ฐ๊ฐ ๋ง์์๋ค.) ์ฃผ์ ์๋ ์๊ด ์์ง๋ง ๊ณ์ ํ์ด์ง์๋ ERROR BASED๋ฅผ ์ด์ฉํ๋ ๋ธ๋ผ์ธ๋ SQLi ๊ฐ๋ฅ์ฑ์ ์์๋ค. jim@juice-sh.op' AND CASE WHEN (select 1 from Users where email='jim@juice-sh.op') THEN 1.. 2023. 9. 29. OWASP Juice Shop - Login Admin (Injection) ๋ง์ผ ๋ก๊ทธ์ธ ์ฟผ๋ฆฌ๋ฌธ์ด ์๋์ ๊ฐ๋ค. SELECT * FROM Users WHERE email = '${req.body.email || ''}' AND password = '${security.hash(req.body.password || '')}' AND deletedAt IS NULL "admin@juice-sh.op' or '1'='1'--"๋ฅผ ์ ๋ ฅํ๋ค๋ฉด SELECT * FROM Users WHERE email = 'admin@juice-sh.op' or '1'='1'--' AND password = '${security.hash(req.body.password || '')}' AND deletedAt IS NULL ์ฟผ๋ฆฌ๋ฌธ์ ๊ฒฐ๊ณผ๊ฐ ์ฐธ์ด ๋๋ฉด์ ๋ก๊ทธ์ธ์ด ์ฑ๊ณตํ๋ค. 2023. 9. 27. OWASP Juice Shop - 100kB๋ณด๋ค ํฐ ํ์ผ์ ์ฌ๋ฆฌ์ธ์. (Improper Input Validation) ๋ค์๊ณผ ๊ฐ์ด ํฌ๊ธฐ ๋ณ๋ก ๋ค๋ฅธ ํ์ผ์ด ์๋ค. ๊ฐ์ฅ ํฐ ํ์ผ์ 120KB (122,880 ๋ฐ์ดํธ) ๊ฐ์ฅ ์์ ํ์ผ์ 1๋ฐ์ดํธ (1 ๋ฐ์ดํธ) ์ค๊ฐ์ 97.6KB (100,000 ๋ฐ์ดํธ) ํ์ผ ์ ๋ก๋๋ ์ต๋ 100 KB๊น์ง ๊ฐ๋ฅํ๋ฏ๋ก ๊ฐ์ฅ ํฐ ํ์ผ์ ์ฌ๋ฆฌ๋ฉด ์์ ๊ฐ์ ์ค๋ฅ๊ฐ ๋ฌ๋ค. ๊ฐ๋ฐ์ ๋๊ตฌ์ Console ํญ์ ํ์ธํ๋ฉด fileSize์ ๊ด๋ จ๋ ์ค๋ฅ๊ฐ ๋จ๊ฒ ๋๋ค. ํฌ๊ธฐ๊ฐ ํฐ ํ์ผ์ ์ฌ๋ฆฌ๋ฉด ์ ์ค๋ฅ ๋ฌธ๊ตฌ๊ฐ ๋จ์ง๋ง ๊ทธ๋ ์ง ์์ผ๋ฉด ๋จ์ง ์๋๋ค. ์ค๋ฅ ์์ธ ํ์ผ์ธ vendor.js๋ฅผ ํ์ธํ๋ฉด ํ์ผ์ ์ต๋ ์ฌ์ด์ฆ๋ฅผ ๋น๊ตํ๋ ๊ฒ ๊ฐ์ ํํฐ ํจ์ ๋ถ๋ถ์ด ๋ณด์ธ๋ค. ์ด๊ฑธ ๋ณด์์ ๋๋ ์ต๋ ํฌ๊ธฐ ์ฌ์ด์ฆ์ธ์ง ๊ฒ์ฆ์ ํด๋ผ์ด์ธํธ ์ธก์์ ํ๋ ๊ฒ์ผ๋ก ๋ณด์ธ๋ค. ๊ทธ๋ผ ์ ๋ถ๋ถ์ ์์ ํ๋ฉด 100 KB๊ฐ ๋๋ ํ์ผ๋ ์ฌ๋ ค ๋ณผ ์ ์์ง ์์.. 2023. 9. 27. OWASP Juice Shop - ์ํ ๋ฆฌ๋ทฐ ์กฐ์ (Broken Access Control) ๋ค์์ ํน์ ์ ํ์ ์ํํ์ ์์ฑํ๋ ํ๋ฉด์ด๋ค. ์์๋ก ์ํํ ๋ด์ฉ์ ์ ๊ณ ํ์ธ์ ๋๋ฅด๋ฉด ๋ฑ๋ก์ด ๋๋ ๊ตฌ์กฐ์ด๋ค. ํ์ด๋ก๋๋ฅผ ํ์ธํ๋ฉด author, message๋ฅผ ์ ๋ ฅ๋ฐ๋ ๊ฒ์ ๋ณผ ์ ์๋ค. ๋ฒํ์ค์ํธ๋ฅผ ์คํํด Interrupt๋ฅผ ๊ฑธ์ด ์๋์ ํ์ด๋ก๋ ์ค author๋ฅผ "admin@juice-sh.op"๋ก ์กฐ์ํ๋ค. ๋ฆฌ๋ทฐ๋ฅผ ํ์ธํ๋ฉด ์ค์ ๊ด๋ฆฌ์(admin@juice-sh.op)๊ฐ ๋ฆฌ๋ทฐ๋ฅผ ๋จ ๊ฒ์ฒ๋ผ ๋ชจ๋ฐฉํ ์ ์๋ค. OWASP TOP 10์ ๋ฑ์ฌ๋ ์ทจ์ฝํ ์ ๊ทผ ์ ์ด(Broken Access Control)์ ํ ์์ ๋ฌธ์ ๋ค. 2023. 9. 27. OWASP Juice Shop - ๋ฌธ์ํ๊ธฐ Captcha Bypass (Broken Anti Automation) ๋ฌธ์ํ๊ธฐ ํ์ด์ง(/contact) ๊ตฌ์ฑ๋ ์ฌ์ฉ์๋ก๋ถํฐ ํ์ ๊ณผ ๋๊ธ์ ์ ๋ ฅ๋ฐ๋๋ฐ ํ๋จ์ CAPTCHA ์ธ์ฆ์ด ํ์ํ๋ค. ์บก์ฑ ์์ฒญ REST API ๊ตฌ์กฐ (/rest/captcha/) ์๋ฒ์์ ๋ฏธ๋ฆฌ ์บก์ฑ ๋ฅผ ์์ฑํ๋ SSR ๋ฐฉ์์ด ์๋ ํด๋ผ์ด์ธํธ๊ฐ ํ์ด์ง์ ๋ค์ด์ค๋ฉด ์บก์ฑ ๋ฅผ ์์ฒญํ๋ CSR ๋ฐฉ์์์ ์ ์ ์๋ค. ๋ฐ๋ผ์ ํด๋ผ์ด์ธํธ๊ฐ "http://localhost:3000/rest/captcha/"๋ก GET์ ์์ฒญํ๋ฉด ๋ค์๊ณผ ๊ฐ์ ์๋ต์ด ์จ๋ค. {"captchaId":38,"captcha":"8*8-5","answer":"59"} ๋ณด๋ค์ํผ ์บก์ฑ ์์ด๋, ๋ฌธ์ , ์ ๋ต์ด ๊ทธ๋๋ก ์ ๋ฌ์ด ๋๋ค. ์บก์ฑ ๊ฒ์ฆ REST API ๊ตฌ์กฐ (/api/Feedbacks/) ์ฌ์ฉ์๊ฐ ์บก์ฑ ๋ฅผ ํ๊ณ ์๋ฒ๋ก๋ถํฐ ์์ฒญ์ ํ ๋๋ "http:.. 2023. 9. 27. ์ด์ 1 ๋ค์ 728x90