티스토리 뷰
포스팅에 앞서 내용이 틀릴 수도 있으며, 해당 부분 지적은 감사히 받겠습니다.
56번 문제이다.
테이블이 있으며 검색을 할 수 있게 되어있다.
각 링크를 들어가 보자.
admin은 접근이 거부되었다.
guest는 hello~라는 메시지가 있다.
이것저것 search에 시도를 하던 중 hello~를 입력했을 경우 guest 하나만 뜨는 것을 알게 되었다.
검색어는 subject의 내용을 검색한다는 것을 알아내었다.
또한 hello~ 뒤에 공백을 하나 추가하여 검색했을 경우에는 guest가 출력되지 않았다.
아마 내부 쿼리는 select * from table_name where search > '$_search'의 형태로 되어있다고 추측할 수 있다.
우리는 인젝터를 사용하여 admin의 blind sql injection과 비슷하게 불러와야 한다.
_를 사용해 문자열의 길이를 추출해보자.
테스트 결과 _이 44개까지 일 때 admin이 추출되었으며 그 이후에는 추출되지 않았다.
우리는 내부 내용의 길이가 44자리 인 것을 알아내었다.
이제 인젝터를 만들어 돌려보자.
이번 방식은 get 파라미터를 사용하지 않고 post방식으로 값을 입력받는다.
따라서 post 형식으로 인젝션을 진행해야 한다.
하지만 필자가 만든 코드의 로직상 첫 번째 글자는 수작업으로 찾아 넣어줘야 인젝터가 정상적으로 작동한다.
따라서 막일로 첫자리가 f인 것을 찾아내어 알고 있다는 전제하에 코드를 작성하였다.
찾는 방법은 search값에서 _를 43개로 줄이고 맨 앞자리에 하나씩 넣어가면서 찾으면 된다.
모두 뽑아내었다.
하지만 우리는 한 가지 알아야 할 점이 있다.
_는 ascii 번호에서 {, }보다 우선순위로 있기 때문에 {와 }이 있을 경우 _라 인식되고 다음 단계로 넘어가버린다.
따라서 추출된 flag를 조금 수정해야 한다.
추출된 flag : fLAG_HIMIKO_TOGA_IS_CUTE_DONT_YOU_THINK_SO?_
수정 flag : FLAG{HIMIKO_TOGA_IS_CUTE_DONT_YOU_THINK_SO?}
검증해보자.
문제 해결
시행착오
1. 다음에 인젝터 하나만으로 깔끔하게 풀어보고 싶다.
ㄴ hex 사용하면 될 거 같음
'SQL injection > webhacking' 카테고리의 다른 글
webhacking 58번 (0) | 2022.08.23 |
---|---|
webhacking 57번 (0) | 2022.08.21 |
webhacking 55번 (0) | 2022.08.21 |
webhacking 54번 (0) | 2022.08.21 |
webhacking 53번 (0) | 2022.08.21 |
- Total
- Today
- Yesterday
- 프로그래머스 상품을 구매한 회원 비율 구하기 파이썬
- lord of sql
- 프로그래머스
- 스프링
- java
- 김영한 실전 자바 기초
- samron
- 김영한 실전 자바 기본
- 상속
- 코딩테스트 준비
- 김영한 실전 자바 중급
- 코딩테스트
- Los
- 백준
- 자바
- webhacking.kr
- ys.k
- extends
- 백준 피보나치
- 김영한
- static
- 상품을 구매한 회원 비율 구하기 파이썬
- 백준 피보나치 수열
- los 15단계
- samron3
- spring
- zixem
- 프로그래머스 상품을 구매한 회원 비율 구하기
- 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 |