php注入记录需要注意什么
更新:HHH   时间:2023-1-7


这篇文章给大家介绍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注入记录需要注意什么就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

返回web开发教程...