티스토리 뷰
LOS 포스팅에 앞서 내용이 틀릴 수도 있으며, 해당 부분 지적은 감사히 받겠습니다.
11단계 소스코드이다.
이번엔 or, and 이후 추가로 substr 문자열과 =연산자가 필터링당했다.
등호와 substr() 함수를 사용하지 못하게 의도한 것이다.
또한 pw를 입력받아 ', ", null을 제거하고 db내의 admin의 pw와 비교하여 참이면 문제가 풀리는 것 같다.
substr() 함수 대신 left(), right() 함수를 사용하면 해결된다.
1. left(문자열, 길이) // 문자열을 왼쪽에서 길이만큼 추출한다.
2.right(문자열, 길이) // 문자열을 오른쪽에서 길이만큼 추출한다.
또한 등호는 like , in, instr, 부등호 등으로 우회할 수 있다.
1. like // (=)과 똑같이 사용한다. ex) id like 'admin'( 싱글 쿼터 or 더블 쿼터)
2. in // ex) id in("admin")
3. instr(id, "admin")
4. length(pw) 1> 4 and length(pw) <6 // 4보다 크고 6보다 작은 건 5다.
admin으로 로그인되었다. 이로써 blind sql 조건이 갖춰졌다.
또한 수작업으로 admin 계정의 pw 값이 8자리인 것을 찾아냈다.
바로 인젝터를 돌린다.
인젝터를 만들기까지 상당한 시간이 소요되었다.
1. 파이썬에서 작성한 쿼리가 제대로 먹히는지 확인을 제대로 못했다. // 인젝터를 돌리기 전 웹페이지에 직접 인젝션 해 제대로 먹히는지 확인한다.
2. substr() 함수 우회하는 데에 상당한 고민을 했다. left나 right 함수를 하나만 쓸 생각을 했는데 그러면 인젝터가 조금 복잡해진다. 하지만 right(left(pw, {}),1)로 substr(pw, {}) 과 같은 효과를 낼 수 있는 걸 알았다.
해결했다..ㅠ
점점 문제를 풀수록 어떻게 접근해야 할지 어떤 방법으로 풀어야 할지 감이 잡혀오는 것 같아 뿌듯하다.
'SQL injection > lord of SQL' 카테고리의 다른 글
Lord Of SQL injection 12단계-darknight (0) | 2022.01.07 |
---|---|
Lord Of SQL injection 11단계 [2] 이진검색 (0) | 2022.01.06 |
Lord Of SQL injection 10단계-skeleton (0) | 2022.01.06 |
Lord Of SQL injection 9단계-vampire (0) | 2022.01.05 |
Lord Of SQL injection 8단계-troll (0) | 2022.01.05 |
- Total
- Today
- Yesterday
- Los
- 백준 피보나치 수열
- 김영한 실전 자바 기초
- samron3
- 백준 피보나치
- 백준
- 코딩테스트 준비
- static
- los 15단계
- 상속
- los 15
- 상품을 구매한 회원 비율 구하기 파이썬
- 자바
- 김영한 실전 자바 기본
- 기술스택
- 프로그래머스
- java
- webhacking.kr
- lord of sql
- zixem
- extends
- samron
- 스프링
- ys.k
- 프로그래머스 상품을 구매한 회원 비율 구하기 파이썬
- spring
- 김영한
- 프로그래머스 상품을 구매한 회원 비율 구하기
- 코딩테스트
- 김영한 실전 자바 중급
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |