๋ฌธ์ ํ์ด๋ฅผ ์ํด ์ฐธ๊ณ ํ ๊ธ: https://dohunny.tistory.com/7, https://power-girl0-0.tistory.com/233
๋ฌธ์ ํ๋ฉด.
์ฝ๋๋ฅผ ์ดํด๋ณด๋ฉด ์ฒซ ๋ฒ์งธ ์ฃผ์ํ ์
์ด ๋ถ๋ถ์ธ๋ฐ...
preg_match ๋ PHP4, 5, 7์์ ์ง์ํ๋ ํจ์๋ก, ์ ๊ทํํ์ ์ค ํ๋์ด๋ฉฐ ์ง์ ํ ํจํด์ด ์ผ์นํ๋ฉด, ๊ฒ์ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํด์ฃผ๋ ํจ์์ด๋ค.
์ฆ, ํด๋น ํ์ด์ง๋ preg_matchํจ์๋ฅผ ์ด์ฉํ์ฌ ' (์ฑ๊ธ ์ฟผํฐ), " (๋๋ธ ์ฟผํฐ), \(๋ฐฑ ์ฟผํฐ) ๋ฅผ ํํฐ๋งํ๊ณ ์๋ค.
๋ท ๋ถ๋ถ์ No Quotes์ ์๋ฏธ๋ ์ฟผํฐ๋ฅผ ์ฌ์ฉํ์ง ๋ง๋ผ๋ ์๋ฏธ์ธ ๊ฒ์ด๋ค.
๋ ๋ฒ ์งธ๋ก ์ฃผ์ํ ์
์ด์ ๋ฌธ์ ๋ค์ฒ๋ผ id๊ฐ admin์ผ ๋ ๋ฌธ์ ๋ฅผ ํ ์ ์๋ค.
์ธ ๋ฒ ์งธ ์ฃผ์ํ ์
id๋ guest๋ก ์ง์ ๋์ด ์์ผ๋ฉฐ no๋ง ์
๋ ฅ๋ฐ์ ์ค๋ ๊ฒ์ ์ ์ ์๋ค.
๋ฐ๋ผ์, id๋ฅผ guest๊ฐ ์๋ admin์ผ๋ก ๋ฃ์ด์ผ ๋ฌธ์ ๋ฅผ ํด๋ฆฌ์ดํ ์ ์๋ค.
์ฐ์ no=1์ ๋์ ํด๋ณด์๋ค.
hello guest๊ฐ ์ถ๋ ฅ๋๋ค.
๋ค์์ผ๋ก, no=2์ no=0์ ๋์ ํด๋ณด์๋ค.
์๋ฌด๊ฒ๋ ์คํ๋์ง ์๋๋ค.
id='guest' and no=1 ์ ํด๋นํ๋ ๊ฐ์ด guest๋ผ๋ ์ฌ์ค๋ง์ ์์๋ผ ์ ์์๋ค.
OR์ ์ด์ฉํด์ id ์ admin์ ์ ๋ ฅํด๋ณด๋๋ก ํ์.
OR ์ฐ์ฐ์๋ ๋ ์ค ํ๋๋ง ์ฐธ์ด์ด๋ TRUE๋ก ๋์จ๋ค.
ํด๋น ์๋ฆฌ๋ฅผ ์ด์ฉํ๋ฉด id='guest' and no=0์ ๊ฑฐ์ง(False)์ผ๋ก ๋ง๋ค๊ณ id=admin์ ์ฐธ(True)์ผ๋ก ๋ง๋ค ์ ์๋ค.
๊ทธ๋ฐ๋ฐ ์ฟผํฐ๋ฅผ ์ฌ์ฉํ ์ ์๋ค.
์ด๋ฅผ ํด๊ฒฐํ ๋ฐฉ๋ฒ์ ๋ ๊ฐ์ง๊ฐ ์๋ค.
์ฒซ ๋ฒ์งธ ๋ฐฉ๋ฒ: char( )ํจ์๋ฅผ ์ด์ฉํ์ฌ ๊ฐ์ ๋ฃ์ด์ค๋ค.
char() ํจ์๋ MySQL์์ ์ฌ์ฉ๋๋ ํจ์๋ก, ์ฃผ์ด์ง ASCII ์ฝ๋์ ํด๋นํ๋ ๋ฌธ์๋ฅผ ๋ฐํํ๋ค.
์๋ฅผ ๋ค์ด, char(65)์ ASCII ์ฝ๋๊ฐ 65์ธ ๋๋ฌธ์ 'A'๋ฅผ ๋ฐํํฉ๋๋ค.
์ด ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ๋ฌธ์์ด์ ์ ๋ ฅํ ๋, ์์ ๋ฐ์ดํ๋ ํฐ ๋ฐ์ดํ๋ฅผ ์ฌ์ฉํ์ง ์๊ณ ๋ ๊ฐ๋ฅํ๋ค.
์๋ฅผ ๋ค์ด, "Hello"๋ผ๋ ๋ฌธ์์ด์ char() ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ์ ๋ ฅํ๋ ค๋ฉด:
SELECT CHAR(72, 101, 108, 108, 111);
์์ SQL ๋ฌธ์ ASCII ์ฝ๋ 72๋ 'H', 101์ 'e', 108์ 'l', 111์ 'o'์ ํด๋นํ๋ฏ๋ก, ๊ฒฐ๊ณผ๋ "Hello"๊ฐ ๋๋ค.
์ด ๋ฐฉ๋ฒ์ ์์ ๋ฐ์ดํ๋ ํฐ ๋ฐ์ดํ๋ฅผ ์ฌ์ฉํ๊ธฐ ์ด๋ ค์ด ์ํฉ์์ ๋ฌธ์์ด์ ์์ฑํ ๋ ์ ์ฉํ ์ ์๋ค.
๋ฌธ์ ์ ์ด๋ฌํ char() ํจ์์ ํน์ง์ ์ ์ฉํ์ฌ
? no=0 or id=char(97,100,109,105,110)
์ ๊ฐ์ด ์ ๋ ฅํด์ฃผ๋ฉด ๋ฌธ์ ๊ฐ ํ๋ฆฐ๋ค.
๋ ๋ฒ์งธ ๋ฐฉ๋ฒ: ๋ฌธ์์ด์ 16์ง์๋ก ๋ณํํ์ฌ ๋ํ๋ด๊ธฐ.
"admin"์ด๋ผ๋ ๋ฌธ์์ด์ 16์ง์๋ก ๋ํ๋ด๋ ค๋ฉด ๊ฐ ๋ฌธ์๋ฅผ 16์ง์ ๊ฐ์ผ๋ก ๋ณํํด์ผ ํ๋ค.
ASCII ์ฝ๋๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ ๋ฌธ์๋ฅผ 16์ง์๋ก ๋ณํํ ์ ์๋ค.
"admin" ๋ฌธ์์ด์ ASCII ์ฝ๋๋ก ๋ณํํ๋ฉด ๋ค์๊ณผ ๊ฐ๋ค:
- 'a'๋ ASCII ์ฝ๋๋ก 97์ด๋ฉฐ, 16์ง์๋ก๋ 0x61
- 'd'๋ ASCII ์ฝ๋๋ก 100์ด๋ฉฐ, 16์ง์๋ก๋ 0x64
- 'm'์ ASCII ์ฝ๋๋ก 109์ด๋ฉฐ, 16์ง์๋ก๋ 0x6D
- 'i'๋ ASCII ์ฝ๋๋ก 105์ด๋ฉฐ, 16์ง์๋ก๋ 0x69
- 'n'์ ASCII ์ฝ๋๋ก 110์ด๋ฉฐ, 16์ง์๋ก๋ 0x6E
๋ฐ๋ผ์ "admin"์ 16์ง์๋ก ๋ณํํ๋ฉด ๊ฐ ๋ฌธ์์ 16์ง์ ๊ฐ๋ค์ ์ฐ๊ฒฐํ์ฌ "0x61646D696E"์ด ๋๋ค.
(์ฌ๊ธฐ์ ๋งจ ์์ "0x"๋ 16์ง์๋ฅผ ๋ํ๋ด๋ ํ์)
์ด์ ์ด ๊ฐ์ ์ฌ์ฉํ์ฌ ํ๋ก๊ทธ๋จ์ด๋ ์์คํ
์์ "admin"์ ๋ฌธ์์ด๋ก ์ธ์ํ ์ ์๋ค.
( 16์ง์๋ก ๋ฐ๊ฟ ์ ์๋ ์ฌ์ดํธ -> https://www.percederberg.net/tools/text_converter.html )
? no=0 or id=0x61646D696E
'SWLUG > ์น ํดํน' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Dreamhack/๋๋ฆผํต] DOM XSS (0) | 2023.11.05 |
---|---|
[los.rubiya.kr] orc (1) | 2023.10.07 |
[los.rubiya.kr] cobolt (0) | 2023.10.06 |
[LoS.Rubiya.kr] gremlin (0) | 2023.10.06 |
[Dreamhack/๋๋ฆผํต] simple_sqli (0) | 2023.10.06 |