php mysql注入的原理_常见sql注入原理详解!

1、首先我们创建一个mysqli的链接

d9828861b8868a419a45fc9890a1a19e.png

/**数据库配置*/

$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");

url数字注入结果测试

我们访问url:http://localhost/mysql/index.php?id=1

结果展示:

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语句就会报错

(2)我们再次修改url的时候

http://localhost/mysql/index.php?id=-1 or 1=1  //后面参数修改成这样

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

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).............

20c7268b5ccd6621e17f4e0beb2dd409.png

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 "账号密码错误!";

}

正常输入

558b368017e90baa4b5618d5b93b6913.png

打印:登录成功!

我们简单修改一下

9880c78a3118a49e444c6dc9b7e71d08.png

打印:登录成功!

100e853b157b2e6715f4f840f0adb178.png

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

c402b77650b3affbfaee1711c78f6434.png

同理另一种方式为

46e31ea09da05e722ec5679b8d0b60c4.png

打印:登录成功!

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

e2d9a02bcc111b98f12fe1d35ec6af4e.png

5135ac5c15cb9d33a10d48a14c0748cf.png

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值