SQL注入简介

一、sql注入概述

sql注入即是指web应用程序对用户输入数据的合法性没有判断或过滤不严,攻击者可以在web应用程序中事先定义好的查询语句的结尾上添加额外的sql语句,在管理员不知情的情况下实现非法操作,以此来实现欺骗数据库服务器执行非授权的任意查询,从而进一步得到相应的数据信息。

二、sql注入原理

sql注入需要满足两个条件:

参数用户可控:前端传给后端的参数内容是用户可以控制的。

参数带入数据库查询:传入的参数拼接到sql语句,且带入数据库查询。

三、相关知识

1.默认的库、表

例如mysql5.0以后,有一个默认的库information_schema,里面存放了大量的信息,其中:

SCHEMATA:该表中存放了mysql实例中所有数据库的信息。

TABLES:该表提供了序数据库中表的信息。详细描述了每个库中包含的表的名字、类型、创建时间等信息。

COLUMNS:该表提供了表中列的信息。详细描述了某张表的所有列以及每个列的信息。
2.默认函数和表达式

Version()数据库版本
Database()当前数据库名
User()当前登录用户
system_user()系统用户名
current_usre()当前用户名
session_user连接数据库的用户名
@@datadir读取数据库路劲
@@basedirmysql安装路径
@@version_compile_os查看操作系统版本
@@hostmane计算机名
@@character_set_database显示字符集

3.注入点查找 

四、sqlmap基础命令

sqlmap是用于sql注入的工具,在发现注入点后,就可以通过sqlmap获取到数据库中的信息。命令如下:

sqlmap -u “注入点URL” :查询该点是否存在注入

检查到注入点后,就可以接以下参数,进行注入:

--dbs检测站点包含哪些数据库
--current-db获取当前的数据库名
--tables-D"db_name"获取指定数据库中的表名-D后接指定的数据库名称
--columns-T"table_name"-D"db_name"获取数据库表中的字段
--dump-C"columns_name"-T"table_name"-D"db_name"获取字段的数据内容
--purge重新扫描(--purge 删除原先对该目标扫描的)
--current-user检测当前用户
 --is-dba判断站点的当前用户是否为数据库管理员
 --batch 默认确认,不询问你是否输入
 --threads 10 线程,sqlmap线程最高设置为10
 --level 3 最高为5
--risk 3默认为1。risk越高,越慢但是越安全
--privileges查看权限
--cookie"cookie"添加cookie进行注入
--referer使用referer欺骗
--user-agent自定义user-agent

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值