webhacking.kr old 35번 문제풀이(Writeup)
webhacking.kr old 35번 문제풀이(Writeup) 문제를 들어가면 위와 같이 출력된다. 코드가 있으니 힌트를 얻고 시작하자. phone과 id값을 같이 입력해야 한다. 이때 preg_match는 *, /, =, select, -, #을 필터링하고 있다. 그리고 id의 길이가 5보다 크면 안 된다. 이후 insert 문을 통해 id와 내 IP와 phone 값이 입력된다. 이후 DB에서 server IP와 내 IP가 같으면 통과한다. "insert into chall35(id,ip,phone) values('{$_GET['id']}','{$_SERVER['REMOTE_ADDR']}',{$_GET['phone']})" 현재 insert문은 위와 같다. "insert into chall35(id,..
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 #으로 ..