厚客戶端滲透測試實戰(四)
背景
在前一篇文章中,我們介紹了在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
《厚客戶端的滲透測試》系列文章
第一篇:《如何搭建厚客戶端的滲透測試環境?》https://zhuanlan.zhihu.com/p/23512632
第二篇:《厚客戶端滲透測試實戰(二)》https://zhuanlan.zhihu.com/p/23489049
第三篇:《厚客戶端滲透測試實戰(三)》https://zhuanlan.zhihu.com/p/23352751
第四篇:《厚客戶端滲透測試實戰(四)》https://zhuanlan.zhihu.com/p/23247439
推薦閱讀:
※【最新】英國GDP數據均高於預期,英鎊短線拉升70個點
※解密被 Findzip 勒索軟體感染的文件
※截止到2016年5月26號,對滬深兩市的大級別波浪應該怎麼劃分?
※「無文件」惡意程序攻擊技術還原