본문 바로가기

WEB/Lord Of SQL injection

[Lord Of SQL injection] zombie_assassin → succubus

문제 소스코드를 보면 id든 pw든 다 '를 제낀다. 저기 if(@ereg(~);부분만 우회하면 될 거 같은데 그 전 문제들에서도 '를 우회하려고 검색해봤는데 마땅히 그렇다할 기법을 찾지 못했다. 이번에도 작은 따옴표 우회하는 방법을 검색해도 잘 모르겠다. 근데 왜 미처 함수에서 취약점을 찾자는 생각을 하지 못했을까. preg_match함수에 작은 따옴표를 넣어도 되는데 ereg 함수를 통해 제끼는 걸 보면 뭔가 있을 거 같다.

ereg 치는데 바로 취약점이 연관되어 나온다.

http://hackability.kr/entry/PHP-%EB%AC%B8%EC%9E%90%EC%97%B4-%ED%95%84%ED%84%B0%EB%A7%81-%ED%95%A8%EC%88%98ereg-eregi-%EC%B7%A8%EC%95%BD%EC%A0%90%EC%9D%84-%EC%9D%B4%EC%9A%A9%ED%95%9C-%EC%9A%B0%ED%9A%8C

위 블로그를 통해 확인하면 첫 바이트의 값에 NULL값을 주어 문자열 검사를 더이상 하지 못하게 우회한다는 것이다.

오오 작은 따옴표가 그대로 쿼리문에 들어간다. 신기하다!

이제 %00이후는 필터링 되는거 없이 하던대로 pw를 참값으로 만들어 때리면 된다.