php sql注入原理,常见sql注入原理详解!

论坛 期权论坛 编程之家     
选择匿名的用户   2021-5-30 13:06   11   0

AAffA0nNPuCLAAAAAElFTkSuQmCC

/*数据库配置/

$config = ['hostname'=>"localhost", 'port'=>"3306", 'username'=>"root",'password'=>'','db'=>'sql'];

/*接收参数/

$id = $_GET['id']?$_GET['id']:"";

if(empty($id)){

echo "article is not def"

}

/*链接数据库/

$mysqli = new \mysqli($config['hostname'],$config['username'],$config['password'],$config['db']);

/*设置编码/

$mysqli->set_charset("utf8");

结果展示:

array (size=2) 'article_id' => string '1' (length=1) 'title' => string '思梦php编写:PHP操作Redis详解案例' (length=44)

(1)/当我们在在url上稍作修改时:

http://localhost/mysql/index.php?id=1‘ //加一个单引号

这样你的sql语句就会报错

结果展示了所有的文章列表

D:\wamp\www\mysql\index.php:11:array (size=2) 'article_id' => string '1' (length=1) 'title' => string '思梦php编写:PHP操作Redis详解案例' (length=44)

D:\wamp\www\mysql\index.php:11:array (size=2) 'article_id' => string '2' (length=1) 'title' => string 'Mysql存储过程从0开始(上)' (length=36)

D:\wamp\www\mysql\index.php:11:array (size=2) 'article_id' => string '3' (length=1) 'title' => string '思梦php编写:PHP排序的几种方法' (length=42).............

AAffA0nNPuCLAAAAAElFTkSuQmCC

2、表单注入,主要利用sql语句的注释

$username = $_POST['username']?$_POST['username']:"";

$password = $_POST['password']?$_POST['password']:"";

$sql = "select * from tb_member where account='$username'AND password='$pass'";

$res = $mysqli->query($sql);

$row = $res->fetch_assoc();

if($row){

echo "登录成功!";

}else{

echo "账号密码错误!";

}

正常输入

AAffA0nNPuCLAAAAAElFTkSuQmCC

打印:登录成功!

我们简单修改一下

AAffA0nNPuCLAAAAAElFTkSuQmCC

打印:登录成功!

AAffA0nNPuCLAAAAAElFTkSuQmCC

原理:首先使用单引号结束sql语句,然后加#注释后面的sql语句

AAffA0nNPuCLAAAAAElFTkSuQmCC

同理另一种方式为

AAffA0nNPuCLAAAAAElFTkSuQmCC

打印:登录成功!

原理:首先使用单引号结束sql语句,然后加(-- )注释后面的sql语句

AAffA0nNPuCLAAAAAElFTkSuQmCC

AAffA0nNPuCLAAAAAElFTkSuQmCC

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP