'부산정보산업진흥원/웹 해킹 기초'에 해당되는 글 3건

  1. 2017.06.07 SQL Injection
  2. 2017.06.07 구글 해킹(Google Hacking)
  3. 2017.06.07 웹 취약점 분석

[SQL Injection]

   웹에서 URL(Uniform Resource Locator) 또는 form에서의 SQL 요청 문을 활용하여 원하는 정보를 열람하는 것을 SQL Injection이라고 한다. SQL Injection을 사용하기 위해서는 기본적은 query문에 대한 이해가 필요하며, 웹 관리자가 설정해 놓은 SQL문을 파악하여 상황에 맞게 SQL Injection 공격을 해야 한다.  


   Form을 통해(ex: ID 혹은 패스워드 입력 form) SQL 문을 삽입하여 공격하는 form injection과 url에 SQL을 입력하는 URL injection으로 나눌 수 있다. SQL Injection 공격 시 일부로 오류를 유도하여 DB 구조에 대한 정보를 파악할 수 있는데, SQL 에러 메세지가 온전하게 나오는 경우 에러 부분을 수정함으로써 DB 자료 구조를 파악하는 Error Base SQL Injection과 에러메세지가 나오지 않는 경우 참과 거짓으로 DB 자료 구조를 파악하는 Blind SQL Injection 공격이 있다.

   웹 서버에 게시판을 구축 후, SQL Injection을 통해 가입 없이 로그인을 시도해 보자.



'아이디' 부분에 사용자가 입력한 정보를 SQL문을 활용하여 저장된 사용자 정보와 비교하는 SQL문을 사용할 것을 짐작할 수 있다. '아이디' form에 입력된 정보가 홑 따옴표(')로 감싸져 있을 것이라 예상하고 '아이디' 부분에 홑 따옴표를 먼저 입력해 주어 SQL 문에 전달한 값을 아래와 같이 SQL문 형식에 맞게 조작할 수 있다. 


ID = ' or 1=1 --


DB를 전달에 대한 요청을 하기 위해서는 첫째는 SQL문에 에러가 없어야 하고, 참과 거짓을 판변할 수 있는 구문으로 이루어 져야 한다. 조건 연산자 'or'을 사용한 후 그 후에 참의 값을 입력해 주면 그 구문은 참이 되게 된다. 그리고 뒤에 쿼리 부분에 대해서는 주석을 처리하는 '--'을 입력하여 뒤의 구문은 무효가 되도록 만들어주고 '확인'을 누르면 로그인이 가능해진다.



SQL문에 의도적으로 오류를 발생시킨 후 에러 메세지를 나타내어 DB구조를 파악하는 예를 살펴보자.

SQL문에서 'having'은 집계함수 'group by'를 사용한 후 특정 조건에 맞는 값만 추출하는 구문이다. 게시판 검색 form에 의도적으로 'having'을 삽입하여 에러를 발생시킨 후 에러를 하나씩 제거하면서 DB의 구조를 파악해 보자.



아래의 에러 메세지를 파악하여 어떤 SQL 서버를 사용하는지, 그리고 어떤 열의 이름을 파악할 수 있다.


위와 같이 친절하게 SQL 에러 코드가 제공되지 않는 경우에는 SQL 구문이 참 혹은 거짓임을 판단하여 DB의 구조를 파악하는 방법이 있다.

이미 특정 도메인에 회원가입을 한 상황이다. ID는 1111이고 비밀번호 또한 1111이다. 해당 웹에서 사용하는 db의 이름을 알고 싶다고 할 때, 문자 하나 하나를 일일히 입력하여 값과 거짓 값을 받아내면 시간은 걸리지만 원하는 정보를 알아낼 수 있다.

ID: 1111' and ASCII(SUBSTRING(CAST((SELECT LOWER(db_name(0))) AS varchar(20)),2,1))=ASCII('a')--

비밀번호: 1111



참이라면 로그인이 될 것이고 거짓이라면 위와 같은 메세지가 뜬다.

완전 노가다... 프로그래밍이 필요하다.





반응형

'부산정보산업진흥원 > 웹 해킹 기초' 카테고리의 다른 글

구글 해킹(Google Hacking)  (0) 2017.06.07
웹 취약점 분석  (0) 2017.06.07
Posted by newind2000

[구글 해킹(Google Hacking)]


구글(Google) 검색 엔진에서 다양한 검색 옵션을 활용하여 웹 관리자들이 의도적으로 노출하지 않은 자료들을 검색 및 열람 할 수 있다.  아래는 구글 해킹의 기초가 되는 Googledork 자료이다.


googledork.pdf


검색 옵션을 간단히 정리하면 아래와 같다.

검색 옵션

설명

예시

큰 따옴표(“)

반드시 포함될 단어/문장을 지정한다.

해당 단어나 문장이 반드시 포함된 사이트만 검색할 수 있다.

“BITEC”

마이너스(-)

제외할 검색어를 지정한다.

해당 검색어를 제외한 결과를 표시해준다.

대한민국-부산

물결(~)

유의어를 검색 한다.

검색어와 비슷한 의미를 가진 자료를 보여준다.

~저렴한 맛집

Define:

단어의 정의를 검색한다.

해당 검색어의 정의를 보여준다.

Define:컴퓨터

Intitle:

특정 단어를 반드시 포함한 제목을 검색한다.

해당 단어가 포함된 제목만 골라서 검색 결과를 보여준다.

Intitle:BITEC

(*)

불확실한 검색어를 입력할 때 사용한다.

빈 자리를 채워서 결과를 표시해준다.

아이슈타인*이론

마침표 2(..)

숫자의 범위를 지정한다.

검색할 숫자 사이에 마침표 2(..)를 입력하면 숫자 범위 내의 검색 결과를 보여준다.

2010..2012년 축구경기

OR

두 단어 중 아무거나 검색한다.

두 단어 중 하나라도 포함되어 있는 검색 결과를 표시한다.

갤럭시or아이폰

Site:

특정 사이트 이내에서만 검색한다.

해당 주소를 가진 사이트 내에서 해당 단어를 포함한 자료만 검색된다.

Site:Bitec.org 교육

Rel:

특정 사이트와 관계된 사이트를 검색한다.

Rel:Bitec.org

Link:

특정 사이트를 링크한 모든 사이트를 검색한다.

해당 사이트가 링크된 모든 사이트를 보여준다.

Link:Bitec.org

Filetype:

특정 종류의 파일만 검색한다.

찾고자 하는 것을 입력하고 끝에 ‘filetype:확장자명을 추가하면 해당 파일만 검색해준다.

경영학원론 filetype:doc


아래의 웹 페이지에서 Google hacking database에 대해 열람할 수 있다.

EXPLOIT DATABASE - https://www.exploit-db.com/google-hacking-database/


** 원하지 않은 정보가 구글 검색에 노출될 경우 국글측에 정보 삭제를 요청하는 것도 구글 해킹 보안의 방법 중 하나이다.

반응형

'부산정보산업진흥원 > 웹 해킹 기초' 카테고리의 다른 글

SQL Injection  (0) 2017.06.07
웹 취약점 분석  (0) 2017.06.07
Posted by newind2000

[웹 취약점 근거 제공 사이트]


미국 국토보안부에서 제공하는 소프트웨어 취약점 분석 자료이다. 무료이다.

CWE(Common Weakness Enumeration) - http://cwe.mitre.org/


취약점의 위험성에 대한 점수 체계 제공

CWSS(Common Weakness Scoring System) - http://cwe.mitre.org/swss/


발견된 보약 취약점에 대한 정보 제공

CVE(Common Vulnerabilities and Exposures) - http://cve.mitre.org/


웹 프로그래밍과 관련하여 발생하는 취약점을 정리한 자료 제공

OWASP TOP 10 - https://www.owasp.org/


[웹 페이지 8대 취약점]


1. 디렉토리 리스팅 취약점

홈페이지의 속성을 설정하는 “웹사이트 등록정보”에 특정 디렉토리에 대하여 
- IIS 웹 서버 : ‘디렉토리 검색’ 항목이 체크
- Apache 웹 서버 :  ‘httpd.conf 파일’에서 ‘Indexes’옵션이 on
되어 있는 경우에 인터넷 사용자에게 모든 디렉토리 및 파일 목록이 보여지게 되고, 파일의 열람 및 저장도 가능하게 되어 비공개 자료가 유출될 수 있다.


2. 파일 다운로드 취약점 
게시판 등에 저장된 자료에 대해 ‘다운로드 스크립트’를 이용하여 다운로드 기능을 제공하면서, 대상 자료파일의 위치 지정에 제한조건을 부여하지 않았을 경우에 URL칸의 다운로드 스크립트의 인수 값에 ‘../’문자열 등을 입력하여 시스템 디렉토리 등에 있는 /etc/passwd와 같은 비공개 자료들이 유출될 수 있다.


3. 크로스사이트 스크립트 취약점 
게시판에 새 게시물을 작성하여 등록할 때와 같이 사용자의 입력을 받아 처리하는 웹 응용프로그램에서 입력 내용에 대해 실행코드인 스크립트의 태그를 적절히 필터링하지 않을 경우에 악의적인 스크립트가 포함된 게시물을 등록할 수 있어 해당 게시물을 열람하는 일반 사용자의 pc로 부터 개인정보인 쿠키를 유출할 수 있는 등의 피해를 초래할 수 있다.


4. 파일 업로드 취약점 
첨부파일 업로드를 허용하는 홈페이지 게시판에서 .php, .jsp등의 확장자 이름의 스크립트 파일의 업로드를 허용할 경우에 해커가 악성 실행 프로그램을 업로드한 후에 홈페이지 접속방식으로 원격에서 서버컴퓨터의 시스템 운영 명령어를 실행 시킬 수 있다.  

 

5. WebDAV 취약점- 원격 실행
 윈도우 서버 컴퓨터에서 기본으로 설치되는 원격관리기능인 WebDAV가 계속 사용 가능하도록 설정되어 있고, WebDAV 라이브러리 파일의 속성 및 홈페이지 디렉토리에 쓰기 권한이 모두 허용되어 있는 경우에 해커가 WevDAV도구를 사용, 원격에서 홈페이지 디렉토리에 임으로 파일을 삽입하여 화면을 변조할 수 있다.


6. 테크노트(Technote) 취약점
‘테크노트’의 일부 CGI프로그램들에서 인수 값 처리시에 ‘ㅣ’문자 이후에 나오는 컴퓨터 운영 명령어가 실행될 수 있는 결함이 있어 해커는 홈페이지접속 방식으로 컴퓨터 명령어를 실행하여 화면을 변조하거나 컴퓨터를 조작할 수 있다.
- Linux 및 Unix계열의 컴퓨터에 주로 사용
- Windows 계열에서 ‘Perl’이 지원될 경우 사용


7. 제로보드(Zeroboard) 취약점
- ‘제로보드’의 일부 php프로그램이 원격에 있는 php파일을 실행할 수 있는 결함이 있어 해커는 홈페이지 접속 방식으로 컴퓨터 명령어를 실행하여 화면을 변조하거나 컴퓨터를 조작할 수 있다.
- Linux 및 Unix 계열의 컴퓨터에 주로 사용
- Windows 계열에서 ‘php’가 지원될 경우 사용


8. SQL Injection 취약점 
웹 브라우저 주소 창 또는 사용자 ID 및 패스워드 입력화면에서 데이터베이스 SQL문에 사용되는 문자기호(‘ 및”)의 입력을 적절히 필터링 하지 않은 경우에 해커가 SQL 문으로 해석될 수 있도록 조작한 입력으로 데이터베이스를 인증 절차 없이 접근, 자료를 무단 유출하거나 변조할 수 있다. 



출처: http://realforce111.tistory.com/54 [realforce111님의 블로그]




반응형

'부산정보산업진흥원 > 웹 해킹 기초' 카테고리의 다른 글

SQL Injection  (0) 2017.06.07
구글 해킹(Google Hacking)  (0) 2017.06.07
Posted by newind2000