티스토리 뷰
LOS 포스팅에 앞서 내용이 틀릴 수도 있으며, 해당 부분 지적은 감사히 받겠습니다.
15단계 소스코드이다.

이번엔 pw 뒤에 등호가 아닌 like 로 쿼리가 이루어져 있다.
id 가 admin인 pw값을 입력하면 문제가 해결된다.
하지만 like는 =와 달리 pw의 모든값을 입력할 필요가 없다.
LIKE 응용(대소문자 구분안함)
1. a% //a로 시작하는 문자열 검색 ex) asd
2. %a% //a가 포함되어있는 문자열 검색 ex) sad
3. %a //a로 끝나는 문자열 검색 ex) fgdfga
4. a_ //a로 시작하며 _갯수만큼의 문자열 검색 ex) a4
5. a-c //a와c 사이에 한글자가 들어가있는 문자열 검색 ex) agc
6. ^a //첫번째 글자가 a가 아닌 문자열 검색 ex) bac
7. [] //지정된 범위[a-f] , 집합[abc]에 있는 문자열 검색 ex) [j-l]orea
8.[^] //지정된 범위와 집합에 있지않은 문자열 검색 ex)[^a-c]name abc가 처음에 오지않는 ?name을 검색
만약 특수문자가 있는지 찾고싶다면
1. like %@___ ESCAPE '@' // 조건뒤에 escape '@' 를 추가해주면 조건에서 @뒤에오는 문자는 기능을 상실하고 문 자로 인식된다.
admin 에만 해당하는 pw의 특징을 찾아 맞추어 넣어주기만 하면된다.
수동으로 찾은결과

0~9, a~z, A~Z 모두 입력 해봤지만 첫번째 값이 9일때만 Hello guest가 나왔다.
이를통해 유추할 수 있는 건 admin 과 guest의 비밀번호 첫자리가 9이며 guest가 우선순위임을 알 수 있다.
바로 인젝터를 만들어서 공격해보겠다. 기존 수동적인 방법을 더 자동화 시켰다.

생각보다 답이 금방나왔다.
guest 와 admin 의 비밀번호가 앞자리가 90으로 두번째 자리까지 같았지만 3번째 자리에서 차이를 보였다.
사실 이 방법은 정답일 때 사이트에서 어떤 문자열이 나오는지 안다는 전제가 있어야 가능한 공격이기에 실전에서는 어떻게 해야할지 더 생각해봐야겠다.

문제 해결!!!
느낀점
1. 처음에 ?% 다 대입해보았는데 guest 하나밖에 나오지 않아 당황하여 조금오래 방황했고, 원인을 빨리 추측해내지 못
2. 전보다 인젝터를 다루는데 능숙해진 것 같아 뿌듯하다.
3. 그리고 인젝터를 돌리다가 다시 웹페이지로 돌아왔는데 정답을 입력한적 없는 assassin이 풀려있어서 조금 당황했다.
내가 작성한 코드가 실행되다가 정답인 값을 입력해서 일어난 결과 같은데 기억이 안난다... 조금더 봐야겠다.
'SQL injection > lord of SQL' 카테고리의 다른 글
| Lord Of SQL injection 17단계-zombie_assassin (0) | 2022.01.10 |
|---|---|
| Lord Of SQL injection 16단계-succubus (0) | 2022.01.10 |
| Lord Of SQl injection 14단계-giant (0) | 2022.01.08 |
| Lord Of SQL injection 13단계-bugbear (0) | 2022.01.07 |
| Lord Of SQL injection 12단계-darknight (0) | 2022.01.07 |
- Total
- Today
- Yesterday
- 프로그래머스 상품을 구매한 회원 비율 구하기 파이썬
- samron
- 코딩테스트 준비
- 김영한 실전 자바 중급
- ys.k
- 김영한 실전 자바 기본
- 김영한 실전 자바 기초
- 스프링
- 기술스택
- samron3
- java
- spring
- 자바
- 백준
- 백준 피보나치
- 상속
- 김영한
- webhacking.kr
- Los
- lord of sql
- 프로그래머스 상품을 구매한 회원 비율 구하기
- 코딩테스트
- los 15단계
- los 15
- extends
- zixem
- 백준 피보나치 수열
- static
- 상품을 구매한 회원 비율 구하기 파이썬
- 프로그래머스
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |