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

Pikachu靶场实战:SQL注入漏洞深度解析与防御指南

1. SQL注入漏洞初探从Pikachu靶场开始第一次接触SQL注入时我完全被这种通过输入框就能控制数据库的神奇攻击方式震惊了。在Pikachu靶场这个专为Web安全学习设计的实验环境中我们可以安全地体验各种SQL注入攻击手法。不同于真实网站的违法风险这里可以放心大胆地练习。SQL注入的本质就是攻击者通过构造特殊输入改变原有SQL语句的逻辑。比如一个简单的登录场景开发者原本的SQL可能是SELECT * FROM users WHERE username输入的用户名 AND password输入的密码但如果用户在用户名输入admin--SQL就变成了SELECT * FROM users WHERE usernameadmin-- AND password任意密码--后面的内容被注释掉系统直接返回admin用户的信息完全绕过了密码验证。在Pikachu靶场中这种基础注入场景被设计得非常直观特别适合新手理解原理。2. 数字型注入实战Burp Suite配合攻击2.1 环境准备与请求捕获首先启动Pikachu靶场的数字型注入模块我习惯用Burp Suite这个神器来拦截请求。配置好浏览器代理后在靶场页面随便输入个数字点击查询Burp的Proxy模块就会立即捕获到这个POST请求。右键发送到Repeater模块这里可以反复修改和发送请求是测试注入的绝佳场所。2.2 确定字段数量的技巧在Repeater中修改id参数为1 order by 4点击Send发现报错说明字段数少于4。逐步降低数字测试当order by 3时报错但order by 2正常时就确定了字段数是2。这个步骤就像在黑暗中摸索房间的大小通过不断试探边界来获取信息。2.3 信息提取全流程接下来用union select确定回显位我常用的payload是id1 union select 1,2看到页面显示数字1和2的位置后就可以在这些位置替换我们需要的信息。比如获取数据库名id1 union select 1,database()要获取表名时这个payload特别实用id1 union select 1,group_concat(table_name) from information_schema.tables where table_schemapikachu记得第一次成功爆出表名时那种原来数据库这么透明的震撼感至今难忘。之后用同样的方法获取users表的列名和数据整个过程就像剥洋葱一样层层深入。3. 字符型注入的闭合技巧3.1 识别闭合方式字符型注入最大的特点就是需要处理引号闭合。在Pikachu的GET型注入点输入1时页面报错但加上注释符后1--页面恢复正常这就确定了闭合符号是单引号。不同场景下可能是双引号、括号等组合测试时要耐心尝试。3.2 URL编码的注意事项由于是通过URL传参特殊字符需要编码。比如空格变成%20单引号是%27注释符--后面要加空格用--表示。实际攻击时我经常犯的错就是忘记编码导致payload不生效。经过多次踩坑后现在我会先用浏览器开发者工具观察自动编码的效果。3.3 联合查询实战构造URL时完整的注入过程如下爆列数name1%27%20order%20by%202-- 看显位name1%27%20union%20select%201,2-- 爆数据name1%27%20union%20select%20username,password%20from%20users--GET型注入的优势是所见即所得所有操作直接在URL中完成非常适合演示SQL注入原理。但实际环境中POST型注入更为常见。4. 搜索型与XX型注入的独特之处4.1 搜索型注入的百分号陷阱搜索型注入的闭合符号通常包含百分号%这是最容易被忽略的细节。在Pikachu靶场中输入1报错显示%附近有语法错误就提示我们需要用%来闭合。正确的payload形如name1%%27union select 1,2,3--这种注入在电商网站的商品搜索等功能中很常见开发者容易忽视对百分号的过滤。4.2 XX型注入的括号难题XX型注入最大的特点是闭合时需要处理括号。输入1报错但1)正常时说明闭合符是)。这类注入常出现在存储过程调用等场景payload需要特别注意括号匹配name1%27)union select 1,2--在实际渗透测试中遇到报错信息一定要仔细阅读里面往往藏着关键的闭合提示。5. Insert/Update注入的隐蔽攻击5.1 注册功能的注入利用Pikachu靶场的insert注入模块模拟了用户注册场景。注册时用Burp拦截请求在用户名参数插入or updatexml(1,concat(0x7e,database()),1)or这个payload利用了XML函数报错回显的特性。0x7e是波浪号~的十六进制作为分隔符使回显更明显。当数据库名出现在报错信息中时就实现了信息泄露。5.2 数据截断的解决方案由于updatexml函数只能显示32位数据当需要获取更长信息时需要用substring函数分段获取。例如获取表名or updatexml(1,substring(concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schemapikachu)),1,32),1)or然后修改substring的起始位置获取剩余内容。这种注入方式不需要回显位在盲注场景特别有用。5.3 个人信息修改的update注入在用户修改资料功能处同样可以用updatexml进行报错注入。我常用的测试方法是先正常修改一次信息拦截请求后在各参数尝试插入单引号观察哪个参数存在注入点。Update注入的危害往往更大因为它可以直接修改数据库内容。6. SQL注入防御的实战方案6.1 参数化查询的绝对优势防御SQL注入最有效的方式就是使用参数化查询。以PHP为例对比危险代码和安全代码// 危险写法 $query SELECT * FROM users WHERE id $_GET[id]; // 安全写法 $stmt $pdo-prepare(SELECT * FROM users WHERE id ?); $stmt-execute([$_GET[id]]);参数化查询将输入数据严格作为参数处理从根本上避免了SQL拼接的风险。我在项目中迁移到参数化查询后注入漏洞报告直接归零。6.2 输入验证的二重防护虽然参数化查询是首选但额外的输入验证仍不可或缺。比如数字型参数应该用is_numeric()验证日期参数检查格式合法性。在Pikachu靶场的防御练习中我习惯采用白名单机制只允许预期的字符模式通过。6.3 最小权限原则数据库账户应该遵循最小权限原则。Web应用使用的数据库账号不应该有DROP TABLE、FILE等危险权限。在Pikachu的防御实验中创建一个只有SELECT权限的专用账号即使发生注入也能限制损害范围。6.4 安全工具的辅助WAF(Web应用防火墙)可以作为最后一道防线。在测试环境中部署开源的ModSecurity配置SQL注入规则集后能拦截大部分自动化攻击。但要注意WAF可能存在绕过风险不能替代代码层面的安全开发。

相关文章:

Pikachu靶场实战:SQL注入漏洞深度解析与防御指南

1. SQL注入漏洞初探:从Pikachu靶场开始 第一次接触SQL注入时,我完全被这种"通过输入框就能控制数据库"的神奇攻击方式震惊了。在Pikachu靶场这个专为Web安全学习设计的实验环境中,我们可以安全地体验各种SQL注入攻击手法。不同于真…...

HunyuanVideo-Foley效果展示:AI生成的量子计算实验室环境音效(科技感)

HunyuanVideo-Foley效果展示:AI生成的量子计算实验室环境音效(科技感) 1. 核心能力概览 HunyuanVideo-Foley是一款专为视频与音效生成设计的AI模型,其私有部署镜像经过RTX 4090D 24GB显卡的深度优化。这个镜像最令人惊艳的能力之…...

如何通过Akagi提升麻将水平:从新手到高手的智能助手指南

如何通过Akagi提升麻将水平:从新手到高手的智能助手指南 【免费下载链接】Akagi A helper client for Majsoul 项目地址: https://gitcode.com/gh_mirrors/ak/Akagi 你是否在麻将对局中常常面临这样的困境:面对复杂牌局不知如何抉择?想…...

告别设备标识混乱!用uniappx插件Ba-IdCode-U一站式获取OAID/AndroidID/IMEI(附隐私合规指南)

跨平台开发者的设备标识管理实战:从混乱到合规的完整解决方案 每次启动新项目时,开发者们是否总在纠结该用哪种设备标识?OAID、AndroidID还是IMEI?国内厂商的兼容性问题怎么解决?隐私合规的红线又在哪里?本…...

别再让时钟信号‘跑偏’了!手把手教你理解ADC中DCC电路的设计要点

高速ADC设计中的时钟占空比校正实战指南 时钟信号就像ADC系统的心跳,每一次跳动都决定着数据采样的精准度。当这个"心跳"变得不规律时,整个系统的性能就会大打折扣。在高速ADC设计中,时钟占空比失真是一个常见却又容易被忽视的问题…...

DHCP实验1

一、实验拓扑二、实验需求 1.PC1和PC2使用路由器模拟2.PC1和R1的g0/0口连接到SW的vlan10;PC2和R1的g0/1口连接到SW的vlan203.R1在vlan10的IP地址为192.168.1.1/24,vlan20的IP地址为192.168.2.1/244.在R1上配置DHCP服务,分别为2个网段分配IP地…...

实战UNet++:基于segmentation_models_pytorch的医学图像分割全流程解析

1. 医学图像分割与UNet的核心价值 医学图像分割是计算机视觉在医疗领域最重要的应用之一。与自然图像不同,CT、MRI等医学影像具有灰度范围窄、组织边界模糊、噪声干扰大等特点。传统方法需要医生手动勾画病灶区域,一张高清CT可能需要数小时,而…...

为什么你的STM32F103工程编译失败?可能是启动文件没选对!

为什么你的STM32F103工程编译失败?可能是启动文件没选对! 在嵌入式开发领域,STM32系列微控制器因其出色的性能和丰富的外设资源而广受欢迎。然而,即使是经验丰富的开发者,在STM32F103项目开发过程中也难免会遇到各种编…...

嵌入式系统的启动流程与初始化详解

嵌入式系统的启动流程与初始化详解 为什么启动流程如此重要 作为科技创业者,我深知在嵌入式产品开发中,启动流程的设计和优化直接影响产品的用户体验和可靠性。一个快速、稳定的启动流程不仅能提升产品的竞争力,还能减少客户的等待时间&#…...

Windows HEIC缩略图终极指南:3分钟让iPhone照片在Windows完美预览

Windows HEIC缩略图终极指南:3分钟让iPhone照片在Windows完美预览 【免费下载链接】windows-heic-thumbnails Enable Windows Explorer to display thumbnails for HEIC files 项目地址: https://gitcode.com/gh_mirrors/wi/windows-heic-thumbnails 你是不是…...

腾讯云+Astrbot个人AI部署,接入QQ机器人

1、腾讯云创建云服务器 之所以选择腾讯云是因为可以领一个月免费服务器 地址:https://cloud.tencent.com/ 服务器配置情况: 这里我获取的是轻量应用服务器(Lighthouse),适合网站搭建、开发测试等多种场景。以下是详细…...

【PAT甲级真题】- PAT Judge (25)

题目来源 PAT Judge (25) 题目描述点击链接自行查看 注意点: 排序:先按总分再按解决题目数再按id 思路简介 思路很简单,直接模拟即可 但是坑倒是很多 主要是要区分编译没过和过了但是得 0 分 方案: 初始化时分数为 -2 编译没…...

3分钟掌握图片比对:PicQuickCompare让你高效发现视觉差异

3分钟掌握图片比对:PicQuickCompare让你高效发现视觉差异 【免费下载链接】PicQuickCompare Compare two pictures quickly 项目地址: https://gitcode.com/gh_mirrors/pi/PicQuickCompare PicQuickCompare是一款专为快速图片比对而设计的轻量级工具&#xf…...

bilibili_live_stream_code:开源直播推流工具 解锁自定义直播新体验

bilibili_live_stream_code:开源直播推流工具 解锁自定义直播新体验 【免费下载链接】bilibili_live_stream_code 用于在准备直播时获取第三方推流码,以便可以绕开哔哩哔哩直播姬,直接在如OBS等软件中进行直播,软件同时提供定义直…...

不是删改,是升级:百考通智能降重+降AI,让语言更学术、更像“你”

在一个人工智能可以生成论文的时代,最荒诞的现实不是机器冒充人类, 而是人类因写得太像“一篇合格的学术论文”,被当作AI。 2026年,无数普通学子正陷入一场无声的困境: 你没用任何代写,却因逻辑清晰被系统…...

RS485接口EMC设计与防护电路实现

RS485接口电路的EMC设计与工程实现1. 项目概述1.1 RS485接口的EMC挑战RS485作为工业通信标准接口,其典型应用场景中信号走线常与电源线、功率信号线混合布线,导致以下EMC问题:共模干扰通过长距离传输线耦合浪涌脉冲对接口电路的冲击损坏高频噪…...

Kafka连接报错?手把手教你解决localhost:9092不可用问题(附真实案例)

Kafka连接报错?手把手教你解决localhost:9092不可用问题(附真实案例) 当你第一次尝试在本地环境运行Kafka生产者时,看到"Connection to node -1 (localhost/127.0.0.1:9092) could not be established"这样的报错信息&a…...

从反射率到耐候性:5个关键参数教你像专业人士一样测试LED封装胶水

从反射率到耐候性:5个关键参数教你像专业人士一样测试LED封装胶水 在LED制造领域,封装胶水就像光学系统的"隐形工程师",它不仅要牢固固定芯片和荧光粉,更承担着光线管理的关键任务。一款优质的高反射率封装胶水&#xf…...

从ImageNet到CV落地:深度解读AlexNet的6个工程优化技巧

从AlexNet到现代CV工程:6个历久弥新的优化策略解析 当AlexNet在2012年ImageNet竞赛中以压倒性优势夺冠时,它带来的不仅是准确率的飞跃,更是一套影响深远的工程实践方法论。十年过去,尽管网络架构已迭代数十代,但AlexNe…...

Windows Defender Remover:彻底移除Windows安全组件的终极解决方案

Windows Defender Remover:彻底移除Windows安全组件的终极解决方案 【免费下载链接】windows-defender-remover A tool which is uses to remove Windows Defender in Windows 8.x, Windows 10 (every version) and Windows 11. 项目地址: https://gitcode.com/gh…...

SAP资产会计数据迁移:除了AS91,你还需要检查这些关键配置(传输日期、抵销科目详解)

SAP资产会计数据迁移:AS91之外的7个关键配置陷阱与解决方案 当你在凌晨三点盯着屏幕上不平的资产折旧凭证时,AS91的简单操作指南显然已经不够用了。作为经历过数十个SAP上线项目的顾问,我发现90%的资产数据迁移问题都源于那些容易被忽略的后台…...

STM32 GPIO模式实战:开漏输出与推挽输出的5个常见应用场景解析

STM32 GPIO模式实战:开漏输出与推挽输出的5个常见应用场景解析 在嵌入式开发中,GPIO(通用输入输出)是最基础也是最常用的外设之一。STM32系列微控制器提供了多种GPIO模式,其中开漏输出(Open-Drain&#xff…...

GitHub下载加速终极指南:告别龟速,3分钟让下载速度飙升300%

GitHub下载加速终极指南:告别龟速,3分钟让下载速度飙升300% 【免费下载链接】Fast-GitHub 国内Github下载很慢,用上了这个插件后,下载速度嗖嗖嗖的~! 项目地址: https://gitcode.com/gh_mirrors/fa/Fast-GitHub …...

别只点‘Passive’!深入理解Altium Designer引脚电气类型,从根源上杜绝原理图ERC错误

深入解析Altium Designer引脚电气类型:从原理到实践的设计规范 在电子设计自动化(EDA)领域,原理图设计是整个产品开发流程的基石。许多工程师在使用Altium Designer(AD)时,往往将注意力集中在布…...

别再只会while(1)了!聊聊MCU裸机开发的6种实用架构,从51到STM32都能用

从超级循环到事件驱动:MCU裸机开发的6种架构实战指南 当你第一次点亮LED时,while(1)循环就像魔法一样简单有效。但随着项目复杂度增加——需要同时处理按键消抖、屏幕刷新、数据通信和状态管理时,那个曾经可靠的超级循环突然变成了意大利面条…...

如何快速掌握FModel:解锁虚幻引擎游戏资源的完整实战指南 [特殊字符]

如何快速掌握FModel:解锁虚幻引擎游戏资源的完整实战指南 🎮 【免费下载链接】FModel Unreal Engine Archives Explorer 项目地址: https://gitcode.com/gh_mirrors/fm/FModel FModel是一款功能强大的虚幻引擎游戏资源解析工具,能够帮…...

如何高效使用iOS推送调试工具:SmartPush完整操作指南

如何高效使用iOS推送调试工具:SmartPush完整操作指南 【免费下载链接】SmartPush SmartPush,一款iOS苹果远程推送测试程序,Mac OS下的APNS工具APP,iOS Push Notification Debug App 项目地址: https://gitcode.com/gh_mirrors/smar/SmartPush SmartPush是一款…...

基于springboot家庭影像管理系统设计与开发(源码+精品论文+答辩PPT等资料)

博主介绍:CSDN毕设辅导第一人、靠谱第一人、全网粉丝50W,csdn特邀作者、博客专家、腾讯云社区合作讲师、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行前辈交…...

Scarab:空洞骑士模组管理效率提升83%的智能工具

Scarab:空洞骑士模组管理效率提升83%的智能工具 【免费下载链接】Scarab An installer for Hollow Knight mods written in Avalonia. 项目地址: https://gitcode.com/gh_mirrors/sc/Scarab 如何解决模组管理难题?3大创新让你告别手动配置烦恼 对…...

Spring Boot项目实战:5步搞定sa-token与OAuth2.0的无缝整合(附完整代码)

Spring Boot项目实战:5步搞定sa-token与OAuth2.0的无缝整合(附完整代码) 在当今微服务架构盛行的时代,认证授权已成为系统设计中不可或缺的一环。对于Java开发者而言,如何在保持代码简洁的同时实现强大的权限控制&…...