webhacking.kr old 45번 문제풀이(Writeup)
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 #으로 ..
webhacking.kr old 46번 문제풀이(Writeup)
webhacking.kr old 46번 문제풀이(Writeup) 문제를 들어가면 위와 같이 출력된다. 코드가 있으니 코드부터 확인하자. 어제 게시된 문제와 비슷하게 몇 가지 필터링이 된다, 공백과 '/', '*', '%' 등도 필터링이 되고, ', ", Null바이트, \도 필터링된다. 그래도 ()가 필터링이 안되고 있어서 쉬울 것 같다. lv=0||id=char(97,100,109,105,110) 0x가 필터링되고 있어서 hex값을 넣어서 사용하기가 어렵다. 따라서 함수를 이용해야 하는 문제인데, 필자는 간단하게 char() 함수를 이용했다. 성공메시지가 출력되었다. 간단하다.
webhacking.kr old 49번 문제풀이(Writeup)
webhacking.kr old 49번 문제풀이(Writeup) 문제를 들어가면 위와 같이 출력된다. 코드가 있으니 코드부터 확인하자. 코드를 보니 이것저것 많이 필터링을 한다. select, or, and, (, ), limit, order, cash, /, 탭, ', " 공백이 입력되면 no hack이 출력된다. 일단 lv에 숫자가 입력이 되고, GET 메소드 방식으로 값이 전달된다. admin으로 접속하면 해결되는 문제이다. ?lv=0||id=%61%64%6d%69%6e 그래서 admin을 입력했을 때는 안되서 URL 인코딩을 해서 넣었는데 admin으로 값이 바뀐다. 그래서 hex값으로 URL 인코딩 값을 전달했다. ?lv=0||id=0x61646d696e 성공 메시지가 출력되었다. 너무 간단하다.