继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

php注入记录

翻过高山走不出你
关注TA
已关注
手记 241
粉丝 31
获赞 67


2==============================================

常见获取变量

$_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()参数:


http://www.w3school.com.cn/php/index.asp



打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP