Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- nodeJS
- node.js
- 웹기초
- 이진트리
- 자료구조
- 뷰
- MongoDB
- 웹개발
- 자바기초
- 그래프
- 자바
- 웹해킹
- 웹해킹기초
- 워게임
- 워게임추천
- NavBar
- GIT
- bootstrap
- CTF
- 포렌식
- 써니나타스
- node
- 이진탐색트리
- materialize
- mongoose
- 포렌식워게임
- gitbash
- Express
- wargame.kr
- 자바문제풀이
Archives
- Today
- Total
보안 전공생의 공부
Lord of SQL Injection#5 wolfman | White Space filtering 본문
preg_match라는 함수가 낯설다.
preg_match('/대조할 문자/', '입력한 문자', $matches); 구조이며
- 대조할 문자 : 찾거나 필터링하고 싶은 문자열 ( 특수문자일때는 앞에 \ 붙이기)
- 입력한 문자 : 사용자가 어떤방식이든 입력 받아 담은 특정 변수
- $matches : 대조할 문자 == 입력한 문자 일때 그 문자는 배열형태로 $matches에 저장
( 출처 : https://flash-ctf.tistory.com/43 )
이를 활용해 해석해보면
pw에 공백이 존재하면 안된다.
(이때 / 뒤에 붙은 i는 대소문자를 구분하지 않는다는 의미이다.)
그리고 마지막에 있는 if문을 보면
pw와 무관하게 id가 admin 일 때 문제가 풀리는 것을 확인 할 수 있다.
id가 admin이기만 하면 되는 거니까 따로 pw파라미터를 구할 필요는 없다.
그런데 내가 입력을 하는 값은 pw의 값이므로 공백이 들어가면 안되는 것을 주의해야 한다 !
주소 뒤에 입력을 할 때
?pw=' or id='admin 이나?pw='||id='admin 을 입력하게 될텐데
첫번째처럼 or 을 쓰는 경우는 or 양쪽에 공백인 %20 가 들어가야하고,
이에 따라 No whitespace ~_~ 문구가 출력된다.
%20을 %0a, %0b, %0c, %0d, %09로 변경해 우회시켜주면된다.
%20을 %0a로 변경시켜주었다.
두번째처럼 || 을 쓰는 경우는 공백이 필요하지 않으니 바로 성공한다.
'Wargame > web' 카테고리의 다른 글
HackCTF #5 Guess me (0) | 2021.01.15 |
---|---|
Lord of SQL Injection#6 darkelf (0) | 2021.01.15 |
Lord of SQL Injection#4 orc | Blind SQL Injection (0) | 2021.01.15 |
wargame.kr #6 fly me to the moon | javascript 난독화 (0) | 2021.01.15 |
wargame.kr #4 login filtering | SQL 우회기법 (0) | 2021.01.15 |
Comments