回归最本质的信息安全

厚客户端渗透测试实战(第四部分)

2016年9月13日发布

2,296
0
0

导语:在前一篇文章中,我们介绍了在DVTA厚客户端应用程序中存在的一些常见数据存储问题。在本文中,我们将讨论DVTA中存在的注入攻击,重点介绍CSV注入攻击和SQL注入攻击。

背景

在前一篇文章中,我们介绍了在DVTA厚客户端应用程序中存在的一些常见数据存储问题。在本文中,我们将讨论DVTA中存在的注入攻击,重点介绍CSV注入攻击和SQL注入攻击。

CSV注入

csv漏洞最近变得很流行,其中最为流行的要数csv注入,它利用的是导出到电子表格的功能。这是一种在web应用程序以及厚客户端上常见的功能,允许用户以CSV / XLS格式导出数据到Excel表,以便用Microsoft Excel等应用程序进行数据处理。

我们以Rebecca身份登陆,点击ViewExpenses按钮,查看与Rebecca账户相关的数据。注意:如果没有包含任何数据,你可以使用Add Expenses按钮手动添加。

我们可以使用Backup Data to Excel按钮将数据导出到CSV文件。我们可以从中篡改并添加恶意数据吗?如果可以的话,那么这份数据在导出到CSV文件之前有经过校验吗?

亲自验证下,修改price为=2+1,然后导出。

然后弹出一个导出成功的提示框。

好的,让我们用excel文件打开看看price这列的值是怎样的,如下图。

可以看到我们注入成功,当然你也可以尝试网上其他的技术,如果你有兴趣的话。

SQL注入

我们已经知道SQL注入是一种最常见的危险漏洞。但即使在今天,开发商仍然会犯同样的错误,导致SQL注入漏洞。DVTA还有一个不安全的代码导致的SQL注入漏洞。

让我们看看是否可以使用最常见的SQL注入字符串绕过身份验证登录页面。

请在用户名和密码框输入x’ or ‘x’=’x,然后点击Login按钮。

我们成功的以Raymond的身份登陆了,多么像B/S架构的注入啊。

让我们看看这个应用程序存在SQL注入的原因。在Github上打开DVTA的项目,查看Login.cs的源代码。

很明显,DVTA接收用户的输入并将它传递给数据库处理程序函数checkLogin()。接下来,打开DBAccess.cs,如下图所示。

正如您可以看到的,这就是checkLogin的函数定义。它是将用户提供的输入直接传递到SQL查询中。下一个目标是利用这个漏洞登录到其他用户账户,假设我们知道他们的用户名。用户名字段输入以下字符串

rebecca’ or ‘x’=’y’–

密码字段随便输,然后点击Login按钮。

然后我们看到成功的以rebecca的身份登陆了。

那我们试试以admin的身份登陆。在用户名字段输入

admin’ or ‘x’=’y’–

密码字段依然是随机字符串,显然,我们成功的登陆了。

结论

本文中我们讨论了厚客户端应用程序的常见注入漏洞:SQL注入和CSV注入,在下一篇文章中我们将讨论逆向工程,解密硬编码的数据库凭证。

​本文翻译于infosecinstitute,如若转载,请注明来源于嘶吼: http://www.4hou.com/technology/2066.html

点赞 0
取消

感谢您的支持,我会继续努力的!

扫码支持

打开微信扫一扫后点击右上角即可分享哟

Change

Change

嘶吼编辑

发私信

发表评论