您好,登錄后才能下訂單哦!
這篇文章給大家介紹php注入記錄需要注意什么,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
常見獲取變量
$_GET$_POST $_COOKIE $_SERVER
is_numeric(),ctype_digit() 正則表達式//判斷是否為數字,后面的函數為轉換成為數字型
mysql_real_escape_string()//先連接數據庫否則不轉換 字符型的注入這樣轉換即可
addslashes()//數字型的注入
第er課:
union 前后要一致
php.ini中 magic_quotes_gpc=on 開啟即可轉譯字符 防止注入
echo $_SERVER['QUREY_STRING'];返回?號自后的字符
<?php
echo$_GET['id']."<br/>";
echo$_SERVER['QUERY_STRING']."<br/>";
解決方法:
get_magic_quotes_gpc的舉例:
if(!get_magic_quotes_gpc()) {//判斷打開了沒,沒有就轉換
$lastname= addslashes($_POST[‘lastname’]);
}else {
$lastname= $_POST[‘lastname’];
}
注意:http://localhost/dvwa/test.php?id=%bf%27
echo$_GET['id']."<br/>";
此處不進行轉換結果為:'
中:
$id = $_GET['id'];
$id = mysql_real_escape_string($id);
高:字符型sql注入
$id = $_GET['id'];
$id = stripslashes($id);
$id = mysql_real_escape_string($id);
//這里可以進行數字型的注入過濾
if (is_numeric($id)){
3=====================================================
測試sql注入
1'and(select 1 from(select count(*),concat((select (selectconcat(0x7e,0x27,unhex(Hex(cast(database() as char))),0x27,0x7e)) frominformation_schema.tables limit 0,1),floor(rand(0)*2))x frominformation_schema.tables group by x)a) and '1'='1
數據庫報錯信息泄露防范
1.把php.ini文件display_errors =Off
2.數據庫查詢函數前面加一個@字符
?id=1'%20and(select%201%20from(select%20count(*),concat((select%20(select%20concat(0x7e,0x27,unhex(Hex(cast(database()%20as%20char))),0x27,0x7e))%20from%20information_schema.tables%20limit%200,1),floor(rand(0)*2))x%20from%20information_schema.tables%20group%20by%20x)a)%20and%20'1'='1&Submit=Submit#
盲注:id=%27+union+select+user%2Cpassword+from+users%23&Submit=Submit
數字型的注入漏洞防護
1.is_numeric(),ctype_digit(),=intval() 正則表達式
2.str_length()限制輸入的字符長度
字符型的注入漏洞防護
1.mysql_real_escape_string()過濾
2.str_length()限制輸入的字符長度
如何挖掘sql注入漏洞
常見獲取變量
$_GET$_POST $_COOKIE $_SERVER
數據庫操作函數
mysql_query()參數:
關于php注入記錄需要注意什么就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。