티스토리 뷰
LOS 포스팅에 앞서 내용이 틀릴 수도 있으며, 해당 부분 지적은 감사히 받겠습니다.
14단계 소스코드이다.
이번엔 strlen() 함수가 등장했다.
shit의 문자열 값이 1보다 크게 입력하지 못하도록 필터링되었다.
또한 공백과 \n, \r. \t 등이 필터링되어있다.
result 값이 1234가 되면 문제가 해결된다.
처음에 나는 문자열 길이 제한 우회 문제인 줄 알았다.
하지만 문제를 제대로 읽지 않는 실수를 또 했다. 항상 마음이 급하다.
쿼리는 select 1234 from {$_get [shit]}prob_giant where 1";이다
사실 sql 도 잘 알지 못해 select에 변수가 아닌 1234를 넣으면 어떤 결과를 출력할지도 몰랐다.
하지만 문제만 잘 읽었다면 함수가 뭐가 쓰였든, 중요하지 않다는 걸 알 수 있다.
from [shit] prob_giant...... from과 prob_giant 사이에 공백이 없어 syntax error 가 발생하는걸 유치 할 수 있다..
그냥 한자릿수 공백만 넣으면 된다.. \n, \r, \t가 필터링되어있으니 다른 걸 넣으면 된다.
%09 -> tab
%0a -> NL (New Line)
%0b -> VT (Vertical Tab)
%0c -> FF (Form Feed)
결과는 %0b, 와 % 0c일 때 injection 이 성공했다.
% 0b는 Vertical Tab 수직 탭이라 이해가 된다. 하지만 % 0c는 Form Feed 다음장으로 넘김인데 어떻게 공백으로 작용했는지 모르겠다... 하지만 일단 해결!
시행착오
1. 문제 똑바로 읽기
2. Form Feed 가 무엇인지 알아보기
'SQL injection > lord of SQL' 카테고리의 다른 글
Lord Of SQL injection 16단계-succubus (0) | 2022.01.10 |
---|---|
Lord Of SQL injection 15단계-assassin (0) | 2022.01.10 |
Lord Of SQL injection 13단계-bugbear (0) | 2022.01.07 |
Lord Of SQL injection 12단계-darknight (0) | 2022.01.07 |
Lord Of SQL injection 11단계 [2] 이진검색 (0) | 2022.01.06 |
- Total
- Today
- Yesterday
- samron
- los 15
- 상속
- 김영한 실전 자바 기초
- 백준 피보나치
- 김영한
- ys.k
- webhacking.kr
- 백준 피보나치 수열
- 백준
- extends
- Los
- 프로그래머스
- 김영한 실전 자바 기본
- lord of sql
- static
- java
- zixem
- 코딩테스트 준비
- 김영한 실전 자바 중급
- 상품을 구매한 회원 비율 구하기 파이썬
- 프로그래머스 상품을 구매한 회원 비율 구하기 파이썬
- 코딩테스트
- 자바
- samron3
- 기술스택
- spring
- 프로그래머스 상품을 구매한 회원 비율 구하기
- 스프링
- los 15단계
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
31 |