본문 바로가기
[웹해킹]

Blind SQL injection 중요 몇가지 정리

by Hevton 2020. 9. 20.
반응형

1. and, or, &&, || 필터링일 때 xor 사용 고려.

0 XOR 0 = 0

0 XOR 1 = 1

1 XOR 0 = 1

1 XOR 1 = 0

결과가 다를 경우만 참인 경우를 이용.

 

2. database() 는 현재 사용하고 있는 데이터베이스

데이터베이스 선택 없을 때 -> select database(); = NULL

use sample_db -> select database(); = sample_db

 

3. 데이터베이스가 두개인 것을 알았을 때, 하나는 information_schema일 것.

 

4. having은 꼭 group by랑 쓰지 않아도 되나, 출력되는 문에 존재하는 컬럼만 다뤄야함.

 

5. = 필터링 우회 -> in (where사용이랑은 별개)

LIKE 같은 느낌.

 

6. ascii 핕터링 우회 -> ord 또는 hex

ord는 멀티바이트( 한글 ) 같은 경우만 아니면 ascii랑 동일하게 작동

hex는 문자열을 아스키코드 헥사값으로 변환해줌.

비슷한 방식으로 char 안에 아스키코드값을 문자로 변환.

 

7. MAX() 은 선택된 칼럼에서 가장 큰 값, MIN()은 선택된 칼럼에서 가장 작은 값을 가져옴.

가장크다 -> 문자를 앞부터 순서대로 비교하면서 .

가장작다도 마찬가지.

 

8. JOIN은 그냥 조건 상의 값들만 출력 (ON이 없어도 작동함)

LEFT JOIN RIGHT JOIN 기준테이블에 맞춰 모두 출력. (ON 없으면 출력안됌)

select * from book JOIN maker; -> 매칭조건이 없으므로 book의 번호 x maker 번호 갯수만큼 1:1 대입으로 모두 출력
select * from book JOIN maker ON maker_id=x -> 이번엔 maker_id 제한은 들어갔지만 두 테이블간에 매칭되는 조건이 마찬가지로 없으므로, maker_id 제한사항 안에서 또 모두 1:1출력

 

8. distinct -> 데이터 중복제거

select distinct...

 

9. WHERE 필터링일 때 anonymous 컬럼과 테이블 사용하여 JOIN

select * from book JOIN (SELECT 'Math BOOK' as t) as w ON book.title=w.t;

-> 컬럼명이 t이고 데이터가 'Math BOOK'인 테이블명을 w로 지정하여 book과 JOIN = book중에 title이 'Math BOOK'인 데이터가 전부(*) 출력됨.

[ 응용 ] 

SELECT table_name from information_schema.tables JOIN (SELECT 'sample_db' t)x ON information_schema.tables.table_schema=x.t;

 

ps. (SELECT 'h' as t) as w -> 어나니머스 테이블. 임시 테이블. 참고로 as 생략가능.

 

10. if(A, B, C)

-> 조건 A가 참인 경우 B, 조건 A가 거짓인 경우 C.

=

참인 경우 : 조건 A를 만족하는 B

거짓인 경우 : 조건 A를 만족하지 않는 C

[ 응용 ]

select table_name from information_schema.tables; 일때
table_name -> if((table_schema)in('chall13'), table_name, 0); //1. table_schema = chall13 인 경우 table_name. 2. table_schema !=chall13인 경우 0

=

참인 경우 : table_schema가 chall13인 table_name

거짓인 경우 : table_schema가 chall13이 아닌 0

 

11. where id = if(A, B, C)

-> 1. 조건 A=true && id=B. 2. 조건 A=false && id=C.

=

1. 조건 A를 만족하는 id=B인 데이터. 2. 조건 A를 만족하지 않는 id=C인 데이터.

[ 응용 ]

webhacking.kr 9번문제 풀이글 참고(10번내용도 포함)

 

 

반응형

'[웹해킹]' 카테고리의 다른 글

[Webhacking.kr] 만점 돌파!  (0) 2020.10.24
[Webhacking.kr] 22번  (0) 2020.10.02
[Mac OS/Proxy] 프록시 툴 Burp Suite 설치 방법  (0) 2020.09.04
해시(Hash)와 암호화(Encryption)  (0) 2020.08.31