Security-Hacks에서, 무료로 제공되는 SQL 인젝션 스캐너 15개 제품의 요약 정보와 다운로드를 제공하는 글이 있어 이를 정리해서 올려 드립니다.

아 시다시피, SQL Injection 공격은 웹 페이지에서 데이터베이스를 액세스하는 방식을 통해 공격하는 것으로 대부분의 관리자들은 이러한 위협에 대비하여 코딩을 해야 하며, 웹 방화벽 장비나 웹 나이트와 같은 무료 보안 프로그램을 통해 보안을 향상시키는 방향으로 진행되는 것으로 알고 있습니다.

아래의 제품들은 여러분이 운영하는 사이트가 SQL Injection 공격에 대한 취약점이 있는지 자동으로 검사하여 이를 알려 주는 프로그램입니다. 참고로, 아래의 정보는 웹 애플리케이션 개발자 뿐만 아니라 보안 전문가에게도 유익한 프로그램입니다.

1. SQLIer - 취약점이 있는 URL을 검사하고 사용자의 개입없이 SQL Injection 취약점을 익스플로잇하기 위해 필요한 정보를 점검합니다. [ 다운로드 클릭 ]

2. SQLbftools - 블라인드 SQL Injection 공격을 사용하여 MySQL의 정보를 가져오는 시도를 하는 도구의 모음입니다. [ 다운로드 클릭 ]

3. SQL Injection Brute-forcer - SQL Injection 공격 취약점을 찾고 이를 이용하여 공격하는 자동화 도구입니다. 사용자가 작업하는 내용을 볼 수 있으며, 블라인드 SQL 인젝션을 이용합니다. [ 다운로드 클릭 ]

5. SQL Brute - 블라인드 SQL 인젝션 취약점을 사용하여 데이터베이스에서 데이터를 추출해내는 무작위 도구입니다. MS SQL 서버의 시간, 오류 기반으로 익스플로잇을 수행합니다. 오라클의 경우 오류를 기반으로 합니다. 이 프로그램은 Python으로 작성되었으며 멀티 스레드로 동작하며 표준 라이브러리를 사용합니다. [ 다운로드 클릭 ]

5. BobCat - SQL Injection 취약점의 잇점을 이용하는 감사 도구입니다. 사용자가 사용하는 애플리케이션이 액세스하는 테이블에서 데이터를 가져올 수 있습니다. [ 다운로드 클릭 ]

6. SQLMap - 블라인드 SQL Injection을 자동으로 수행하는 도구로 phthon으로 개발되었다. [ 다운로드 클릭 ]

7. Absinthe - GUI 기반의 도구로 블라인드 SQL Injection 취약점에 이용하여 데이터베이스의 스키마와 목록을 자동화 과정으로 다운로드합니다. [ 다운로드 클릭 ]

8. SQL Injection Pen-testing Tool - 웹 애플리케이션에서의 취약점을 찾아 데이터베이스를 점검하도록 설계된 GUI 기반의 도구. [ 다운로드 클릭 ]

9. SQID - SQL Injection Digger. 웹 사이트의 통상적인 오류와 SQL Injection을 찾는 명령행 기반의 도구. 웹 페이지에서 SQL Injection 이 가능한 부분을 찾아내어 취약점을 입력하는 폼을 테스트한다. [ 다운로드 클릭 ]

10. Blind SQL Injection Perl Tool - bsqlbf는 SQL Injection에 취햑한 웹 사이트에서 정보를 가져오도록 작성된 펄 스크립트. [ 다운로드 클릭 ]

11. SQL Power Injection Injector - 이 프로그램은 웹페이지에서 SQL 명령어를 삽입하는 테스트를 수행합니다. 멀티 스레드 방식으로 블라인드 SQL Injection 공격을 자동화하여 실행합니다. [ 다운로드 클릭 ] 

12. FJ-Injector Framework - 웹 애플리케이션에 SQL Injection 취약점이 있는지 검사하기 위해 디자인된 오픈 소스 무료 프로그램입니다. HTTP 요청을 가로쳐서 변경하기 위한 프록시 기능도 제공합니다. SQL Injection 익스플로잇을 자동화하여 수행합니다. [ 다운로드 클릭 ]

13. SQLNinja - MS SQL 서버를 백 엔드 데이터베이스로 사용하는 웹 애플리케이션의 SQL Injection 취약점을 익스플로잇하는 도구입니다. 다운로드

14. Automatic SQL Injector -  SQLNinja와 유사한 도구로, 오류 코드가 반환되는 SQL Injection 취약점을 자동으로 찾아 줍니다. [ 다운로드 클릭 ]

15. NGSS SQL Injector - 데이터베이스에 저장된 데이터를 액세스하기 위한 SQL Injection취약점을 이용하여 익스플로잇합니다. Access, DB2, Informix, MSSQL, MySQL, Oracle, Sysbase 등 다양한 데이터베이스를 지원합니다. [ 다운로드 클릭 ]

출처 : http://www.ntfaq.co.kr/3909
신고
Posted by marga
1.    트랜잭션 로그 파일을 백업하여 대부분의 활성 가상 로그 파일을 비활성화합니다. 이렇게 하면 나중에 비활성 가상 로그 파일을 제거할 수 있습니다. 이렇게 하려면 다음 Transact-SQL 문과 유사한 Transact-SQL 문을 실행하십시오.
BACKUP LOG <DatabaseName> TO DISK = '<BackupFile>'

참고 이 문에서 <DatabaseName>은 백업할 데이터베이스 이름의 자리 표시자이고, <BackupFile>은 백업 파일의 전체 경로에 대한 자리 표시자입니다.

예를 들어, 다음 Transact-SQL 문을 실행하십시오.
BACKUP LOG TestDB TO DISK='C:\TestDB1.bak'

2.    트랜잭션 로그 파일을 축소합니다. 이렇게 하려면 다음 Transact-SQL 문과 유사한 Transact-SQL 문을 실행하십시오.
DBCC SHRINKFILE (<FileName>, <TargetSize>) WITH NO_INFOMSGS

참고 이 문에서 <FileName>은 트랜잭션 로그 파일 이름의 자리 표시자이고, <TargetSize>는 트랜잭션 로그 파일의 대상 크기에 대한 자리 표시자입니다. 대상 크기는 합리적이어야 합니다. 예를 들어, 두 개의 가상 로그 파일보다 작은 크기로 트랜잭션 로그 파일을 축소할 수는 없습니다.
3.    DBCC SHRINKFILE 문이 트랜잭션 로그 파일을 대상 크기로 축소하지 않을 경우 1단계에서 언급한 BACKUP LOG 문을 실행하여 가상 로그 파일을 추가로 비활성화합니다.
4.    2단계에서 언급한 DBCC SHRINKFILE 문을 실행합니다. 이 작업을 수행하고 나면 트랜잭션 로그 파일이 대상 크기와 비슷해집니다.

ex) DBCC SHRINKFILE (db_Log, 1) WITH NO_INFOMSGS


출처 : http://support.microsoft.com/kb/907511
신고

'Developer > MS SQL' 카테고리의 다른 글

MS SQL 시스템 저장 프로시저  (0) 2010.01.04
SQL Server의 트랜잭션 로그 파일 축소  (0) 2007.05.06
Posted by marga
TAG log, SQL

DECLARE @dt AS   DATETIME
SET @dt = '12/28/2006 16:32:14'

----------------------------------------------


예제1) CONVERT 이용한 기본 포맷 보기

CONVERT ( data_type [ ( length ) ] , expression [ , style ] )

----------------------------------------------

SELECT CONVERT(NVARCHAR, @dt, 100)

핑크 부분만 바꿔준 결과 보자.


100 --- Dec 28 2006  4:32PM
101 --- 12/28/2006

102 --- 2006.12.28

103 --- 28/12/2006

104 --- 28.12.2006

105 --- 28-12-2006

106 --- 28 Dec 2006

107 --- Dec 28, 2006

108 --- 16:32:14

109 --- Dec 28 2006  4:32:14:000PM
110 --- 12-28-2006
111 --- 2006/12/28
112 --- 20061228
113 --- 28 Dec 2006 16:32:14:000
114 --- 16:32:14:000

----------------------------------------------


예제2) DATEPART 이용한 기본 포맷 보기

DATEPART ( datepart , date )

* INT 값으로 결과가 나타난다.

----------------------------------------------

SELECT DATEPART(YEAR, @dt)

핑크 부분만 바꿔준 결과 보자.


YEAR (YY, YYYY) --- 2006

QUARTER (Q) --- 4 (분기)
MONTH (M, MM) --- 12

DAYOFYEAR (DY) --- 362 (일년중에 몇번째 날인지 알아볼때)

WEEK (WK, WW) --- 52 (몇번째 주인지 알아볼때)

DAY (D, DD)--- 28

WEEKDAY (DW) --- 5 (일주일에서 몇번째 날인지 알아볼때, 월요일 = 1, 화요일 = 2, ..., 일요일 = 7)

HOUR (HH) --- 16

MINUTE (MI, N)--- 32

SECOND (S, SS) --- 14

MILLISECOND (MS) --- 0


* ()안에는 대체할수 있는 약어들.

----------------------------------------------


예제3) LEFT / RIGHT / SUBSTRING 이용해서 나한테 필요한 부분만 콕 찝어 보기

LEFT / RIGHT / SUBSTRING 은 스트링 펑션이니까 예제 1 결과물을 이용하면 딱이겠죠. ^^

----------------------------------------------

SELECT CONVERT(NVARCHAR, @dt, 108)
결과)16:32:14


SELECT LEFT(CONVERT(NVARCHAR, @dt, 108), 5)  '왼쪽에서부터 5번째까지 보여주기.

결과)16:32



SELECT CONVERT(NVARCHAR, @dt, 100)

결과)Dec 31 2006  4:32PM


SELECT RIGHT(CONVERT(NVARCHAR, @dt, 100), 2)  '오른쪽에서부터 2번째까지 보여주기.

결과)PM


SELECT CONVERT(NVARCHAR, @dt, 106)

결과)28 Dec 2006

SELECT SUBSTRING(CONVERT(NVARCHAR, @dt, 106), 4, 3)  '왼쪽에서 4번째 글자부터 3글자 보여주기.

결과)Dec

----------------------------------------------

신고
Posted by marga
TAG datetime, SQL

sp_password

Microsoft® SQL Server™ 로그인의 암호를 추가 또는 변경합니다.

구문

sp_password [ [ @old = ] 'old_password' , ]
    { [ @new =] 'new_password' }
     [ , [ @loginame = ] 'login' ]

인수

[@old =] 'old_password'

이전 암호입니다. old_passwordsysname이며 기본값은 NULL입니다.

[@new =] 'new_password'

새 암호입니다. new_passwordsysname이며 기본값은 없습니다. 명명된 매개 변수를 사용하지 않으면 old_password는 지정되어야 합니다.

[@loginame =] 'login'

암호 변경에 영향을 받는 로그인의 이름입니다. loginsysname이며 기본값은 NULL입니다. login은 이미 존재해야 하며 sysadmin 고정 서버 역할의 구성원만이 지정할 수 있습니다.

반환 코드 값

0(성공) 또는 1(실패)

비고

SQL Server 암호는 글자, 기호 및 숫자를 포함하여 1자에서 128자까지의 문자를 포함할 수 있습니다.

새 암호는 암호화된 형식으로 업데이트 및 저장되므로 사용자 뿐만 아니라 시스템 관리자라도 암호를 볼 수 없습니다.

sysadmin 또는 securityadmin 고정 서버 역할의 구성원이 모든 세 인수와 함께 sp_password를 사용하여 자신의 암호를 재설정하는 경우, 감사 기록에는 다른 사람의 암호를 변경하는 것으로 나타냅니다.

sp_password는 Microsoft Windows NT® 보안 계정과는 사용할 수 없습니다. Windows NT 네트워크 계정을 통해 SQL Server에 연결하는 사용자는 Windows NT에 의해 인증되므로 암호는 Windows NT에서만 변경할 수 있습니다.

sp_password는 사용자 정의 트랜잭션에서 실행할 수 없습니다.

사용 권한

자신의 로그인의 암호를 변경하는 사용자에 대해 public 역할에 대한 기본 권한을 실행합니다. sysadmin 역할의 구성원만이 다른 사용자 로그인의 암호를 변경할 수 있습니다.

예제
A. 이전 암호 없이 로그인의 암호 변경

다음은 Victoria 로그인의 암호를 ok로 변경하는 예제입니다.

EXEC sp_password NULL, 'ok', 'Victoria'
B. 암호 변경

다음은 Victoria 로그인의 암호를 ok에서 coffee로 변경하는 예제입니다.

EXEC sp_password 'ok', 'coffee'
신고

'Technical' 카테고리의 다른 글

ASP에서 join과 split을 이용한 문자열 파싱(parsing)  (0) 2007.03.01
SQL 사용자 비밀번호 변경하기 (sp_password)  (0) 2007.02.28
정규식  (0) 2007.02.27
용량계산기  (0) 2007.02.25
Posted by marga
TAG SQL