반응형
webhacking.kr old 45번 문제풀이(Writeup)
문제를 들어가면 위와 같이 출력된다. 코드가 있으니 힌트를 확인해보자.
id와 pw를 입력할때 addslashes함수를 통해 싱글쿼터, 더블 쿼터, /, \, Null 앞에 \를 추가해주고 있다. 이후 id를 'utf-8'에서 'euc-kr'로 바꿔주기도 한다. euc-kr은 8bit로 된 한글 완성형 인코딩이고 멀티 바이트다.
preg_match를 통해 admin, select, limit, pw, =, <, > 을 터링하는 중이다.
result로 값을 받아올때 pw를 md5로 암호화하는 모습도 보인다. 이때 result로 로그인을 하면 문제가 해결된다.
먼저 0x, 문자열 길이가 필터링이 안되기 때문에 admin은 0x61646D696E #으로 우회하고 '='은 like로 우회하면 될 것이다.
한번 시도해보자.
음.. 아직 잘 안된다. 찾아보니 utf-8에서의 '\'는 멀티바이트에서 다른 바이트의 문자(%a1~%fe)와 합쳐져서 문자로 인식된다고 한다. 따라서 id=%ab'을 앞에다 넣고 시도했다.
인코딩을 바꿔서 멀티바이트를 사용한 SQL Injection은 처음이라 오래 걸렸다.
728x90
'웹해킹 > webhacking.kr' 카테고리의 다른 글
webhacking.kr old 53번 문제풀이(Writeup)와 procedure analyse() DB, 테이블 이름 확인 (0) | 2022.11.08 |
---|---|
webhacking.kr old 35번 문제풀이(Writeup) (0) | 2022.11.07 |
webhacking.kr old 48번 문제풀이(Writeup) (0) | 2022.11.04 |
webhacking.kr old 34번 문제풀이(Writeup) (0) | 2022.11.04 |
webhacking.kr old 60번 문제풀이(Writeup)와 레이스 컨디션 공격 및 대응방안 정리 (0) | 2022.11.03 |