목록2020/04/20 (4)
Self-Improvement
INSERT, UPDATE, DELETE 구문에서는 UNION SQLi 기법은 사용이 불가능하지만 Error SQLi는 가능하다. 하지만 위 3가지를 SQLi할때는 중요한 사항들이 존재한다. DELETE FROM () WHERE (); Delete 구문을 사용하는 페이지는 회원 탈퇴, 게시글 삭제 및 취소 등의 기능이 대표적이다. Delete 구문에서 가장 주의해야 할 사항으로 참인 명제 조건이 된다면 해당 테이블의 모든 데이터가 삭제된다는 것이다. Update 구문처럼 WHERE() 절의 조건문이 가장 주의해야한다. MySQL 소스코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 3..
INSERT, UPDATE, DELETE 구문에서는 UNION SQLi 기법은 사용이 불가능하지만 Error SQLi는 가능하다. 하지만 위 3가지를 SQLi할때는 중요한 사항들이 존재한다. UPDATE () SET () WHERE () UPDATE 구문을 사용하는 페이지는 회원정보 수정, 게시글 수정, 예약 정보 수정 등이 대표적이다. 가장 주의해야 할 사항으로는 전체가 참인 명제 조건이 된다면, 해당 테이블의 모든 데이터가 동일한 값으로 수정이 된다. UPDATE 구문에서 WHERE절에 참인 명제가 주입되면 모든 데이터가 동일한 정보로 업데이트 되는 것이다. MySQL 소스코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 ..
INSERT, UPDATE, DELETE 구문에서는 UNION SQLi 기법은 사용이 불가능하지만 Error SQLi는 가능하다. 하지만 위 3가지를 SQLi할때는 중요한 사항들이 존재한다. INSERT INTO table_name() VALUE () Insert 구문에서는 로깅 파라미터인 로그를 추가하는 부분에서 취약점이 많이 발생하지만 SQLi 공격 구문을 잘못 할 시 비정상적인 로그가 추가된다는 점과 게시글 글이 계속 등록된다는 문제점이 있다. MySQL 소스코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 4..
Prepared Statement는 SQLi 공격이 불가한 방식이며 실제 안전하게 구현된 방식은 취약점이 발생하지 않는다. 하지만 잘못 구현된 Prepared Statement는 취약점이 발생할 수 있다. Prepared Statement + Statement의 혼합 형태의 소스코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 opensecurelab Employee information : Employee ID FirstName JOB_ID HireDate Colored by Color Scripter cs ..