攻防世界_SQL注入

inget

尝试万能钥匙。

输入?id=1'or'1=1#

5cf58094b2ca4d4d83ab807d0e379547.png

 

supersqli

1.找注入点

输入框

44886641dfe74930a8a3b7883c116483.png

 

2.判断字符型,数字型

输入1 and 1=1 和1 and 1=2,发现两次提交后页面一样,判断出为字符型注入

 

3.判断闭合符号

 

输入1,回显正常

输入1',报错

70a2d5e7769640d987f147427bee42df.png 

 加上注释符号#或者--+或者%23(注释掉后面语句,使1后面的单引号与前面的单引号成功匹配就不会报错)页面回显正常,那么闭合符号就是单引号。

输入 1#,回显正常

 

4.判断字段数量

输入1' order by 3 # ,则2个

fee7c547da684efd888c7b3c9c42d519.png

 

5.联合注入

输入1' union select 1,2 #

a56d271dbadd4432a9c58b2281c18901.png

 return preg_match("/select|update|delete|drop|insert|where|\./i",$inject);

  • select|update|delete|drop|insert|where:这部分表示匹配其中的任何一个单词。| 是一个逻辑“或”操作符,意味着它会匹配它前面的或后面的任何一个模式。
  • \.:. 在正则表达式中是一个特殊字符,代表匹配任何字符(除了换行符)。为了匹配实际的点字符.,我们需要使用 \.。
  • i:这是一个修饰符,表示匹配是不区分大小写的。
  • 代码会检查$inject字符串中是否包含“select”、“update”、“delete”、“drop”、“insert”、“where”或点.(不考虑大小写)。
  • 如果匹配到任何这些模式,preg_match会返回1,表示匹配成功。如果没有匹配到,它会返回0。
  • return 关键字表示这个函数会直接返回preg_match的结果。

本行代码是关键字过滤,且无视大小写。

通过检查用户输入(这里是 $inject )中是否包含这些可能用于构造恶意SQL语句的关键字,如果包含则可能拒绝该输入或采取其他安全措施。

 

因包含select,所以要绕过,

使用堆叠注入

输入1' ; show databases; #

3727cf21b1ce4690959fa06010fb8c4b.png

 发现supersqli数据库名和题目一样,猜测有flag

输入1';use supersqli;show tables;#

b9487afd2d7d43918e475bd17b06c114.png

 有两个表,先打开看看有什么字段

(纯数字为表名要打引号)

 

查看191,输入1';use supersqli; show columns from `1919810931114514`;#

710db14f4e744ec8baacd3421e29de56.png

发现flag。 

输入1';rename tables `words` to `words1`;rename tables `1919810931114514` to `words`; alter table `words` change `flag` `id` varchar(100);#

  •   - 1'; :闭合前面可能存在的SQL语句,并开始注入新的恶意语句。
  •   
  •   - rename tables 'words' to 'words1'; :将名为 words 的表重命名为 words1 。
  •   
  •   - rename tables '1919810931114514' to 'words'; :将名为 1919810931114514 的表重命名为 words ,这可能是攻击者事先创建的一个表,里面可能包含恶意数据或结构。
  •   
  •   - alter table 'words' change 'flag' 'id' varchar(100); :修改 words 表(此时已经是攻击者重命名后的表)中名为 flag 的列,将其重命名为 id ,并将数据类型设置为 varchar(100) 。这样做可能是为了隐藏真正的 flag 列,或者是为了后续的操作做准备,比如将恶意数据插入到该列中。
  •   
  •   - # :注释掉后面可能存在的其他SQL代码,确保注入的语句能够完整执行

  在SQL中, rename 用于更改对象的名称。

本行代码中已知表 words 为查询的默认表,则可以利用 rename 关键字将 表word改名为words,并将表 1919810931114514改名为 word,这样默认查询的表就变成了原先的 表1919810931114514,并将列 flag 改为 id,这样进行查询,用万能语句,得到flag

1' or 1=1#

f478b8a73a2c4444a00873ee0656875b.png

 

get_post

用GET方式,直接在URL输入?a=1

84386f2556c144e6adc982d92026ffd9.png

 

用POST方式,点post data,输入b=2

94d4a13ce24145ed9c2d24d855c0a87a.png

 

 

NewsCenter

(题目加载不出来,就只看了看别人的博客)

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

idea 如何安装 github copilot

idea 如何安装 github copilot 要在 IntelliJ IDEA 中安装 GitHub Copilot,可以按照以下步骤操作: 打开 IntelliJ IDEA: 启动 IntelliJ IDEA。 打开插件管理器: 点击菜单栏中的 File。 选择 Settings(Windows/Linux)或 Prefere…

怎么把文章发表到网上?在平台上投稿文章会有哪些常见问题?

怎么把文章发表到网上?在发表文章的过程中,我们可能会碰到各种各样的问题。这些问题要么导致发表时间被拖长,要么可能导致文章被拒稿。 就让我们来了解下文章发表过程中需要注意的一些细节,知晓怎么顺利地把文章发表到网上。 一、…

检验统计量与p值笔记

一、背景 以雨量数据为例,当获得一个站点一年的日雨量数据后,我们需要估计该站点的雨量的概率分布情况,因此我们利用有参估计的方式如极大似然法估计得到了假定该随机变量服从某一分布的参数,从而得到该站点的概率密度函数&#x…

【Flink系列】6. Flink中的时间和窗口

6. Flink中的时间和窗口 在批处理统计中,我们可以等待一批数据都到齐后,统一处理。但是在实时处理统计中,我们是来一条就得处理一条,那么我们怎么统计最近一段时间内的数据呢?引入“窗口”。 所谓的“窗口”&#xff…

主链和Layer2之间资产转移

主链和Layer2之间资产转移 主链和Layer2之间资产转移是实现Layer2技术的关键环节,以下是资产转移的流程、流行解决方案及原理: 资产从主链转移到Layer2 用户在主链上发起一笔交易,将资产发送到一个特定的智能合约地址,这个合约是主链与Layer2之间的桥梁。智能合约会锁定用…

mybatis xml sql

1. mybatis根据某一个字段根据以及集合中的列表进行模糊匹配 mapper List<Message> selectByLinkList(Param("userId") String userId, Param("messageName") String messageName, Param("anJinGoodsNameList") List<String> anJi…

C#轻松实现条形码二维码生成及识别

一、前言 大家好&#xff01;我是付工。 今天给大家分享一下&#xff0c;如何基于C#来生成并识别条形码或者二维码。 二、ZXing.Net 实现二维码生成的库有很多&#xff0c;我们这里采用的是http://ZXing.Net。 ZXing是一个开放源码的&#xff0c;用Java实现的多种格式的一…

OpenCV实现Kuwahara滤波

Kuwahara滤波是一种非线性的平滑滤波技术&#xff0c;其基本原理在于通过计算图像模板中邻域内的均值和方差&#xff0c;选择图像灰度值较为均匀的区域的均值来替代模板中心像素的灰度值。以下是Kuwahara滤波的详细原理说明&#xff1a; 一、基本思想 Kuwahara滤波的基本思想…

24-25-1-单片机开卷部分习题和评分标准

依据相关规定试卷必须按评分标准进行批改。 给分一定是宽松的&#xff0c;能给分一定给&#xff0c;如有疑问也可以向学院教务办申请查卷。 一部分学生期末成绩由于紧张或其他原因导致分数过低&#xff0c;也是非常非常遗憾的。 个人也是非常抱歉的。 开卷考试 简答题 第一…

使用opencv.js 的时候报错 Uncaught 1022911432

需求&#xff1a; -如题 进程&#xff1a; 这个报错是opencv 内存溢出了可以在开始的时候分配更多的内存cv.setMemoryManagement(1024 * 1024 * 50)OpenCV.js 中&#xff0c;很多对象&#xff08;如 Mat&#xff09;需要手动释放。如果你频繁创建矩阵或图像对象而不释放&…

Android SystemUI——服务启动流程(二)

在 Andorid 系统源码中,package/apps下放的是系统内置的一些 APP,例如 Settings、Camera、Phone、Message 等等。而在 framework/base/package 下,它们也是系统的 APP,SystemUI 就在此目录下。它控制着整个 Android 系统的界面,但其实他也是一个 APP,不同于一般的 APP,它…

AI学习之自然语言处理(NLP)

自然语言处理&#xff08;Natural Language Processing&#xff0c;NLP&#xff09;是计算机科学、人工智能和语言学领域的交叉学科&#xff0c;旨在让计算机能够理解、处理和生成人类语言。以下为你详细介绍&#xff1a; 自然语言处理的关键技术 词法分析&#xff1a;将文本…

linux之进程信号(初识信号,信号的产生)

目录 引入一、初识信号(信号预备知识)1.生活中的信号2.Linux中的信号3.信号进程得出的初步结论 二、信号的产生1.通过终端输入产生信号拓展: 硬件中断2.调用系统函数向进程发信号3.硬件异常产生信号4.软件条件产生信号拓展: 核心转储技术总结一下&#xff1a; 引入 一、初识信…

【工具类】获取日出日落时间的Java工具类

博主介绍&#xff1a;✌全网粉丝22W&#xff0c;CSDN博客专家、Java领域优质创作者&#xff0c;掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域✌ 技术范围&#xff1a;SpringBoot、SpringCloud、Vue、SSM、HTML、Nodejs、Python、MySQL、PostgreSQL、大数据、物…

Open FPV VTX开源之betaflight配置

Open FPV VTX开源之betaflight配置 1. 源由2. 配置3. 总结4. 参考资料5. 补充 - 飞控固件版本 1. 源由 飞控嵌入式OSD - ardupilot配置使用betaflight配套OSD图片。 Choose correct font depending on Flight Controller SW. ──> /usr/share/fonts/├──> font_btfl…

(双系统)Ubuntu+Windows解决grub引导问题和启动黑屏问题

Introduction ‍ 解决双系统的 Windows 的启动项失踪和grub正常的情况下启动 Windows 系统出现黑屏的问题。 ‍ Note: ‍ 我的系统是 Ubuntu 24.04 LTS desktop​&#xff0c;安装了双系统&#xff08;先安装 Win &#xff0c;再安装 Ubuntu&#xff09; ‍ 文章目录 In…

Python从0到100(八十三):神经网络-使用残差网络RESNET识别手写数字

前言: 零基础学Python:Python从0到100最新最全教程。 想做这件事情很久了,这次我更新了自己所写过的所有博客,汇集成了Python从0到100,共一百节课,帮助大家一个月时间里从零基础到学习Python基础语法、Python爬虫、Web开发、 计算机视觉、机器学习、神经网络以及人工智能…

docker安装和测试redis步骤

docker安装和测试redis步骤 一、官方推荐安装方式&#xff1a; 1、执行 docker pull redis:4.0.1 命令&#xff0c;下载 redis 镜像&#xff0c;如下所示&#xff1a; 2、执行命令&#xff0c;创建并启动redis容器 docker run - -rm -d - -name redis6379 -p 6379:6379 r…

微信小程序原生与 H5 交互方式

在微信小程序中&#xff0c;原生与 H5 页面&#xff08;即 WebView 页面&#xff09;之间的交互通常有以下几种方式&#xff1a; 1. 使用 postMessage 进行通信 微信小程序的 WebView 页面和原生小程序页面可以通过 postMessage 来进行数据传递。 WebView 页面向原生小程序发…

Linux 系统下查看磁盘是SSD还是HDD命令

smartctl工具查看 smartctl -a /dev/sda | grep Rotation RateRotation Rate: Solid State Device 如果驱动器是 SSD&#xff0c;则输出将如下所示。 Rotation Rate: Solid State Device 而且&#xff0c;如果驱动器是 HDD&#xff0c;则输出将如下所示。 Rotation Rate: 5400 …