php萬能密碼
① php 後台萬能密碼
所謂萬能密碼是針對一種漏洞而言,如果人家把這個漏洞堵上就沒用了,現在有點經驗的程序員就不會犯這種錯,PHPwind做為一個成熟的論壇程序是不會出現萬能密碼漏洞的
② php中\n是如何使用的
需要准備的材料分別是:電腦、php編輯器、瀏覽器。
1、首先,打開php編輯器,新建php文件,例如:index.php。
③ 萬能密碼 'or'='or'如何防
一般用戶在登陸時,系統會要求輸入用戶名及密碼,然後將這些數據傳輸到指定頁,進行驗證,大致的代碼如下:
Set Conn= Server.CreateObject("ADODB.Connection") '定義連接資料庫的對象
Const AccessFile="jmdcw.mdb" '資料庫地址
Conn.ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(AccessFile) '連接到資料庫
Conn.Open '打開資料庫
....................
name=request("name") '得到所提交的用戶名
pass=request("pass") '得到所提交來的密碼
............
Set Jmdcw=Server.CreateObject("ADODB.RecordSet") '定義操作資料庫的對象
sql="SELECT username,userpass FROM User WHERE username='"&name&"' AND userpass='"&pass&"'" 'SQL語句
Jmdcw.Open SQL,Conn,1,1 '執行查詢
......
If Jmdcw.EOF AND Jmdcw.BOF Then '如果沒有查詢到
response.redirect "onerror.html" '顯示錯誤頁
end if
'如果正確,就繼續執行。
..........
以上就是一段簡單的用戶驗證代碼,當注入漏洞被廣泛發掘之後,類似這樣的漏洞就越來越少了,但少並不表示程序員在寫代碼時已經具備了防範意識,無意之中還是會出現這樣或那樣的漏洞。OK,書歸正傳,先來測試一下上面的代碼。輸入的用戶名是:jmdcw,密碼是:123456。(典型的弱口令密碼,哈哈),這樣SQL語句就是:
select username,userpass from user where username='jmdcw' and userpass='123456'
程序會查詢user表中是否有jmdcw用戶,並且該用戶的密碼是否為123456。如果username='jmdcw'的結果為真,userpass='123456'的結果也為真,那麼「真 And 真 」的結果就是真,驗證通過。
當然,如果用戶名和密碼其中之一的結果為假,「真 And 假 」的結果就是假,當然「 假 And 假 」的結果也是假,呵呵。
沒有用戶名或密碼怎麼進入?試一下'or''='吧,在提交用戶名處輸入 jmdcw'or''=',這樣的SQL語句就是
select username,userpass from user where username='jmdcw'or''='' and userpass='12345678'
在邏輯表達式中,AND的優先順序要高於OR,所以語句會先對 「''='' and userpass='12345678'」 進行判斷,雖然 ''='' 為真,但密碼為假,所以結果為假,但因為我們加入了OR連接符,這樣,雖然後面的結果為假,但username的結果為真,所以也一樣能進入這個用戶的後台。
但如果不知道用戶的名稱,那麼就要在輸入的密碼後也加入一個'or''=',這樣,SQL語句就是
select username,userpass from user where username='jmdcw11'or''='' and userpass='12345678'or''=''
在執行and語句,''='' and userpass='12345678'的結果為假,然後是 'jmdcw11'or假 ,結果為假,再接下來是:假or ''='',這個結果就是真了。
但現在的密碼都用MD5加密,對提交來的密碼在進入SQL語句之前,先用MD5進行了轉換,這樣,就算在密碼後加入了'or''=',也發揮不了作用。對於密碼採用md5加密的,不妨在用戶名處再加入一個or''='',也 就是在用戶名處輸入:jmdcw'or''=''or''=',這樣的SQL 語句就是:
select username,userpass from user where username='jmdcw11'or''=''or''='' and userpass='12345678'
先執行and語句,結果為假,然後是username='jmdcw11'or''='',結果為真,接下來是:真or假,結果還是真,這樣又繞過了驗證。
說到這兒,我忽然想起,在文章開頭所提到的網站,其密碼也是用md5加密的,並且我也不知道任何一個用戶名,也只用了一個or語句,為什麼卻進入了呢?思來思去,莫不是SQL語句中的用戶與密碼的位置有所不同,其的SQL語句是這樣的:
select username,userpass from user where WHERE userpass='"&pass&"'" and username='"&name&"',
密碼在前面,用戶在後面,這樣,當我在用戶名處輸入:jm'or''='後,其語句就變成了
select username,userpass from user where WHERE userpass='123456" and username='jm'or''=''
按照優先順序,先運算ANd語句,結果為假,然後是OR語句,假or''='',結果就是真了。看來代碼中的位置發生變化也能演繹成一種漏洞。
上面所提到的方法主要是針對於ACCESS資料庫,但如果程序所對應的資料庫是SQL,那危害就大很了,先不要說別的,還是說一下登陸的事情,直接用:
存在的用戶名';--
這個可以不用密碼就登陸到指定的用戶之中,如果不知道呢:就用:
任意名稱'or''='';--
這樣所進入的會是第一個用戶,很有可能是管理員的用戶之中.
如何防止這種漏洞呢?很簡單,就是在接收字元的語句中加入replace過濾語句,比如name就是:
name=replace(request("name"),"'","")
將'過濾為空。密碼過濾的方法也類似。當然,這是簡單的過濾方法,還有更多復雜的。比如過濾一些特殊字元,空格、chr(0)、%、script等一些字元,防止寫入XSS代碼。
④ 手機解鎖有沒有萬能密碼,就是一個密碼可以解開鎖,我的手機被鎖了,想開開鎖了。
貌似么沒有這種東東,你去維修店解一下吧,可能要30元.
⑤ php 如何防止 萬能密碼登錄(mysql注入)
你可以使用內置的addslashes函數,或者使用我下面自己封裝的函數,把$_GET 或者 $_POST的值做處理。
functionaddslashes2($str){
return(!get_magic_quotes_gpc())?addslashes($str):$str;
}
⑥ asp,aspx,php,jsp萬能密碼大全
如果程序員過濾不嚴謹,使用萬能密碼
就可以不適用用戶名密碼就可以登錄了,具體操作,就是在用戶名密碼裡面輸入
,有驗證碼的,輸入他的驗證碼,然後登錄,就可以進去了。
對於研究網站後台安全防禦「程序猿」來說,這個代碼是最熟悉不過的。
下面圖片中就是萬能密碼
萬能密碼之
ASP|ASPX
萬能密碼之
JSP|PHP
⑦ 寫出SQL注入的方法和聯合查詢資料庫所用到的SQL語句
注入方法:
a)尋找注入點,構造特殊的語句
傳入SQL語句可控參數分為兩類
1. 數字類型,參數不用被引號括起來,如?id=1
2. 其他類型,參數要被引號擴起來,如?name="phone"
b)用戶構造SQL語句(如:'or 1=1#;admin'#(這個注入又稱PHP的萬能密碼,是已知用戶名的情況下,可繞過輸入密碼)以後再做解釋)
c)將SQL語句發送給DBMS資料庫
d)DBMS收到返回的結果,並將該請求解釋成機器代碼指令,執行必要得到操作
e)DBMS接受返回結果,處理後,返回給用戶
因為用戶構造了特殊的SQL語句,必定返回特殊的結果(只要你的SQL語句夠靈活)
字數限制,剩下的你自己去教學網站看一下吧。
⑧ 1' union select * from [ADM] union select * from [ADM] where '1'='1
union就是聯合的意思。把兩標拼接起來。
當兩表的結構或者所選擇的欄位相同時候才可以使用Union方法。否則會出錯。
-----------------
那也要人家用了字元串拼接的SQL語句你這台才能用。用PROC注入不了的。
#######
打個比方
原始的SQL是
SELECT * FROM [ADM] WHERE USERID='ADMIN' AND PASSWORD = 'PASS'
你現在在ADMIN或者PASS的地方插入你的那個語句 也就變成了
SELECT * FROM [ADM] WHERE USERID='ADMIN' AND PASSWORD = '1' union select * from [ADM] union select * from [ADM] where '1'='1'
前面那個SELECT * FROM [ADM] WHERE USERID='ADMIN' AND PASSWORD = '1' 肯定什麼數據都不會出來的。
但是下面還有一句UNION
select * from [ADM] union select * from [ADM] where '1'='1'
而最後的1=1這個條件就是真,所以會把[ADM] 所有的數據都給抽出來。
⑨ BIOS萬能密碼
AWARD BIOS的萬能密碼如下:AWARD、AWARD_SW、Syxz、589589、589721、j322、j262、 j256、
SER、SKY_FOX、BIOSTAR、ALFAROME、lkwpeter、LKWPETER、aLLy、HLT、awkward、award、
h996、 wantgirl、eBBB、dirrid、awkard、abaubjao。
AMI BIOS的萬能密碼如下:AMI、BIOS、PASSWORD、HEWITT RAAND、AMI?、SW、AMI_SW、
LKWPEEEETER、A.M.I、Sysg。
注1:注意大小寫。
注2:同一廠家的BIOS在不同時期的萬能密碼並不相同,所以此法不能保證絕對奏效。
⑩ phpweb 除了萬能密碼登錄,還可以用什麼方式登錄
一般都存在於資料庫表的user欄位,請查看。一般都是由md5加密,請嘗試解密或者重新生成一個md5的字元替換。望採納