搜索
查看: 884|回复: 0

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

[复制链接]

1839

主题

2255

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
11913
发表于 2016-9-18 16:40:46 | 显示全部楼层 |阅读模式


背景

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

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?Join BUC

x
过段时间可能会取消签到功能了
您需要登录后才可以回帖 登录 | Join BUC

本版积分规则

Powered by Discuz!

© 2012-2015 Baiker Union of China.

快速回复 返回顶部 返回列表