背景
在前一篇文章中,我们介绍了在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
|