์ทจ์ฝ์ ์๊ฐ
์กฐ์๋ XPath(XML Path Language) ์ฟผ๋ฆฌ๋ฅผ ๋ณด๋์ผ๋ก์จ ๋น์ ์์ ๋ฐ์ดํฐ๋ฅผ ์ด๋ํ ์ ์๋ ์ทจ์ฝ์
→ XPath: XML ๋ฌธ์๋ ํน์ ์์-์์ฑ์ ์ ๊ทผํ๊ธฐ ์ํ ๊ฒฝ๋ก ์ง์ ์ธ์ด๋ก XPath ๊ฒฝ๋ก์์ ์ด์ฉํ์ฌ ๋ ธ๋ ํ์์ผ๋ก ์ ๊ทผ
→ XML ๋ฐ์ดํฐ ์ฒ๋ฆฌ(XML ๋ฌธ์ ๊ฒ์ํ๋ ํ๊ฒฝ), XML DB(XML ํ์์ผ๋ก ์ ์ฅ ๊ด๋ฆฌํ๋ ํ๊ฒฝ), ...์์ ๋ฐ์ ๊ฐ๋ฅ์ฑ
ํ๋จ ๊ธฐ์ค
XPath ์ฟผ๋ฆฌ๊ฐ ์คํ๋์ด ๋ถํ์ํ ๋ฐ์ดํฐ๊ฐ ๋ ธ์ถ๋ ๊ฒฝ์ฐ
์ ๊ฒ ์ฌ๋ก
- ' and 'a' = 'a , ' and 'a' = 'b, ' and 1=1, ' and 1=2, ... ๊ฐ ์ฝ์ ํ์ฌ ์ฐธ, ๊ฑฐ์ง์ ๋ฐํ๋๋ ํ์ด์ง๊ฐ ๋ค๋ฅธ์ง ํ์ธ
- ' or count(parent::*[position()=1])=0 or 'a'='b, ' or count(parent::*[position()=1])>0 or 'a'='b, 1 or count(parent::*[position()=1])=0, 1 or count(parent::*[position()=1])>0
ex) ๋ถ๋ชจ๋ ธ๋ ์ด๋ฆ์ ๊ธธ์ด ๋ฐํ ({ }๋ ์์ ์ซ์)
?login=neo' and string-length(name(parent::*))={} or 1=2 or '&password=&form=submit
ex) ๋ถ๋ชจ๋ ธ๋ ์ด๋ฆ ํ์ธ
?login=neo' and substring(name([parent::*),{},='{}' or 1=2 or '&password=&form=submit
ex) ์์๋ ธ๋ ์ด๋ฆ ํ์ธ
' and substring(name(child::*[position()={}]))={} or 1=2 or '
๋ณด์ ์ค์
- XPath ์ฟผ๋ฆฌ ํน์๋ฌธ์ ํํฐ๋ง์ Server Side ๋จ์์ ์ฒ๋ฆฌํ๊ณ , ๋๋๋ก ํ์ฉ๋ ๋ฌธ์ ์ด์ธ์ ์ ๋ ฅ์ด ํ์ฉ๋์ง ์๋๋ก ์ ์ฉ ํ์
- ...
'์ทจ์ฝ์ ๋ถ์ ๊ธฐ์ค > WEB' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
09. ์ ๋ณด ๋์ถ (0) | 2024.05.12 |
---|---|
08. ๋๋ ํฐ๋ฆฌ ์ธ๋ฑ์ฑ (0) | 2024.05.12 |
06. SSI ์ธ์ ์ (0) | 2024.05.12 |
04. ์ด์์ฒด์ ๋ช ๋ น ์คํ (0) | 2024.05.12 |
03. LDAP ์ธ์ ์ (0) | 2024.05.12 |