[PHP+MYSQL] SQL_injection

jckim22·2022년 9월 29일
0

1.SQL_injection

php에서 클라이언트로부터 DATA를 받을 때, 악의적인 클라이언트가 SQL문을 삽입하여 나의 어플리케이션에 큰 문제를 일으킬 가능성이 있다고 판단하였다.

SQL문을 받은 php는 그 SQL문을 MySQL서버에 전달할 것이고 그 이후에 일어날 수 있는 경우의 수는 무한가지였다.

그래서 mysqli_real_escape_string()함수로 filtering하여 방어할 수 있었다.

2.Attack

실제로 나의 웹 어플리케이션에 직접 공격을 해보았다.

아래는 정상적으로 게시된 날짜에 now()함수가 들어간 결과물이다.

이제 SQL문을 조작할 수 있는 코드를 직접 나의 웹서버에 전송해보았다.

아래에서는 공격을 성공해서 게시날짜인 created 컬럼에 now()함수가 주석처리 되고 이상한 날짜가 주입된 것을 볼 수 있다.

3.Protect

이 코드를 무효하기 위해서 mysqli_real_escape_string()함수를 사용해서 방어해보았다.

아래에서는 성공적으로 방어해서 코드들이 filterling된 것을 볼 수 있다.

profile
개발/보안

0개의 댓글