开发者社区> 思梦php> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

常见sql注入原理详解!

简介:
+关注继续查看

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

常见sql注入原理详解!

/**数据库配置*/

$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:wampwwwmysqlindex.php:11:array (size=2) 'article_id' => string '1' (length=1) 'title' =>string '思梦php编写:PHP操作Redis详解案例' (length=44)

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

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

常见sql注入原理详解!

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

}

正常输入

常见sql注入原理详解!

打印:登录成功!

我们简单修改一下

常见sql注入原理详解!

打印:登录成功!

常见sql注入原理详解!

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

常见sql注入原理详解!

同理另一种方式为

常见sql注入原理详解!

打印:登录成功!

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

常见sql注入原理详解!

常见sql注入原理详解!

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
MySQL的常用SQL语句
修改密码 这是常见的大家一般都要用的   首先安装成功了打开cmd –> mysql -u root -p –>输入你的密码 –>修改mysql root用户密码    格式:mysql> set password for 用户名@localhost = password(‘新密码’);    举例:mysql> set password for root@localhost = password(‘root’); 上面例子将用户root的密码更改为root; 如果是学习使用一般密码该简单些,如root,123等,这样便于记忆。
1554 0
MySQL特有的SQL语句 第一弹
关于SQL,我们总是会有无穷无尽相关的话题,有时候碰到了一些觉得不错的SQL功能会标记下来,好记性不烂烂笔头,回头来看,自己也收集了不少的点子,但是从整体来看,可能仅仅是一瓢水而已。
1169 0
MySQl之最全且必会的sql语句
原文链接:http://blog.csdn.net/qq_32059827/article/details/51763950 创建一个名称为mydb1的数据库,如果有mydb1数据库则直接使用,如果无则创建mydb1数...
795 0
***mysql中查询今天、昨天、上个月sql语句
今天 select * from 表名 where to_days(时间字段名) = to_days(now()); 昨天Select * FROM 表名 Where TO_DAYS( NOW( ) ) - TO_DAYS( 时间字段名)
1029 0
MySQL的一些常用的SQL语句整理
安装MySQL有两种的方式,一种是解压版本,但是需要配置环境变量,相对而言比较麻烦。所以我们一般采取第二种方式,那就是到MySQL的官网上下载安装版。这样就会省去很多麻烦,在这里我就不再详细的介绍具体的安装过程了,百度一下,Google,上面有手把手的教程。
852 0
【C/C++学院】(21)Mysql数据库编程--开发简介/SQL语句
<h1><span style="line-height:1.5"><span style="font-size:18px">一.mysql安装与管理</span></span></h1> <div><span style="line-height:1.5; font-size:18px; font-family:'Microsoft YaHei UI','Microsoft YaHei
1210 0
T-SQL查询:语句执行顺序
原文:T-SQL查询:语句执行顺序 读书笔记:《Microsoft SQL Server 2008技术内幕:T-SQL查询》   ===============  T-SQL查询的执行顺序 ===============      =============== T-SQL查询的示意图...
782 0
+关注
思梦php
思梦PHP公益讲师!热衷PHP技术,热爱技术分享!
57
文章
1
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载