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 50번 문제풀이(Writeup)
webhacking.kr old 50번 문제풀이(Writeup) 문제를 들어가면 위와 같이 출력된다. SQL Injection을 통해 푸는 문제이고, 코드가 있으니 먼저 확인해보자. 코드를 확인해보니, 방금 전에 푼 old 45번 문제와 유사하다. id와 pw를 받아서 \(역슬래시)를 붙이고, utf-8에서 euc-kr로 바꾸면서 멀티 바이트가 된다. 이후 foreach문을 사용하는데 PHP에서 foreach 문은 배열의 원소나, 객체의 프로퍼티 수만큼 반복하여 동작하는 구문입니다. 반복하면서 from, pw, (, ), 공백, %, =, >, < 를 필터링하고, union도 필터링한다. level 3가 되면 문제가 해결된다. 먼저 필터링에 대한 생각부터 했다. 공백이 필터링이 되니 %09로 우회하고, ..