SQL注入基础

数据库

数据库就是一个存储数据的仓库
数据库式以一定方式存储在一起、能与多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合

关系型数据库

关系型数据库,存储的格式可以直观地反映实体间的关系。关系型数据库和常见的表格比较相似,关系型数据库中表与表之间是有很多复杂的关联关系的
Mysql \oracle \postgresql \sql server

非关系型数据库

随着近些年技术方向的不断拓展,大量的NO数据库
mongoDB Redis Memcached 出于简化数据库结构、避免冗余、影响性能的表连接、摒弃复杂分布式的目地被设计。适合追求速度和可扩展性、业务多变的应用场景

重要的库

  • information_schema
    是信息数据库,其中保存关于MYSQL服务器所维护的所有其他数据库的信息
  • sys
    通过这个数据库,可以查询谁使用了最多的资源,基于IP或用户,哪张表被访问的最多等等信息

删除数据库

drop database 库名;

SQL注入

主要发生在服务端服务器与数据库中
没有前端也能发生SQL注入

注释

》- -
》#

永真式

  • or 1=2

联合注入

  • union

判断SQL注入点

单引号判断法

如果页面返回错误,则存在SQL注入,原因是单引号个数不匹配
输入字符’,如果没有显示页面上,则打开开发者工具
观察reponse,返回的是语法错误提示信息就说明可能有SQL注入
在这里插入图片描述

SQL注入

所谓S0L注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字 符串,最终达到欺骗服务器执行恶意的SQL命令.具体来说,它是利用现有应用程序, 将(恶意)的SQL命令注入到后台数据库引擎执行的能力,它可以通过在Web表单中输 入(悪意)SQL语句得到一个存在安全漏洞的网站上的数据库,而不是按照设计者意图 去执行SQL语句。造成SQL注入漏洞原因有两个:一个是没有对输入的敬据进行过滤(过 建输入),还有一个是没有対发送到数据库的数据进行转义(转义输岀).

判断注入类型

字符型

select * from user where id =‘1’ and ‘1’ = ‘1’

数字型

select * from user where id =1 and 1 = 1

Like语法

  • t% 以t 开头
  • %t 以t结尾
  • %t% 包含t

查数据库

select database();

判断字段数

通过union select x,x,x,x;一个个尝试。页面正常就说明字段数正确。

  • user()
    用户名
  • version()
    数据库版本
  • database()
    数据库名
  • union select 1,user(),3,version(),database();
    使用时注意数据类型的报错提示
    如果报错,可以换位置重试

bwapp

环境搭建

  • docker search bwapp
  • docker pull raesene/bwapp
  • docker run --name bwapp -d -p 9999:80 ae8ade144c34
  • http://192.168.202.128:9999/install.php

请添加图片描述
请添加图片描述
请添加图片描述
用户名:bee
密码:bug

postman

下载安装

https://identity.getpostman.com

联合使用

选择漏洞
请添加图片描述
选择传参方式及网站地址
请添加图片描述查看cookie并添加
请添加图片描述

SQL注入修复与防御

【1】建议在代码中对数字类型的参数先进行数字类型变换,然后再代入到SQL查询 语句中,这样任何注入行为都不能成功。井且考虑过滤一些参数,比如get参数和 post参数中对于SOL语言查询的部分。
【2】过滤的特殊字符及字符串
所以防范的时候需要对用户的输入进行检查.特别式一些特殊字符,比如单 引号,双引号,分号,逗号,冒号,连接号等进行转换或者过建.以下为需过滤的敏感字符或者语句:
需要过滤的特殊字符及字符串有:
net user
xp_c«ndshel I
add
exec master.(fco. xp_cmdshelI
net I oca Igroup administrators
select
count
Asc
char
mid
□,
□:
□-
insert
delete from
drop table
update
truncate
from
%

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值