BEATSLOTH 공대인의 무덤
SQL injection (인젝션) 에 대해서 알아봅시다 . 본문
지금부터 해킹 기법중 하나인 SQL 인젝션에 대해 알아봅시다 .
SQL 인젝션 위키(https://ko.wikipedia.org/wiki/SQL_%EC%82%BD%EC%9E%85)
SQL 인젝션이란 SQL 삽입 공격이라고도 불리며 응용프로그램 보안 상의 허점을 이용하여
개발자가 의도치 않은 SQL 을 실행시키는 공격 기법으로 데이터 베이스를 비정상적으로 조작하는
코드 인젝션 공격 방법이라고 구글(위키 백과) 에 나옵니다 .(....)
쉽게 말하자면 보안이 되어있지 않은 웹페이지에서 아이디, 패스워드,또는 URL 폼에 SQL구문을 삽입하여
관리자 권한으로 접속 한다던가 할 수 있는 공격 기법입니다 . 사용 용도가 광범위 하죠 ..
SQL 인젝션에 대해 한번 보기전에 SQL 이 뭔지 한번 짚어보고 넘아갑시다 .
그러는 편이 좀 더 이해하기 편할 것 같으니까요 ..
두산 백과 SQL (http://terms.naver.com/entry.nhn?docId=1180957&cid=40942&categoryId=32838)
SQL 은 구조화 질의어라고 한답니다 . 질의어는 문답식 언어 라고 생각하시면 됩니다. 묻고 답하고 !
IBM 관계 데이터베이스 시스템에서 사용하던것이 널리 사용되게 된 것이지요 .
SQL은 단순한 질의 기능 뿐 아니라 데이터 정의 기능과 조작 기능을 갖추고 온라인에서 대화식으로 사용 할 수 있고,
범용성이 좋아서 비교적 쉽게 사용할 수 있는 특징이 있습니다.
그렇답니다 SQL인젝션 을 쓰는 이유는 단순한 질의 기능에 있습니다.
SQL 인젝션은 이 질의 기능을 이용한 공격 방법입니다 .
제가 언어쪽은 약간 잼병인지라 위키 백과를 조금 참조해서 알아보도록 합시다 .(당당 )
다음과 소스가 있습니당
mysql 쿼리를 이용한 DB 참조 로그인 프로그램 인것 같군요
자아 .. 여기서 삽입해야할 줄을 한번 봅시다 .SQL에 대해서는 자세히는 모르지만 대충은 알 것 같습니다
SELECT 는 기사 공부하신 분들이라면 알겠지만 찾는 명령어 죠 (참조)
FROM 은 말 그대로 어디에서 ?? member 에서 찾는다고 합니다 .
어디 ! 냐면 ID 죠
그리고 로그인 폼에서 로그인 할때 ID 부분에 ''OR '1'='1' 로 대답을 무조건 참으로 만들어 버렸습니다 .
여기서 가장 중요한 부분은 ''OR '1'='1' 인데요 . 아까 SQL 은 질의어 라고 말씀 드린게 이런 점 입니다 .
해당 답이 맞다면 로그인이 되는 시스템 같은 구조에서 답을 무조건 참으로 삽입해버립니다 .
그러면 답이 맞으니까 통과시켜버리겠죠 ??
보통 로그인 폼 같은 곳에서는 ' , " ,| , \, 등등 특수문자를 막지 않았습니다 .
이에 대한 공격기법이 얼마든지 가능하다는 점이죠 .
그리고 뒤에 -- 를 이용해 뒤에 구문을 주석 처리 해버렸죠 ..
SQL 인젝션 공격에 대한 해결 방법인데요 ..
로그인 폼에서 질의어를 응답 받는 방식과 다르게
ID 와 비밀번호를 DB에서 직접 받아오는 방식으로 문제를 해결 한 것 같네요 .
여기까지 대략적인 SQL 인젝션 공격 방법의 기초를 알아 보았습니다 .
뭐 부족하고 끼워 맞추기 식이 좀 많았던 것 같지만 ...
'STUDY' 카테고리의 다른 글
간편한 드라이버 설치 툴인 3DP chips ! 사용법을 알아봅시다. (0) | 2016.12.03 |
---|---|
HTTP 응답에 대해서 ..( 응답 코드 번호 ) (0) | 2016.09.24 |
HTTP 요청에 대하여 ...(GET, POST) (0) | 2016.09.24 |
[리눅스/유닉스] 권한 및 소유권 , 프로세스 (0) | 2016.07.24 |
[리눅스/유닉스] 파일 및 디렉토리 ,vi 명령어 (0) | 2016.07.24 |