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 |