常见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 ... 
随机推荐
- 第六章 JDBC
			第一章 JDBC 一.JDBC的简介 1.什么是JDBC JDBC是java数据库连接(java database connectivity)技术的简称,它充当了java应用程序与各个不同数据库之间进 ... 
- NSTimer的问题
			iOS开发中,涉及到定时的问题,我们通常使用NSTimer来解决,例如下面的代码. SFClass.h #import <Foundation/Foundation.h> @interfa ... 
- LINUX下分区命令Parted详解
			通常划分分区工具我们用的比较多是fdisk命令,但是现在由于磁盘越来越廉价,而且磁盘空间越来越大.而fdisk工具他对分区是有大小限制的,它只能划分小于2T的磁盘.现在的磁盘空间已经远远大于2T,有两 ... 
- uva1629,Cake Slicing,记忆化搜索
			同上个题一样,代码相似度极高,或者说可以直接用一个模板吧 dp[i,j,p,q]表示一块长为j-i+1,宽为q-p+1,左上角在位置(i,j)上的蛋糕,dp[]表示当前状态下的最优值,然后对该块蛋糕枚 ... 
- Azure 基础:用 PowerShell 自动登录
			PowerShell 是管理 Azure 的最好方式,因为我们可以使用脚本把很多的工作自动化.比如把 Azure 上的虚拟机关机,并在适当的时间把它开机,这样我们就能节省一些开支,当然我们同时也为减少 ... 
- IOC杂谈(一)初识IOC
			初衷 发现学习东西不单只是看,用,还有很重要一点就是记录,不然过个几个月再用到相同的知识时,你会发现你已经丢得差不多了,故此开始在博客园记录的同时也与各位同行分享知识. 正题 关于IOC,在刚工作时就 ... 
- 2_认识STM32库
			2_认识STM32库 STM32库是由ST公司针对STM32提供的函数接口API,开发者可以调用这些函数接口来配置STM32的寄存器,使得开发人员得以脱离最底层的寄存器操作,开发快速. 库是架设在寄存 ... 
- C++输入输出cin与cout
			输入对象 istream:cin(标准输入) 输出对象 ostream: cout(标准输出), cerr(标准错误),clog(输出程序运行时的一般性信息) 
- C#中判断语句 if、if-else if、switch-case
			1.if一般用于一个条件的判断: 2.if-else if 一般用于多个条件的判断: 3.switch-case一般用于多个条件的判断. 注:if-else if与switch-case的区别在于:一 ... 
- 暑假练习赛 007 A - Time
			A - Time Description standard input/outputStatements A plane can go from city X to city Y in 1 hour ... 
