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注入原理详解!的更多相关文章

  1. Java程序员从笨鸟到菜鸟之(一百)sql注入攻击详解(一)sql注入原理详解

    前段时间,在很多博客和微博中暴漏出了12306铁道部网站的一些漏洞,作为这么大的一个项目,要说有漏洞也不是没可能,但其漏洞确是一些菜鸟级程序员才会犯的错误.其实sql注入漏洞就是一个.作为一个菜鸟小程 ...

  2. sql注入原理详解(一)

    我们围绕以下几个方面来看这个问题: 1.什么是sql注入? 2.为什么要sql注入? 3.怎样sql注入? 1.什么是sql注入? 所谓SQL注入,就是通过把SQL命令插入到Web表单递交或输入域名或 ...

  3. Java程序员从笨鸟到菜鸟之(一百零二)sql注入攻击详解(三)sql注入解决办法

    sql注入攻击详解(二)sql注入过程详解 sql注入攻击详解(一)sql注入原理详解 我们了解了sql注入原理和sql注入过程,今天我们就来了解一下sql注入的解决办法.怎么来解决和防范sql注入, ...

  4. Java程序员从笨鸟到菜鸟之(一百零一)sql注入攻击详解(二)sql注入过程详解

    在上篇博客中我们分析了sql注入的原理,今天我们就来看一下sql注入的整体过程,也就是说如何进行sql注入,由于本人数据库和网络方面知识有限,此文章是对网上大量同类文章的分析与总结,其中有不少直接引用 ...

  5. SQL注入攻击[详解]

    SQL注入攻击是黑客对数据库进行攻击的常用手段之一.随着B/S模式应用开发的发展,使用这种模式编写应用程序的程序员也越来越多.但是由于程序员的水平及经验也参差不齐,相当大一部分程序员在编写代码的时候, ...

  6. cookie注入原理详解(一)

    那我们还是围绕以下几个问题来看看cookie注入: 1.什么是cookie注入? 2.为什么要cookie注入? 3.怎样cookie注入? 1.什么是cookie注入? ♦cookie注入的原理是: ...

  7. sql注入实例详解(二)

    前言 这篇文章就是一个最基本的SQl手工注入的过程了.基本上在sqlilabs上面的实验,如果知道了其中的全部知识点,都可以通过以下的步骤进行脱裤.下面的这个步骤也是其他的脱裤手段的基础.如果想要精通 ...

  8. SQL注入漏洞详解

    目录 SQL注入的分类 判断是否存在SQL注入 一:Boolean盲注 二:union 注入 三:文件读写 四:报错注入 floor报错注入 ExtractValue报错注入 UpdateXml报错注 ...

  9. bool之regexp正则注入(原理详解)

    感谢原创博主的文章,在此致敬.本文转自:http://www.cnblogs.com/lcamry/articles/5717442.html 我们都已经知道,在MYSQL 5+中 informati ...

随机推荐

  1. jQuery插件:Ajax将Json数据自动绑定到Form表单

    jQuery注册方法的两种常用方式: //jQuery静态方法注册 //调用方法$.a1() $.extend({ a1: function () { console.log("a1&quo ...

  2. Java面向对象 网络编程 上

     Java面向对象 网络编程 上 知识概要:                     (1)网络模型 (2)网络通讯要素 (3)UDP TCP 概念 (4)Socket (5)UDP TCP 传输 ...

  3. 使用siege对web接口进行post方式的压力测试

    为了达到压力测试的效果,需要申请一台线上机器,并且安装压力测试的工具siege. 安装新版siege.资料说yum安装的版本2.70对于post方式支持的不好,验证后发现请求可以正常发过去,但是打开d ...

  4. JS中的作用域以及全局变量的问题

    一. JS中的作用域 1.全局变量:函数外声明的变量,称为全部变量 局部变量:函数内部使用var声明的变量,称为局部变量在JS中,只有函数作用域,没有块级作用域!!!也就是说,if/for等有{}的结 ...

  5. SSM框架整合项目 :租房管理系统

    使用ssm框架整合,oracle数据库 框架: Spring SpringMVC MyBatis 导包: 1, spring 2, MyBatis 3, mybatis-spring 4, fastj ...

  6. git无法pull仓库refusing to merge unrelated histories

    本文讲的是把git在最新2.9.2,合并pull两个不同的项目,出现的问题如何去解决fatal: refusing to merge unrelated histories 我在Github新建一个仓 ...

  7. 利用Dropbox同步Arch下一些软件的配置文件

    一些软件后要好好的配置一番才能好好为自己所用,比如vim,比如conky等等,但是万一系统真出了问题,或者硬盘跪了,要重新安装系统重新配置的时候真是一种折磨,前阵子想到如果用dropbox同步那些配置 ...

  8. JAVA NIO 主要概念

    NIO有三个主要概念: buffer channel selector channel间通过buffer通信,channel在selector注册后,可以由selector管理,实现非阻塞编程 buf ...

  9. PHP垃圾回收机制

    一.引用计数基本知识 每个php变量存在一个叫"zval"的变量容器中,当一个变量被赋常量值时,就会生成一个zval变量容器.一个zval变量容器,除了包含变量的类型和值,还包括两 ...

  10. LeetCode 405. Convert a Number to Hexadecimal (把一个数转化为16进制)

    Given an integer, write an algorithm to convert it to hexadecimal. For negative integer, two’s compl ...