如何使用加密的Payload来识别并利用SQL注入漏洞?

本文讲的是如何使用加密的Payload来识别并利用SQL注入漏洞?,不可否认,密码学具有各种各样的优点,比如信息的机密性,但是对于密码过分的依赖,利用其保护应用程序俨然是一个坏主意。在这篇文章中我们app安全的首席培训师森尔·亚达夫,将针对一个案例进行研究,其中有一个SQL注入漏洞是通过加密的payload来进行识别和利用的。

注意:我们在本文中讨论的问题并不是加密(即如何破解密码),而是应用程序自身的缺陷,并且能够由开发人员进行监督,使我们生成加密的有效负载(即任何给定明文的密文),然后将其用于识别和利用SQL注入。

实际的案例在现实中其实是比较难发现的,因此我们在我们的hack实验室中重新创建了一个类似的漏洞,用于此演示,下面将会进行详细的介绍:

在最近的一个电子商务应用程序中,我们观察到大多数请求参数值已被加密。当请求参数被加密时,很难fuzz应用程序,除非可以中断加密(这需要知道密钥和加密算法),而这段时间内从黑盒子中获得这些是不太可能的。具体情况可以查看我们上一篇关于黑客隐私的文章,从而能够更了解这个问题。

这是订单详细信息页面的示例,其中以加密格式发送id(orderid)参数。

注意:参数值(BDKfx3xNKsc = )是加密的,而不是简单的base64编码。ID参数的加密值以base64编码格式表示。

我们还注意到,如果我们退出应用程序,然后以相同的用户登录并导航到完全相同的页面,则加密参数(nPBri1km2ic = )的值现在不同,如下所示:

这提供了一个很好的指示,即随机密钥在每个成功的登录或会话ID(cookie的一部分)中用于加密,以某种方式用作密钥的一部分。这些看起来会很安全吗?我们原本想试着找一些加密的缺陷,但似乎运气并不好。

首先,我们尝试在几个位置注入单引号(')来测试输入验证。但请求参数被拒绝了,因为这些参数需要加密格式(即有效的密文),因此我们似乎走到了墙角。

然后我们偶然发现了一个小车分享功能,此功能允许用户与其他人共享购物车项目。当用户保存购物车进行共享时,会产生一个带有随机查询令牌的链接。通过访问此链接(URL),用户可以访问彼此的购物车,而在购物车可以保存之前,用户会被要求在购物车中输入一个名字。

由于这是接受明文输入的罕见输入字段之一,所以我们对其进行了SQLi,XSS以及其他所有的Fuzz!但却再次陷入了困境。

这时我们意识到,我们实际上偶然间发现了一些非常有趣的事情。在更深入的了解后,事实证明,生成的URL中的令牌共享购物车实际上是我们为购物车选择的购物车名称的密码。

注意:Share cart功能不容易受到任何攻击的影响,但可以用于为给定输入(明文)生成加密的有效内容(密文)。现在,可以生成一个加密的攻击有效载荷来检查应用程序对SQL注入,访问权限绕过等漏洞的行为。为了测试SQL注入,我们生成了单引号(')的加密值,如下所示:

加密的有效载荷用于模糊仅接受密文值作为输入的各种应用参数。我们花了一些时间来打到正确的位置,但是最终orderitem页面的ID参数返回一个SQL错误消息,确认了该漏洞,如下所示:

该错误消息证明了应用程序生成的动态查询很容易就会受到SQL注入攻击。而现在从数据库中提取信息的时候到了,基于UNION的SQL查询可用于从数据库中提取数据,联合运算符可用于组合两个或多个select语句的结果。

第一个任务是确定作为SQL查询的一部分返回的列数。使用试错,我们在查询中返回了一些列(30)。现在是时候从数据库中提取信息了。我们创建了一个加密的负载来提取数据库版本信息,如下所示:

然后,由上述有效载荷的输出生成的密文作为页面上显示DB版本的易受攻击的ID参数的输入。

最后我们使用这个漏洞构建了数据库系统,并最终得到一个shell!

结论

加密参数来实现应用程序中的安全性是一个比较隐蔽的安全性例子。加密不会使软件更安全,但使用强加密算法加密的数据保密,直到时间密钥受到保护或恶意角色识别生成加密有效载荷的方式,已经被认为是保护数据免遭篡改或欺骗的事实机制。然而我们在这篇文章中看到,由于执行不力和缺乏明确管理方法可能会导致出现相当破坏性的安全漏洞。

原文发布时间为:2017年4月20日

本文作者:Change

本文来自合作伙伴嘶吼,了解相关信息可以关注嘶吼网站。

原文链接

时间: 2024-10-27 17:04:53

如何使用加密的Payload来识别并利用SQL注入漏洞?的相关文章

如何使用加密的Payload来识别并利用SQL注入漏洞

写在前面的话 密码学具有诸多优点,信息的保密性同样离不开密码学,但是从历史经验来看,在保护应用和数据安全方面我们绝对不能过分依赖于密码学.在这篇文章中,安全教育培训专家SunilYadav将会讨论一个案例,并介绍如何通过一个加密的Payload来发现并利用SQL注入漏洞. 请注意:我们在此不打算讨论密码学方面的问题(例如如何破解加密算法),我们讨论的是应用程序的安全缺陷,这方面问题是很多开发者最容易忽略的问题,而本文所描述的这个漏洞将允许我们通过一个加密的Payload来识别并利用程序中的SQL

如何识别和利用用户情绪

在日常的可用性测试.深访.座谈会等调研中,无论是作为主持人还是观察员,我们会发现一些有意思的现象:用户在参与的过程中,有做沉思状态.有茫然感.有皱眉等,除此之外,还会出现一些肢体动作,如耸肩.双手交叉等;以及伴随一些语气语调的变化,如咦.哦.啧等.用户展现出的如此丰富.有意思的面部表情.肢体动作以及语气语调,和我们的调研项目很多方面存在直接的关系. 调研中常见情绪情景 在日常调研中,和用户的交流主要在用户招募.定性调研执行阶段: 1)在招募用户过程中,尤其是只闻其声不见其人的电话招募,我们会发现

用户情绪应该怎么识别和利用

在日常的可用性测试.深访.座谈会等调研中,无论是作为主持人还是观察员,我们会发现一些有意思的现象:用户在参与的过程中,有做沉思状态.有茫然感.有皱眉等,除此之外,还会出现一些肢体动作,如耸肩.双手交叉等;以及伴随一些语气语调的变化,如咦.哦.啧等.用户展现出的如此丰富.有意思的面部表情.肢体动作以及语气语调,和我们的调研项目很多方面存在直接的关系. 调研中常见情绪情景 在日常调研中,和用户的交流主要在用户招募.定性调研执行阶段: 1)在招募用户过程中,尤其是只闻其声不见其人的电话招募,我们会发现

一个简单的后台与数据库交互的登录与注册[sql注入处理、以及MD5加密]_mssql2008

一.工具:  vs2013[因为我现在用的也是2013,版本随便你自己开心]  sql2008[准备过久升级]  二.用到的语言 HTML+CSS+Jquery+Ajax+sqlserver HTML[相当于一个人] css[要穿衣服] Jquery[人要做一些动作,Jquery是对js一些常用方法的封装] Ajax[建立前端页面与数据库的交互] sqlserver[数据库]  三.过程html部分代码: <body> <div id="header"> <

利用Burp“宏”自动化另类 SQLi

本文讲的是利用Burp"宏"自动化另类 SQLi,有许多工具可用于Web应用程序自动化测试.最著名的工具可能是sqlmap. 通过一些简单的命令,Sqlmap就可以轻松地识别和利用SQL注入漏洞.然而,诸如CSRF令牌或一些简单的反自动化技术,例如在表单中包含一个唯一的隐藏字段,就可以防止自动化工具正确工作. Burp Suite中的宏是绕过这些防护措施以便能够执行自动化测试的好方法,尽管那些防护措施实现起来可能很复杂. 在这篇文章中,我们会使用一个示例应用程序,用户可以在此应用程序中

热榜:2015 年度渗透测试神器 TOP 10

现在,安全研究者对网站或者应用程序进行渗透测试而不用任何自动化工具似乎已越来越难.因此选择一个正确的工具则变得尤为重要,正确的选择甚至占去了渗透测试成功半壁江山. 如果你在网络上搜索渗透测试工具,你会找到一大堆,其中不乏付费的.免费的.商业的以及开源的.但是,热门的测试工具都有哪些呢?这里我们将为大家梳理出2015年度十大最佳渗透测试工具. 之所以强调是本年度的,这点尤为重要,因为研究者使用的工具年复一年的都在发生着变化. Metasploit -- 独一无二,不可取代 Metasploit 自

SQL注入攻击的原理及其防范措施

攻击 ASP编程门槛很低,新手很容易上路.在一段不长的时间里,新手往往就已经能够编出看来比较完美的动态网站,在功能上,老手能做到的,新手也能够做到.那么新手与老手就没区别了吗?这里面区别可就大了,只不过外行人很难一眼就看出来罢了.在界面的友好性.运行性能以及网站的安全性方面是新手与老手之间区别的三个集中点.而在安全性方面,新手最容易忽略的问题就是SQL注入漏洞的问题.用NBSI 2.0对网上的一些ASP网站稍加扫描,就能发现许多ASP网站存在SQL注入漏洞,教育网里高校内部机构的一些网站这种漏洞

10大关系数据库SQL注入工具一览

  BSQL Hacker BSQL Hacker是由Portcullis实验室开发的,BSQL Hacker 是一个SQL自动注入工具(支持SQL盲注),其设计的目的是希望能对任何的数据库进行SQL溢出注入. BSQL Hacker的适用群体是那些对注入有经验的使用者和那些想进行自动SQL注入的人群.BSQL Hacker可自动对Oracle和MySQL数据库进行攻击,并自动提取数据库的数据和架构. The Mole The Mole是一款开源的自动化SQL注入工具,其可绕过IPS/IDS(入

渗透挑战赛:从SQL注入到管理员权限

本文讲的是渗透挑战赛:从SQL注入到管理员权限, 在本文中,Sudhanshu Chauhan探索了一条利用SQL注入漏洞获取Windows企业管理员权限的开发路径.读到这你可能会想Sudhanshu 用的是哪种方法呢?OSINT.弱凭据.密码破解.不安全配置.跳板攻击(Pivoting).绕过杀毒软件或pwnage. 要说明的是,从SQL注入到管理员权限是Sudhanshu在参加一个黑客挑战比赛时的一个项目,而且挑战的前提是,他只知道攻击企业的名称.另外,在比赛的初始阶段是禁止进行采用枚举的,