## https://sploitus.com/exploit?id=KITPLOIT:TOOLS-GITHUB-TDWYER-POC_CVE-2017-3164_CVE-2017-1262
# Apache Solr Poc CVE-2017-3164 CVE-2017-12629
์ด ํด๋์๋ Apache Solr CVE-2017-3164 ๋ฐ CVE-2017-12629์ ๋ํ ์์ ์ต์คํ๋ก์์ด ํฌํจ๋์ด ์์ต๋๋ค.
๊ต์ก ๋ชฉ์ ์ผ๋ก๋ง, ๊ทธ๋ฆฌ๊ณ Apache Solr ์๋ฒ ์์ ์์ ์์ ํ ํ๊ฐ๋ฅผ ๋ฐ์ ์ฌ์ฉํด์ผ ํฉ๋๋ค.
Apache Solr ์๋ฒ์ IP ๋๋ DNS ์ด๋ฆ๊ณผ ์ปฌ๋ ์
์ด๋ฆ์ ์์์ผ ํฉ๋๋ค.
# CVE-2017-3164
Apache Solr ๋ฒ์ 1.3๋ถํฐ 7.6(ํฌํจ)์์ ์๋ฒ ์ธก ์์ฒญ ์์กฐ(SSRF) ์ทจ์ฝ์ ์ด ๋ฐ์ํฉ๋๋ค. "shards" ๋งค๊ฐ๋ณ์์ ํด๋นํ๋ ํ์ดํธ๋ฆฌ์คํธ ๋ฉ์ปค๋์ฆ์ด ์๊ธฐ ๋๋ฌธ์, ์๋ฒ์ ์ ๊ทผํ ์ ์๋ ์๊ฒฉ ๊ณต๊ฒฉ์๊ฐ Solr๊ฐ ๋๋ฌ ๊ฐ๋ฅํ ๋ชจ๋ URL์ HTTP GET ์์ฒญ์ ์ํํ๋๋ก ํ ์ ์์ต๋๋ค.
* * *
์ด SSRF๋ ๋งค์ฐ ๊ฐ๋ ฅํ๋ฐ, GET ์์ฒญ์ ๋ณด๋ด๊ธฐ๋ง ํ๋ฉด ๋์์ POST ์์ฒญ์ ๋ณด๋ด๊ธฐ ๋๋ฌธ์
๋๋ค. ๋ํ POST ์์ฒญ ๋ณธ๋ฌธ์ GET ์์ฒญ๊ณผ ํจ๊ป URL ๋งค๊ฐ๋ณ์๋ก ์ ๊ณตํ ์ ์์ต๋๋ค.
# CVE-2017-12629
Apache Solr 7.1 ์ด์ ๋ฒ์ ๊ณผ Apache Lucene 7.1 ์ด์ ๋ฒ์ ์์, XXE๋ฅผ ์
์ฉํ๊ณ Config API add-listener ๋ช
๋ น์ ์ฌ์ฉํ์ฌ RunExecutableListener ํด๋์ค์ ๋๋ฌํจ์ผ๋ก์จ ์๊ฒฉ ์ฝ๋ ์คํ์ด ๋ฐ์ํฉ๋๋ค. Elasticsearch๋ Lucene์ ์ฌ์ฉํ์ง๋ง ์ด ์ทจ์ฝ์ ์ ์ํฅ์ ๋ฐ์ง ์์ต๋๋ค. XML ์ธ๋ถ ์ํฐํฐ ํ์ฅ ์ทจ์ฝ์ ์ XML Query Parser์์ ๋ฐ์ํ๋ฉฐ, ๊ธฐ๋ณธ์ ์ผ๋ก deftype=xmlparser ๋งค๊ฐ๋ณ์๋ฅผ ์ฌ์ฉํ๋ ๋ชจ๋ ์ฟผ๋ฆฌ ์์ฒญ์ ๋ํด ์ฌ์ฉ ๊ฐ๋ฅํ๋ฉฐ, /upload ์์ฒญ ํธ๋ค๋ฌ๋ก ์
์ฑ ๋ฐ์ดํฐ๋ฅผ ์
๋ก๋ํ๊ฑฐ๋ ftp ๋ํผ๋ฅผ ์ฌ์ฉํ Blind XXE๋ก Solr ์๋ฒ์ ์์ ๋ก์ปฌ ํ์ผ์ ์ฝ๋ ๋ฐ ์
์ฉ๋ ์ ์์ต๋๋ค. ๋ํ ๋ ๋ฒ์งธ ์ทจ์ฝ์ ์ ์ํฅ์ ๋ฐ๋ ๋ชจ๋ Solr ๋ฒ์ ์์ ์ฌ์ฉ ๊ฐ๋ฅํ RunExecutableListener๋ฅผ ์ฌ์ฉํ ์๊ฒฉ ์ฝ๋ ์คํ๊ณผ ๊ด๋ จ์ด ์์ต๋๋ค.
* * *
์ ๋ ์ด RCE๋ฅผ ์
์ฉํ๊ธฐ๋ก ์ ํํ์ง๋ง, Apache Solr์๋ SSRF๋ก ์
์ฉํ ์ ์๋ ๋ง์ RCE ์ทจ์ฝ์ ์ด ์์ต๋๋ค. ๋ํ Solr ์๋ฒ๊ฐ ์ ๊ทผํ ์ ์๋ ๋ค๋ฅธ ์๋ฒ(์: Redis ๋ช
๋ น์ ์ ๊ณตํ๊ณ Redis ์๋ฒ์์ ๋ฆฌ๋ฒ์ค ์
ธ์ ํ๋)๋ ์ฝ๊ฒ ์
์ฉํ ์ ์์ต๋๋ค.
# exploit-javascript.html
์ด ํ์ผ์ ๊ณต์ฉ ์น ์๋ฒ์ ํธ์คํ
ํ ํ ๋์ ์ฌ์ฉ์์๊ฒ ์ด๋ฉ์ผ๋ก ๋ณด๋ผ ์ ์์ต๋๋ค. ๋์์ด ์นํ์ด์ง๋ฅผ ๋ก๋ํ๋ฉด JavaScript๊ฐ ์๋์ผ๋ก Apache Solr ์๋ฒ๋ฅผ ์ต์คํ๋ก์ํฉ๋๋ค.
ํฌํธ ๋ฒํธ๋ `?n=` URL ๋งค๊ฐ๋ณ์์ ์ ๊ณตํด์ผ ํฉ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ์ฌ๋ฌ ๋์์๊ฒ ์ด๋ฉ์ผ์ ๋ณด๋ด๊ณ ๊ฐ ๋์์ ๋ํด ๊ณ ์ ํ ๋ฆฌ์ค๋๋ฅผ ๊ฐ์ง ์ ์์ต๋๋ค.