一
前言
首先鄭重申明:本文并不是想教唆你怎么把SAP服務(wù)器搞死.
雖然你確實(shí)可以從本文中學(xué)到搞死SAP服務(wù)器的技巧,但是如果因?yàn)槟銓?duì)公司的抱怨而導(dǎo)致你無(wú)意中使用了本文中的方式無(wú)意中搞死了貴公司的SAP服務(wù)器.
請(qǐng)不要甩鍋給本文作者. 罪過(guò)在于你無(wú)意的報(bào)復(fù)之心及貴公司無(wú)意讓你擁有了報(bào)復(fù)之心.
鑒于本文可能讓部分心有芥蒂的程序員有更強(qiáng)的破壞力.
在文末會(huì)給出相應(yīng)的解決方案
本文主要介紹怎么讓SAP系統(tǒng)無(wú)意中無(wú)法連接數(shù)據(jù)庫(kù)系統(tǒng)
二
破壞效果
(犯罪電影中搞了破壞的犯罪者,往往喜歡留在現(xiàn)場(chǎng)觀看一下自己的杰作能達(dá)成的效果.可以歸因于犯罪者的變態(tài),但更多是一個(gè)杰出犯罪者的一種總結(jié),通過(guò)觀察現(xiàn)場(chǎng)警察的反應(yīng),觀察破壞達(dá)成的效果,分析總結(jié)執(zhí)行方式,以便改進(jìn)? )
同樣,如果你想搞一個(gè)特定的系統(tǒng)破壞活動(dòng),肯定希望知道殺傷力有多大,系統(tǒng)表現(xiàn)是什么樣的:
所有涉及到數(shù)據(jù)庫(kù)的系統(tǒng)操作(激活表,釋放請(qǐng)求,查詢或修改單據(jù)等)都會(huì)報(bào)錯(cuò),報(bào)錯(cuò)信息在ST22中大部分以: DBSQL_CONNECTION_NO_METADATA 呈現(xiàn). 這樣的效果還滿意不?
通過(guò)報(bào)表 RSDUMPQM 可以看到一個(gè)DUMP的統(tǒng)計(jì)報(bào)表.
可以發(fā)現(xiàn)大量的
DBSQL_CONNECTION_NO_METADATA報(bào)錯(cuò).
三
相關(guān)NOTES
通過(guò)查詢DBSQL_CONNECTION_NO_METADATA 可以獲取幾個(gè)相關(guān)的NOTES
NOTES: 2076388 中給出了報(bào)錯(cuò)的原因,但是不具體.
2995840 其中提到NOTES 2399990
四
段子的提示
曾經(jīng)聽(tīng)過(guò)一個(gè)段子:
怎么簡(jiǎn)單有效的報(bào)復(fù)那些電話詐騙犯?
答案是: 假裝上套,獲取到對(duì)方的銀行信息及卡號(hào), 然后登錄網(wǎng)銀隨機(jī)嘗試密碼,錯(cuò)誤3-5次后,卡會(huì)被鎖.
沒(méi)有實(shí)際嘗試過(guò). 不太清楚可操作性?(貌似系統(tǒng)隔天會(huì)自動(dòng)解鎖,哼,每天一大早都去試試).
中斷系統(tǒng)與數(shù)據(jù)的連接方案呼之欲出.
五
幾個(gè)問(wèn)題
段子中的報(bào)復(fù)手段有幾個(gè)需要解決的問(wèn)題:
銀行信息(數(shù)據(jù)庫(kù)IP地址)
銀行卡號(hào)(數(shù)據(jù)庫(kù)用戶)
網(wǎng)銀地址(數(shù)據(jù)庫(kù)連接方式)
怎么解決這些問(wèn)題呢? (這些問(wèn)題在段子中都不是問(wèn)題,騙子會(huì)主動(dòng)告訴你的)
六
技能儲(chǔ)備
做任何事情都需要有一定的知識(shí)/技能儲(chǔ)備,才能把事情做成.
當(dāng)然做壞事的技能要求可能比做好事的技能要求要低.現(xiàn)實(shí)世界的很多事似乎都是如此,所謂破壞容易重建難.
01
獲取數(shù)據(jù)庫(kù)IP地址
如果通過(guò)詢問(wèn)系統(tǒng)管理員解決,那么你就會(huì)留下線索.
因此需要一個(gè)隱秘的方式.
系統(tǒng)狀態(tài)中可以看到主機(jī).
有點(diǎn)計(jì)算知識(shí)的,都知道可以通過(guò)ping 命令獲取主機(jī)的IP,這里需要一個(gè)稍微復(fù)雜的技能: 了解并知道怎么使用 SM49
詳見(jiàn)鏈接 無(wú)峰,公眾號(hào):ABAP 技巧與實(shí)戰(zhàn)SAP小技巧 終止進(jìn)程
創(chuàng)建一個(gè)外部命令,
ping -c 2 <主機(jī)名稱>
必須使用參數(shù) -c n ?指定一個(gè)ping的次數(shù), 否則系統(tǒng)會(huì)一致等待ping的執(zhí)行,假死.(linux ping 沒(méi)有默認(rèn)4次,默認(rèn)無(wú)限次)
02
數(shù)據(jù)庫(kù)用戶
DB02可以查詢,系統(tǒng)會(huì)顯示默認(rèn)數(shù)據(jù)庫(kù)連接用戶. 當(dāng)然很多S4系統(tǒng)鏈接數(shù)據(jù)庫(kù)的默認(rèn)用戶是SAPABAP1
03
數(shù)據(jù)庫(kù)連接方式
通過(guò)HANA STUDIO客戶端連接
通過(guò)DB02/DBCO連接
詳見(jiàn)鏈接 無(wú)峰斧散,公眾號(hào):ABAP 技巧與實(shí)戰(zhàn)ABAP基礎(chǔ)知識(shí) 訪問(wèn)外部數(shù)據(jù)庫(kù)-配置篇
七
推薦實(shí)施方案
通過(guò)DB02中連接外部數(shù)據(jù)庫(kù)的方式
通過(guò)DB02中的數(shù)據(jù)庫(kù)連接有一個(gè)很有意思的特性
DB02中創(chuàng)建了連接本地?cái)?shù)據(jù)庫(kù)的DBCO ?S4D (密碼可能不正確,連接名稱最好和系統(tǒng)名稱一致,否則效果不好. )
當(dāng)?shù)谝淮屋斎氲拿艽a不正確時(shí),系統(tǒng)會(huì)警告, 此時(shí)回車或者重新輸入另一個(gè)錯(cuò)誤密碼,可以忽略警告,并保存成功.
當(dāng)你測(cè)試這個(gè)連接時(shí), 系統(tǒng)會(huì)提醒連接成功. 所以你會(huì)以為自己輸入的賬號(hào),密碼是正確的. ?
創(chuàng)建后, DB02 進(jìn)入后會(huì)報(bào)錯(cuò),系統(tǒng)嘗試兩次連接 S4D(一次是標(biāo)準(zhǔn)的, 第二次是DBCO中維護(hù)的?并且嘗試多次 )
此時(shí),數(shù)據(jù)庫(kù)系統(tǒng)已經(jīng)鎖住了SAPABAP1賬號(hào).
用SE11 修改數(shù)據(jù)字典對(duì)象報(bào)DUMP
DB02中已經(jīng)無(wú)法刪除遠(yuǎn)程數(shù)據(jù)庫(kù)連接 S4D.
用SQL編輯器也無(wú)法查詢表內(nèi)容
釋放請(qǐng)求會(huì)報(bào)DUMP.
......
各種錯(cuò)誤紛至沓來(lái).
八
解決方式
解決方式很簡(jiǎn)單,用SYSTEM 賬號(hào)登錄HANA STUDIO 找到SAPABAP1 賬號(hào)(鎖定狀態(tài)),解鎖即可.
但是所有的報(bào)錯(cuò)信息都沒(méi)有明確的指向這一點(diǎn). 根據(jù)ST22中的DUMP信息找到這個(gè)解決辦法還是挺麻煩的.
九
總結(jié)
SAPABAP1是S4應(yīng)用服務(wù)器連接HANA 數(shù)據(jù)庫(kù)的默認(rèn)用戶(ECC連接數(shù)據(jù)庫(kù)的默認(rèn)用戶似乎是<SID>ADM). 數(shù)據(jù)庫(kù)用戶因?yàn)榘踩紤], 錯(cuò)誤嘗試登錄次數(shù)過(guò)多會(huì)導(dǎo)致鎖定.?
創(chuàng)建DB02中的外部系統(tǒng)連接時(shí),輸入錯(cuò)誤的密碼.再次啟動(dòng)DB02時(shí),系統(tǒng)會(huì)同時(shí)嘗試外部連接中與系統(tǒng)ID相同的數(shù)據(jù)庫(kù)連接. 因?yàn)檩斎肓隋e(cuò)誤的密碼, 多次連接報(bào)錯(cuò)導(dǎo)致用戶被鎖.
服務(wù)連接命名 R/3*<字符串> 比如報(bào)錯(cuò)中的 ?R/3*DDFTX
系統(tǒng)連接數(shù)據(jù)庫(kù)不同的場(chǎng)景使用了不同的服務(wù)連接, 這些服務(wù)連接共用了 SAPABAP1 賬號(hào)/密碼連接數(shù)據(jù)庫(kù). 這個(gè)賬號(hào)被鎖, 導(dǎo)致所有的服務(wù)連接報(bào)錯(cuò).
解鎖用戶SAPABAP1,需要用到數(shù)據(jù)庫(kù)SYSTEM賬號(hào)及密碼.
DB02中可以查詢到數(shù)據(jù)庫(kù)的所有連接信息