常见sql注入原理详解!
1、首先我们创建一个mysqli的链接
/**数据库配置*/
$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).............
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注入原理详解!的更多相关文章
- Java程序员从笨鸟到菜鸟之(一百)sql注入攻击详解(一)sql注入原理详解
前段时间,在很多博客和微博中暴漏出了12306铁道部网站的一些漏洞,作为这么大的一个项目,要说有漏洞也不是没可能,但其漏洞确是一些菜鸟级程序员才会犯的错误.其实sql注入漏洞就是一个.作为一个菜鸟小程 ...
- sql注入原理详解(一)
我们围绕以下几个方面来看这个问题: 1.什么是sql注入? 2.为什么要sql注入? 3.怎样sql注入? 1.什么是sql注入? 所谓SQL注入,就是通过把SQL命令插入到Web表单递交或输入域名或 ...
- Java程序员从笨鸟到菜鸟之(一百零二)sql注入攻击详解(三)sql注入解决办法
sql注入攻击详解(二)sql注入过程详解 sql注入攻击详解(一)sql注入原理详解 我们了解了sql注入原理和sql注入过程,今天我们就来了解一下sql注入的解决办法.怎么来解决和防范sql注入, ...
- Java程序员从笨鸟到菜鸟之(一百零一)sql注入攻击详解(二)sql注入过程详解
在上篇博客中我们分析了sql注入的原理,今天我们就来看一下sql注入的整体过程,也就是说如何进行sql注入,由于本人数据库和网络方面知识有限,此文章是对网上大量同类文章的分析与总结,其中有不少直接引用 ...
- SQL注入攻击[详解]
SQL注入攻击是黑客对数据库进行攻击的常用手段之一.随着B/S模式应用开发的发展,使用这种模式编写应用程序的程序员也越来越多.但是由于程序员的水平及经验也参差不齐,相当大一部分程序员在编写代码的时候, ...
- cookie注入原理详解(一)
那我们还是围绕以下几个问题来看看cookie注入: 1.什么是cookie注入? 2.为什么要cookie注入? 3.怎样cookie注入? 1.什么是cookie注入? ♦cookie注入的原理是: ...
- sql注入实例详解(二)
前言 这篇文章就是一个最基本的SQl手工注入的过程了.基本上在sqlilabs上面的实验,如果知道了其中的全部知识点,都可以通过以下的步骤进行脱裤.下面的这个步骤也是其他的脱裤手段的基础.如果想要精通 ...
- SQL注入漏洞详解
目录 SQL注入的分类 判断是否存在SQL注入 一:Boolean盲注 二:union 注入 三:文件读写 四:报错注入 floor报错注入 ExtractValue报错注入 UpdateXml报错注 ...
- bool之regexp正则注入(原理详解)
感谢原创博主的文章,在此致敬.本文转自:http://www.cnblogs.com/lcamry/articles/5717442.html 我们都已经知道,在MYSQL 5+中 informati ...
随机推荐
- HDU2089 暴力打表
62的判断就是倒过来没有26 hdu2089 #include<cstdio> #include<cstdlib> #include<iostream> #incl ...
- c#枚举 获取枚举键值对、描述等
using System; using System.Collections.Generic; using System.Collections.Specialized; using System.C ...
- linux上redis安装配置及其防漏洞配置及其攻击方法
Linux上redis安装: 需先在服务器上安装yum(虚拟机可使用挂载的方式安装) 安装配置所需要的环境运行指令: yum -y install gcc 进入解压文件执行make 指令进行编译 执 ...
- oracle状态
Oracle_四种状态 oracle四种状态 1.shutdown(完全关闭) 2.nomount(未加载) 3.mount(已加载) 4.open(完全打开) Shutdown状态 Shutdown ...
- 【特效】hover效果之十字动画
效果预览:http://www.gbtags.com/gb/rtreplayerpreview-standalone/3101.htm html: <div class="wrap&q ...
- 吾八哥学Python(六):运算符与表达式
上篇简单学习了数学运算符,今天来学习下完整的Python运算符与表达式,具体看下面的表格吧! 表1 运算符与它们的用法 运算符 名称 说明 例子 + 加 两个对象相加 3 + 5得到8.’a’ + ‘ ...
- 浅谈python 复制(深拷贝,浅拷贝)
博客参考:点击这里 python中对象的复制以及浅拷贝,深拷贝是存在差异的,这儿我们主要以可变变量来演示,不可变变量则不存在赋值/拷贝上的问题(下文会有解释),具体差异如下文所示 1.赋值: a=[1 ...
- Linux CentOS7 安装 Mysql5.7.19
第二次安装会安装失败 1.先停止mysql服务 service mysql stop 2.检查是否卸载干净 find / -name mysql 多用几个命令检查,不要删到其他组件的 ...
- vue2.0 练习项目-外卖APP(1)
前言 vue这个框架现在挺流行的,作为一个专注前端100年的代码爱好者,学习下路径流行的框架是必须的!在网上搜索vue的项目是比较少的,在官网进行了入门学后,没有一个项目练习巩固下,学了就等于没学,所 ...
- 【ASP.NET MVC 学习笔记】- 06 在MVC中使用Ninject
本文参考:http://www.cnblogs.com/willick/p/3299077.html 1.在ASP.NET MVC中一个客户端请求是在特定的Controller的Action中处理的. ...