URL에 숫자만 바꿨을 뿐인데… 15년 전 해킹 수법, 아직도 통한다고? SQL 인젝션 이야기

Sun, Apr 27 2025 23:09:05 KST

혹시 최근 SQL 인젝션으로 인한 정보 유출 소식을 들으셨나요? “아니, 그게 아직도 통한다고?” 싶으실 겁니다. 저도 비슷한 생각을 했거든요. 마치 먼 옛날이야기처럼 느껴졌던 보안 취약점이 여전히 위력을 발휘하고 있다니, 새삼 놀랍기도 하고 한편으론 아찔하기도 합니다.

15여 년 전만 해도, 이런 SQL 인젝션에 허술한 웹사이트들이 정말 많았습니다. 그때는 웹사이트가 데이터베이스(DB)와 정보를 주고받을 때, 특히 URL 주소창을 통해 넘어가는 값들을 제대로 검증하지 않는 경우가 흔했죠.

예를 들어, 게시판에서 ‘글쓰기’나 ‘글수정’ 버튼을 누르면 주소창에 edit.php?id=123 같은 식으로 게시물 번호(id)가 나타나곤 했습니다. 이때, 호기심 많은 사용자(혹은 해커)가 이 123이라는 숫자를 124, 125 등으로 슬쩍 바꿔서 접속하면 어떻게 됐을까요? 놀랍게도 다른 사람의 글이 보이거나, 심지어 수정까지 가능한 경우가 비일비재했습니다.

SQL 인젝션, 그게 뭔데?

바로 이런 방식이 ‘SQL 인젝션(SQL Injection)’ 공격의 아주 기초적인 형태입니다. 웹사이트는 사용자가 입력한 값을 바탕으로 데이터베이스에 정보를 요청하는 명령어(SQL 쿼리)를 만드는데, 이때 입력값을 제대로 거르거나 처리하지 않으면 문제가 생깁니다. 공격자가 URL의 숫자 대신 악의적인 SQL 명령어를 ‘주입(injection)’시켜 데이터베이스를 직접 조작하려 들기 때문이죠. 마치 주사기로 약물을 주입하듯, 쿼리를 주입한다고 해서 ‘인젝션’이라는 이름이 붙었습니다.

웃지 못할 과거의 기억들

저도 비슷한 경험이 있습니다. 당시 꽤 유명했던 한 구인/구직 사이트에서 URL의 특정 숫자 값을 변경했더니, 다른 사용자의 이력서 정보가 떡하니 노출되거나 남의 게시글을 수정할 수 있었던 황당한 사건이 있었죠. 너무 놀라서 해당 사이트에 바로 메일을 보내 제보했고, 다행히 수정되었던 기억이 생생합니다. (지금 생각해도 아찔하네요!)

그때는 구글 검색창에 특정 패턴의 URL(예: inurl:view.php?id=)을 입력하는 것만으로도 이런 취약점을 가진 웹사이트들이 심심치 않게 발견되곤 했습니다. 클릭 한 번으로 남의 정보에 접근할 수 있는 허술한 사이트들이 그만큼 많았다는 이야기입니다.

“설마 요즘 세상에?” 네, 아직도 존재합니다!

정말 까마득한 옛날이야기 같지만, 놀랍게도 SQL 인젝션은 여전히 웹 보안을 위협하는 주요 공격 방식 중 하나입니다. 웹 기술은 눈부시게 발전했지만, 기본적인 보안 원칙을 간과하는 순간 언제든 악몽이 현실이 될 수 있다는 것이죠. 최근에도 이러한 방식으로 개인 정보가 유출되거나 시스템이 마비되었다는 뉴스를 접하면, ‘기본이 이렇게 중요하구나’ 다시 한번 깨닫게 됩니다.

SQL 인젝션은 개발자의 사소한 실수가 얼마나 치명적인 결과로 이어질 수 있는지 보여주는 대표적인 사례입니다. “설마 요즘 세상에?”라는 안일한 생각보다는, 웹사이트를 개발할 때나 이용할 때나 항상 보안의 중요성을 되새기고, 기본적인 안전 수칙을 지키는 것이 중요하겠습니다.