SQL注入
SQL注入:是一种攻击方式,通过在字符串中插入恶意代码,带入到SQL中进行执行,服务器返回系统敏感数据。
一、利用information_schema库查询数据库中信息
1、查看所有的库
SELECT * FROM
information_schema
.SCHEMATA
;2、查看指定库中的表
SELECT table_name FROM
information_schema
.tables WHERE table_schema = ‘shiyanshi’3、查看指定表中所有的列
SELECT column_name FROM
information_schema
.columns WHERE table_name = ‘itptc_users’ and schema = ‘shiyanshi’
二、SQL注入的一般流程
-
1、判断是否是注入点
-
2、判断数据库的指纹信息
-
3、 获取库名
-
4、获取表名
-
5、获取列名
-
6、获取数据
三、SqlMap
1常用参数介绍
1、获取当前库库名
--current-db
2、获取所有的库名
--dbs
3、指定库
-D "库名"
4、获取所有的表
--tables
5、指定表
-T "表名"
6、获取所有列
--col
7、指定列,并获取数据
-C "uname,passwd" --dump
8、风险系数,越大使用的语句越高级,但风险越大
--risk=3 #等级范围:1-3
9、级别越高发送的攻击就越多
--level=5 #等级范围:1-5
10、指定数据库类型
--dbms=mysql
11、指定多个url
sqlmap -m "d:/url.txt" --batch # -m:指定URL文件 --batch:默认参数执行
12、绕WAF:脚本在tamper文件夹下
--tamper "WAF脚本名"
四、SQL注入漏洞防御
1、过滤:
- 限制长度
- 识别恶意内容:union、information_schema、order by…