厚客戶端滲透測試實戰(四)

背景

在前一篇文章中,我們介紹了在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』–n

密碼欄位隨便輸,然後點擊Login按鈕。

然後我們看到成功的以rebecca的身份登陸了。

那我們試試以admin的身份登陸。在用戶名欄位輸入

admin』 or 『x』=』y』–n

密碼欄位依然是隨機字元串,顯然,我們成功的登陸了。

結論

本文中我們討論了厚客戶端應用程序的常見注入漏洞:SQL注入和CSV注入,在下一篇文章中我們將討論逆向工程,解密硬編碼的資料庫憑證。

註:本文參考來源於infosecinstitute

《厚客戶端的滲透測試》系列文章

第一篇:《如何搭建厚客戶端的滲透測試環境?》zhuanlan.zhihu.com/p/23

第二篇:《厚客戶端滲透測試實戰(二)》zhuanlan.zhihu.com/p/23

第三篇:《厚客戶端滲透測試實戰(三)》zhuanlan.zhihu.com/p/23

第四篇:《厚客戶端滲透測試實戰(四)》zhuanlan.zhihu.com/p/23


推薦閱讀:

【最新】英國GDP數據均高於預期,英鎊短線拉升70個點
解密被 Findzip 勒索軟體感染的文件
截止到2016年5月26號,對滬深兩市的大級別波浪應該怎麼劃分?
「無文件」惡意程序攻擊技術還原

TAG:客户端 | 技术分析 |