반응형
webhacking.kr old 61번 문제풀이(Writeup)
문제를 들어가면 위와 같이 출력된다. 코드가 있으니 코드부터 확인해보자!
먼저 id가 없으면 id는 guest로 접속이 된다. 또 id는 addslashes함수가 있어서 '(싱글쿼터), "(더블쿼터), \(백슬래시), NuLL바이트 앞에 '\'가 추가된다. 따라서 SQL Injection 공격을 막는 함수로 사용된다. 이후 preg_match를 통해 (), |, select, from, ',', by 가 대소문자 구분 없이 필터링된다. 또 id의 길이가 15를 넘어서는 안된다.
먼저 admin을 그냥 넣으면 안될 것 같아서 URL 인코딩을 했다. "%61%64%6d%69%6e" 이렇게 하면 15글자이기 때문에 Access Denied가 출력된다. 그래서 0x61646d696e 를 넣었다. 역시 안된다. 그래서 데이터베이스 종류가 mysql이라고 가정하고 별칭을 줬다.
?id=0x61646d696e id
별칭은 원래 AS 예약어를 사용해야하지만, 생략이 되기에 글자 수 제한을 생각해서 생략했다.
성공메시지가 출력되었다.
728x90
'웹해킹 > webhacking.kr' 카테고리의 다른 글
webhacking.kr old 56번 문제풀이(Writeup) (0) | 2022.10.29 |
---|---|
webhacking.kr old 59번 문제풀이(Writeup) (0) | 2022.10.28 |
webhacking.kr old 51번 문제풀이(Writeup) md5(,true) 취약점 (0) | 2022.10.26 |
webhacking.kr old 43번 문제풀이(Writeup) (0) | 2022.10.25 |
webhacking.kr old 40번 문제풀이(Writeup) (0) | 2022.10.23 |