티스토리 뷰
LOS 포스팅에 앞서 내용이 틀릴 수도 있으며, 해당 부분 지적은 감사히 받겠습니다.
15단계 소스코드이다.
이번엔 id와 pw에 싱글 쿼터 하나만 필터링되어있다.
id값이 데이터베이스에 있는 값이면 문제가 해결된다.
이 문제는 싱글 쿼터 우회 문제이다. 싱글 쿼터를 우회할 수 있는 방법에 대해 찾아보자.
1. " // 더블 쿼터 ex) "admin"
2. \ //escape 문자 ex) id='\' and pw='' -> \로인해 id의 뒤 싱글 쿼터가 문자로 인식되며 'and pw가 문자열로 인식된다. pw의 뒷 ' 은 주석처리로 제거할 수 있다.
3. char(39) // 아스키코드
이번 문제는 2번 방법으로 해결된다.
id 값에 이스케이프 문자 \ 를 넣어주므로 id='\' and pw='' ' and pw= 가 문자열로 처리된다.
추가로 pw 값에 or 1%23을 집어넣으면 id='존재하지 않는 값' or 1# 이 되어 참인 쿼리가 완성되며 문제는 해결된다.
시행착오
1. 주석처리 시 --+-, %23 은 정상적 처리가 되는데 #는 정상적인 주석으로 처리되지 않는다. 값이 db로 전달되기 전 php에서 # 이 주석으로 처리가 되어 날아가고 db로 전달되어 생기는 문제 같다.
※주석처리 시 #는 정상 작동하지 않음!!※
'SQL injection > lord of SQL' 카테고리의 다른 글
Lord Of SQL injection 18단계-nightmare (0) | 2022.01.10 |
---|---|
Lord Of SQL injection 17단계-zombie_assassin (0) | 2022.01.10 |
Lord Of SQL injection 15단계-assassin (0) | 2022.01.10 |
Lord Of SQl injection 14단계-giant (0) | 2022.01.08 |
Lord Of SQL injection 13단계-bugbear (0) | 2022.01.07 |
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- java
- 김영한 실전 자바 중급
- lord of sql
- zixem
- ys.k
- 코딩테스트 준비
- 상속
- 백준
- 백준 피보나치
- extends
- static
- 코딩테스트
- los 15단계
- 스프링
- 김영한 실전 자바 기본
- samron
- los 15
- samron3
- 자바
- 상품을 구매한 회원 비율 구하기 파이썬
- 김영한
- 프로그래머스 상품을 구매한 회원 비율 구하기
- spring
- 김영한 실전 자바 기초
- 프로그래머스
- Los
- 기술스택
- webhacking.kr
- 백준 피보나치 수열
- 프로그래머스 상품을 구매한 회원 비율 구하기 파이썬
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |
글 보관함
250x250