ํฐ์คํ ๋ฆฌ ๋ทฐ
๊ฐ์
์ต๊ทผ ์นจํด์ฌ๊ณ ๋ํฅ(2021 OWASPํฌํจ)์ ์ ์ฌํ ๋ณด์๋ฉด ์ด๋ค ๋ฌธ์ ๋ก ๋ฏผ๊ฐํ ์ ๋ณด๊ฐ ์ ์ถ์ด ๋๋์ง ์ถ์ธกํ ์ ์์ต๋๋ค. ๋ํ์ ์ผ๋ก ์๋ํฌ์ธํธ(End-Point)์ ๋ํ ๋ณด์์ด ์ ๋๋ก ๊ฐ์ถฐ์ ธ์์ง ์์ ์ํ๋ก ์๋น์ค๊ฐ ์ ๊ณต๋์ด ๊ณต๊ฒฉ์๋ค์ด ์ด๋ฅผ ์ ์ฉํ์ฌ ํ๋ฉด์ ์ ๊ทผํ ์ ์๋ ์์ญ์ ๋ฌด๋จ์ผ๋ก ์ง์ ์ ๊ทผ ์ฌ๋ก๊ฐ ๋ค์ ๋ฐ์ํ๊ณ ์์ต๋๋ค.
์ฐ์ API ๋ "Application Programming Interface"์ ์ฝ์๋ก ์น์ดํ๋ฆฌ์ผ์ด์ ์์ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๊ณ ์ด๋ฅผ ์ด๋ค ๋ฐฉ์์ผ๋ก ์์ฒญํ๊ณ ์ฒ๋ฆฌํ ์ง์ ๋ํด ๊ท๊ฒฉ์ ์ ํด๋์ ์ธํฐํ์ด์ค๋ผ๊ณ ๋ณด์๋ฉด ๋ฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ API ์ ์ก์๋ 2๊ฐ์ง์ ๋ฐฉ์์ด ์กด์ฌํฉ๋๋ค.(SOAP/REST) REST๋ฐฉ์์ "JSON"๋ฐฉ์์ ํตํด ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๊ธฐ์ SOAP๋ณด๋ค ์๋๋ฉด์์ ์ข ๋ ์ฐ์๋ฅผ ์์๊ธฐ์ ์ฌ์ฉ๋น๋๊ฐ ๋์ต๋๋ค.
์คํ์์ค์ธ ์ํ๋์์ ํ๋ซํผ์ ๊ฒฝ์ฐ์๋ ์ด๋ฌํ ์ทจ์ฝ์ ์์ต๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ์คํ์์ค ํํ๋ก ์ ๊ณต์ด ๋๋ ํ๋ซํผ์ ์ก์ธ์ค ์ ๊ทผ์ด ๋ฏธํกํ End-Point ์์ญ์ ์๋ณํ๊ธฐ๋ ๊ทธ๋ฆฌ ์ด๋ ค์ด ๋ฌธ์ ๋(Fuzzing or IDEA ๋๋ฒ๊น ) ์๋๊ธฐ ๋๋ฌธ์ ์์ฃผ ๊ณต๊ฐ๋๋ ๊ฒ ๊ฐ์ต๋๋ค.
Group and User Picker(CVE-2019-8449)
์ํ๋์์ ์ง๋ผ์ 8.4.0 ์ด์ ๋ฒ์ ์ ์ฌ์ฉํ ๊ฒฝ์ฐ ์๋ํฌ์ธํธ์ธ /rest/api/latest/groupuserpicker ๋ฆฌ์์ค๋ฅผ ํตํด ์๊ฒฉ์์ ๊ณต๊ฒฉ์๊ฐ ์ฌ์ฉ์ ์ด๋ฆ์ ์ด๊ฑฐํ ์ ์๋ ์ทจ์ฝ์ ์ ๋๋ค.
์ทจ์ฝ์ ์ ํ ์คํธํ๊ธฐ ์ ์ ํด๋นํ๋ ๋ฒ์ ์ธ์ง ์ ๋ณด์์ง์ด ํ์ํฉ๋๋ค. ํ์ด์ง ์ ์ผ ํ๋จ ๋ผ์ด์ ์ค ์์ญ์ ๋ณด์๊ฑฐ๋ HTML ์ฝ๋ ๋ด๋ถ๋ฅผ ํ์ธํ์๋ฉด ๋ฉ๋๋ค.
HTML์ฝ๋๋ฅผ ์ดํด๋ณด๋ค ๋ณด๋ฉด /rest/api/ ์ ์์น๊ฐ ํ์ธ๋ฉ๋๋ค. 1.0 ์ดํ๋ถํฐ๋ ์๋ ์ฃผ์๊ณ ์ ์ผ ์๋จ /rest/api๋ ์ ๋ ๊ฒฝ๋ก์ธ ๊ฒ์ผ๋ก ์ถ์ธก๋ฉ๋๋ค.
์ํ๋์์ ๋ฟ๋ง ์๋๋ผ ๋๋ถ๋ถ์ ๊ธฐ์ ์์ ์คํ API๋ฅผ ์ ๊ณตํ๊ณ ์์ต๋๋ค. ๋ฆฌ์์ค์ ๋ฐ๋ฅธ API ๊ธฐ๋ฅ์ ํ์ธํ๊ณ ์ถ์ผ์๋ฉด ๋ณดํต ๊ฐ๋ฐ์๋ค์ด ํ์ธํ ์ ์๋ developer ์ฌ์ดํธ์ ๋ช ์๋์ด ์์ต๋๋ค.
/rest/api/ ์ ๊ด๋ จ๋ ๊ธฐ๋ฅ๋ค์ ์ดํด๋ณด๋ค๊ฐ ์ฌ์ฉ์์ ์ด๋ฆ๊ณผ ํด๋นํ๋ ๊ทธ๋ฃน์ ํ์ธํ ์ ์๋ ๋ฆฌ์์ค๊ฐ ์กด์ฌํฉ๋๋ค. "groupuserpick"์ ๋ฆฌ์์ค์๋ ์ด๋ฆ๊ณผ ํ๋กํ, ์ด๋ฉ์ผ ๋ฑ ์ธ๋ถ์ ๋ ธ์ถ๋์ง ๋ง์์ผ ํ ์ ๋ณด๋ค์ด ํฌํจ๋ผ์์ง๋ง ์ด๊ฒ ์คํํํ์ API๋ผ๋ ์ ์์ ์ทจ์ฝํฉ๋๋ค.
groupuserpicker ๋ฆฌ์์ค์ ๋ํ ์ฟผ๋ฆฌํธ์ถ ๋ฐฉ๋ฒ์ ๋๋ค. /rest/api/ ์ groupuserpicke๋ ์ ๋ ์ฃผ์์ด๋ฉฐ ์ฌ์ด์ ๋ฒ์ ์ผ๋ก ํ์ธ๋๋ ์ซ์๋ ์๋์ ์ธ ์ฃผ์์ ๋๋ค. ๋ง์ฝ ์๋ ์ฃผ์๋ฅผ ์๊ธฐ๊ฐ ์ด๋ ต๋ค๋ฉด ๊ฐ๋ฐ ํ์ด์ง๋ฅผ ์ข ๋ ๋ค์ ธ๋ณด์๊ฑฐ๋ ์๋๋ฉด GHDB ํค์๋๋ฅผ ํตํด ์ธ๋ถ์ ์กด์ฌํ๋ ๋ชจ๋ ์ฌ์ดํธ๋ค์ ์ฐธ๊ณ ํ์๋ฉด ์ถ์ธก์ด ๊ฐ๋ฅํ์๊ฒ ์ฃ
์ด์ ๊ณต๊ฒฉ์์ ์ ์ฅ์์ ํ ์คํธ๋ฅผ ํด๋ณด๊ฒ ์ต๋๋ค. ํ๋ฉด์์๋ ๋น์ฐํ ๋ฏผ๊ฐํ ์ ๋ณด๋ฅผ ์ ๋ฌํ๋ End-Point์์ญ์ ๋ ธ์ถ๋์ง ์์ต๋๋ค. ๋ง์ฝ ์ฟผ๋ฆฌ์ ๋ฌ ๋ฐฉ์์ด๋ฉด ํ๋ก์๋ฅผ ํตํด FORMํํ๋ก ์ ๋ฌํ๋ฉด ๋๊ฒ ์ง๋ง GET๋ฐฉ์์ ์ฌ์ฉํ๊ธฐ์ URL ์ง์ ์ ๊ทผ์ด ๊ฐ๋ฅํฉ๋๋ค.
์ฐ์ ์ ์ผ๋ก ์๋ํฌ์ธํธ์ ์ ๊ทผ์ด ๊ฐ๋ฅํ์ง ๋งค๊ฐ๋ณ์๋ฅผ ์ ์ธํ๊ณ ์ ๊ทผํด๋ดค์ต๋๋ค.์ฌ์ฉ์์ ์ด๋ฆ์ ์ ๋ ฅํด์ผ ๋๋ ํ๋ผ๋ฏธํฐ(query)๊ฐ ์กด์ฌํ์ง ์์ ์๋ฌ๊ฐ ๋ฐ์ํ๋ค๋ ๊ฒ์ผ๋ก ๋ณด์ ์๊ฒฉ์ง์์ ํธ์ถ์ด ๊ฐ๋ฅํ ๊ฒ์ผ๋ก ๋ณด์ ๋๋ค.
http://atlassian.com/rest/api/latest/groupuserpicker?query={Username}
์์ ์ฌ์ฉ์ ์ด๋ฆ ์ฟผ๋ฆฌ ํ๋ผ๋ฏธํฐ์ ๋ด์ ์ ์กํด๋ณด๋ฉด ์ฌ์ฉ์์ ์ด๋ฆ๊ณผ ์์ํ ๊ทธ๋ฃน, ์ด๋ฉ์ผ ๋ฑ ์ ์ถํ ์ ์๋ ์ถ๊ฐ์ ๋ณด๋ค์ json ํ์์ผ๋ก ์ด๊ฑฐํ์ฌ ๋ธ๋ผ์ฐ์ ํ๋ฉด์ ๋ํ๋ด ์ฃผ๊ณ ์์ต๋๋ค. ๋ง์ฝ ์กด์ฌํ์ง ์๋ ์ฌ์ฉ์์ ์ด๋ฆ์ ์ด๊ฑฐํ ๊ฒฝ์ฐ ์์ฒ๋ผ ๋น๊ณต๋ ๋๋ "0"์ ๋ฐํํ๊ฒ ๋ฉ๋๋ค.
์ ํจํ ๊ณ์ ์ผ๋ก ํธ์ถ์ ํด๋ณด๋ฉด ๋ฑ๋ก๋ ์ ๋ณด๋ค์ ์ถ๋ ฅํด์ฃผ๊ฒ ๋ฉ๋๋ค. ์ด๋ฅผ ํ ๋๋ก ์ง์ ์ ์ผ๋ก ๋ฐ๋ก ์ํฅ์ด ๋ฐ์ํ์ง ์์ง๋ง ํ๋ํ ID, Email์ ํตํ ํจ์ค์๋ BruteForce, ํผ์ฑ ์ด๋ฉ์ผ ๋ฐ์ก ๋ฑ ์ฌ๋ฌ ์๋๋ฆฌ์ค์ ์ธ ์นจํฌ ๊ณต๊ฒฉ์ ์ข์ ๋ฐ๊ฑฐ๋ฆ์ด ๋ ๊ฐ๋ฅ์ฑ์ด ์์ต๋๋ค.
Burp์ ์ธํธ๋ฃจ๋๊ธฐ๋ฅ์ ์ด์ฉํ๊ฑฐ๋ Python ์๋ํ๋ฅผ ์งํํ๋ฉด ์ ํจํ ๊ณ์ ๋ค์ ์ถ์ธกํ ์ ์์ต๋๋ค. ์๋ขฐ๋ฐ์ ์ฌ์ดํธ๋ฅผ ๋์์ผ๋ก ํ์ธํด๋ณด๋ guleum ๋๋ GULEUM, ZONE, administrator ๋นผ๊ณ ๋ ๋ชจ๋ ์ ํจํ ๊ณ์ ๋ค๋ก ํ์ธ๋ฉ๋๋ค.
Username Enumerator/Validator(CVE-2020-14181)
Atlassian Jira ์๋ฒ ๋ฐ Data Center์์ ์ธ์ฆ๋์ง ์์ ์ฌ์ฉ์๊ฐ /ViewUserHover.jspa ์๋ํฌ์ธํธ์ ์ ๋ณด ๊ณต๊ฐ ์ทจ์ฝ์ ์ ์ ์ฉํ์ฌ ์กด์ฌํ๋ ์ฌ์์๋ค์ ์ด๊ฑฐํ ์ ์๋ ์ทจ์ฝ์ ์ ๋๋ค.
<์ทจ์ฝํ ๋ฒ์ >
7.13.6 ์ด์
8.0.0 ~ 8.5.7 ์ด์
8.6.0 ~ 8.12.0 ์ด์
์ํ๋ผ์์์ ๋ฒ์ ์ ์๋ณํ์ฌ ์ทจ์ฝ์ ์ด ์กด์ฌํ๋ ๋ฒ์ ์ธ์ง ์๋์ง๋ฅผ 1์ฐจ์ ์ผ๋ก ํ์ธํฉ๋๋ค. ํ์ฌ ๋ฒ์ ์ 7.0.4๋ก ์ทจ์ฝ์ ์ ๋ ธ์ถ์ด๋์ด ์๋ ๋ฒ์ ์ ์ฌ์ฉํ๊ณ ์์ต๋๋ค.
๋ง์ฝ ๊ณต๊ฒฉ๋ฒกํฐ๋ฅผ ๊ณต๊ฐํ์ง ์์์ ๊ฒฝ์ฐ์๋ Github์ ์ฌ๋ ค์ง ๊ณต๊ฒฉ์ฝ๋๋ฅผ ๋ณด์๊ฑฐ๋ EPDB(Exploit DataBase) ์ชฝ์ ์ฐพ์๋ณด์๋ฉด ๋์์ด ๋ฉ๋๋ค. ํ์ฌ ๊ณต๊ฒฉ ๋ฒกํฐ ๋ /secure/ViewUserHover.jsp์ด๋ฉฐ ๋งค๊ฐ๋ณ์๋ "username"์ ์ฌ์ฉํ์ฌ ๋ฆฌ์์ค๋ฅผ ์ฒญํฉ๋๋ค.
๋ก๊ทธ์ธ์ด ์ํ๋์ง ์์ ๊ณต๊ฒฉ์ ํ๊ฒฝ์์ URL ์ง์ ์ ๊ทผ์ ํด๋ณด์๋ฉด ์์ ๊ฐ์ ์๋ฌธ์ ๋งํฌ๊ฐ ํ์๋ฉ๋๋ค. ์ฌ๊ฐํ ์์ญ์ผ๋ก ๋ณด์ ์ฌ์ฉ์์ ํ๋กํ์ด ์ถ๋ ฅ๋๋ ์์ญ์ผ๋ก ํ๋จ๋ฉ๋๋ค.
์ ํจํ ์ฌ์ฉ์๋ฅผ ํธ์ถํด๋ณด๋ฉด ์์ ๊ฐ์ด ๋ค์ด๋ฐ์ด ๋งค์นญ๋์ด ๊ทธ์ ๋ฐ๋ฅธ ์ ๋ณด๋ฅผ ํ๋ฉด์ ์ถ๋ ฅํด์ฃผ๊ฒ ๋ฉ๋๋ค. ์ด๋ฌํ ํธ์ถ ๋ฐฉ์์ ์คํ ํํ์ด๋ฉฐ ์ฌ์ ์ ๋ก๊ทธ์ธ ์์ ์ด ํ์ ์๊ธฐ ๋๋ฌธ์ ์ธ๋ถ์ ๊ณต๊ฒฉ์๊ฐ ๋ฌด๋จ์ผ๋ก ์์ฒญํ ๊ฐ๋ฅ์ฑ์ด ๋์ต๋๋ค.
์ ํจํ ์ฌ์ฉ์์ ์๋ ์ฌ์ฉ์์ ์ฐจ์ด์ ์ ํ์ธํ๊ธฐ ์ํด ํ์ผํํ๋ก ์ ์ฅํด๋ณด๊ฒ ์ต๋๋ค.
์์ฒ๋ผ ์กด์ฌํ๋ ์ฌ์ฉ์์ผ ๊ฒฝ์ฐ <div class="user-hover-details"> ์์ญ์ ํ๋กํ ๋งํฌ๊ฐ ๋ด๊ธฐ๊ฒ ๋๊ณ ์๋ ๊ฒฝ์ฐ์๋ "User does not exists:"๋ฅผ ์ถ๋ ฅํ๊ฒ ๋ฉ๋๋ค. ์ด๋ฌํ ์ฐจ์ด์ ์ด ๋ช ํํ ๊ฒฝ์ฐ์๋ ์๋ํ ๊ณต๊ฒฉ์ ์ํํ์ฌ ๋ด๋ถ์ ์กด์ฌํ๋ ๋ค์์ ์ฌ์ฉ์๋ค์ ์ด๊ฑฐํ ์ ์์ต๋๋ค.
ํ ์คํธ๋ฅผ ์งํํ๊ธฐ ์ํด ์ฝ 27๋ช ์ ์ฌ์ฉ์ ๋ฆฌ์คํธ๋ค์ ๋ง๋ค์ด๋๊ฒ ์ต๋๋ค.
username ๋ณ์์ ์ฌ์ฉ์ ์ด๋ฆ์ ๋ด์ ํ๋์ฉ ์์ฒญํ์ฌ <a id="avatar-full-name-link ๊ฐ ์กด์ฌํ ๊ฒฝ์ฐ ์ ํจํ ์ฌ์ฉ์๋ก ํ๋จํ์ฌ ์์ฒ๋ผ ์ฝ์์ ๋ํ๋๊ฒ ๋ฉ๋๋ค. ์๋ํ์ฝ๋๋ ์๋์ ์ฃผ์๋ฅผ ์ฐธ๊ณ ํ์๋ฉด ๋ฉ๋๋ค.
https://raw.githubusercontent.com/Rival420/CVE-2020-14181/main/cve-2020-1481.py
๋์๋ฐฉ์
<Group and User Picker>
ํด๋น ์ทจ์ฝ์ ์ ์๋ฐฉํ๊ธฐ์ํด 8.4.0 ์ด์์ ๋ฒ์ ์ผ๋ก ์ ๋ฐ์ดํธ ํ๋๊ฒ์ด ์ข์ง๋ง ๋ง์ฝ ํจ์น๊ฐ ๋ถ๊ฐ๋ฅํ ์ํฉ์ด๋ผ๋ฉด ํด๋น ์๋ํฌ์ธํธ์ ์ ๊ทผ ์ ํฐ์บฃ์์ 403(Forbidden)์ ๋ฐํํ๋๋ก ์ฐจ๋จํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
<jira-installation-directory>/atlassian-jira/WEB-INF/urlrewrite.xml ํ์ผ์ ์๋์ ์ฝ๋ ์ถ๊ฐ
<rule>
<condition type="session-attribute" name="seraph_defaultauthenticator_user" operator="notequal">. </condition>
<from>^(?s)/rest/api/.*/groupuserpicker</from> //์๋ํฌ์ธํธ ์ง์
<set type="status">403</set> <to>null</to>
</rule>
Result --> ๋ณด์ํจ์น๊ฐ ์งํ๋ ๋ฒ์ ์์ ์์ ๊ณต๊ฒฉ์ ์์ฐํ ๊ฒฝ์ฐ ์๋ต ๋ฐ๋์ ์๋์ ๋ฉ์์ง๊ฐ ์ถ๋ ฅ๋๋ฉด์ ์ก์ธ์ค ๋ถ๊ฐ You are not authenticated. Authentication required to perform this operation.
<Username Enumerator/Validator>
์์ ๋ ๋ฒ์ ์ผ๋ก ์ ๋ฐ์ดํธํ๊ฑฐ๋ urlrewrite.xml์ ์๋ํฌ์ธํธ ์ง์ ํ์ฌ ์ ๊ทผ์ด ๋ถ๊ฐ๋ฅํ๋๋ก ์ค์
7.13.16
8.5.7
8.12.0
'WEB' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Log4j ์ทจ์ฝ์ (CVE-2021-44228) (0) | 2021.12.23 |
---|---|
Atlassian RCE ์ทจ์ฝ์ (0) | 2021.09.12 |
Atlassian XSS ์ทจ์ฝ์ (0) | 2021.09.10 |
phpMyAdmin ์ทจ์ฝ์ ์ ์ฉ (0) | 2021.08.23 |
Subdomain Takeover ์ทจ์ฝ์ (0) | 2021.04.18 |