【1】普通sql注入:

$sql = "INSERT INTO books(bookname, publisher, author, price, ptime,pic,detail) VALUES('{$_POST["bookname"]}', '{$_POST["publisher"]}', '{$_POST["author"]}', '{$_POST["price"]}', '".time()."', '{$up[1]}', '{$_POST["detail"]}')";

$result = mysql_query($sql);

if($result && mysql_affected_rows() > 0 ) {

echo "插入一条数据成功!";

}else {

echo "数据录入失败!";

}

直接将传入的参数不加过滤进入到数据库中

【2】宽字符注入:

条件

当mysql建表时,将表的字符集设置成gbk时(defaultcharset=gbk)

且当在php连接数据库时将数据库的字符集设置成(mysql_query("setcharacter_set_client=gbk");

(1)可利用%df%27绕过addslashes()这个函数

(2)可绕过pdo的quote()这个函数

(3)pdo的也被绕过:

第一种写法:

header("Content-type:text/html;charset=utf-8");

try {

$pdo = new PDO("mysql:host=localhost;dbname=test","root","niexinming132");

} catch (Exception $ex) {

echo "连接失败";

}

echo "连接成功";

$pdo->query("set character_set_client=gbk");

$id=$_GET["id"];

$query="select * from myuser where id=?";

echo $query;

echo "
";

$stmt=$pdo->prepare($query);

$pdostat=$stmt->execute(array($id));

foreach ($stmt->fetchAll(PDO::FETCH_ASSOC) as $row)

{

foreach ($row as $data)

{

echo $data." ";

}

echo "
";

}

第二种写法:

header("Content-type:text/html;charset=utf-8");

try {

$pdo = new PDO("mysql:host=localhost;dbname=test","root","niexinming132");

} catch (Exception $ex) {

echo "连接失败";

}

echo "连接成功";

$pdo->query("set character_set_client=gbk");

$id=$_GET["id"];

$query="select * from myuser where id=:id";

echo $query;

echo "
";

$stmt=$pdo->prepare($query);

$pdostat=$stmt->execute(array("id"=>$id));

foreach ($stmt->fetchAll(PDO::FETCH_ASSOC) as $row)

{

foreach ($row as $data)

{

echo $data." ";

}

echo "
";

echo "执行完毕";

var_dump($pdo->errorInfo());

}

利用:

显示:

连接成功select* from myuser where id=:id

1 5.5.50-0ubuntu0.14.04.1-logroot@localhost 4执行完毕

php sql注入审计,php审计基础一:sql注入相关推荐

  1. SQL进阶教程 | 史上最易懂SQL教程 5小时零基础成长SQL大师

    目录 第一部分:基础--增删查改 [第一章]做好准备 Getting Started (时长25分钟) [第二章]在单一表格中检索数据 Retrieving Data From a Single Ta ...

  2. SQL进阶教程 | 史上最易懂SQL教程 5小时零基础成长SQL大师(3)

    [第八章]视图 创建视图 就是创建虚拟表,自动化一些重复性的查询模块,简化各种复杂操作(包括复杂的子查询和连接等) 注意视图虽然可以像一张表一样进行各种操作,但并没有真正储存数据,数据仍然储存在原始表 ...

  3. SQL进阶教程 | 史上最易懂SQL教程 5小时零基础成长SQL大师(5)

    [十二章]数据类型 介绍 MySQL的数据分为以下几个大类: String Types 字符串类型 Numeric Types 数字类型 Date and Time Types 日期和时间类型 Blo ...

  4. SQL进阶教程 | 史上最易懂SQL教程 5小时零基础成长SQL大师(4)

    [第十章]触发器和事件 触发器 触发器是在插入.更新或删除语句前后自动执行的一段SQL代码(A block of SQL code that automatically gets executed b ...

  5. SQL Server调优系列基础篇(子查询运算总结)

    前言 前面我们的几篇文章介绍了一系列关于运算符的介绍,以及各个运算符的优化方式和技巧.其中涵盖:查看执行计划的方式.几种数据集常用的连接方式.联合运算符方式.并行运算符等一系列的我们常见的运算符.有兴 ...

  6. SQL Server调优系列基础篇(联合运算符总结)

    前言 上两篇文章我们介绍了查看查询计划的方式,以及一些常用的连接运算符的优化技巧,本篇我们总结联合运算符的使用方式和优化技巧. 废话少说,直接进入本篇的主题. 技术准备 基于SQL Server200 ...

  7. sql怎么撤回update_零基础快速自学SQL,2天足矣!

    此文是<10周入门数据分析>系列的第6篇. 想了解学习路线,可以先行阅读" 学习计划 | 10周入门数据分析 " 上一篇分享了数据库的基础知识,以及如何安装数据库,今天 ...

  8. concat mysql sql注入_sql注入-mysql注入基础及常用注入语句

    最近在教学中,关于SQL注入,总发现学生理解起来有些难度,其实主要的原因是对各类数据库以及SQL语句不熟悉,今天先介绍mysql注入需要掌握的基础, Mysql内置information_schema ...

  9. DRDS SQL 审计与分析——全面洞察 SQL 之利器

    背景 数据库存储着系统的核心数据,其安全方面的问题在传统环境中已经成为泄漏和被篡改的重要根源.而在云端,数据库所面临的威胁被进一步的放大.因此,对云数据库的操作行为尤其是全量 SQL 执行记录的审计日 ...

  10. SQL Server上的审计表和数据版本控制

    目录 介绍 背景--审计表 背景--数据版本控制 让我们一石二鸟,并使用审计表也用于版本化数据 使事情变得清晰的视图示例 审计表 审计触发器 上下文信息 从C# EF6传递上下文 最终评论和一些高级技 ...

最新文章

  1. 2018-3-31 ELM极限学习机--笔记(黄广斌PPT,以及极限学习机原理介绍的部分,但是忘记网址了)
  2. SQLServer中利用NTILE函数对数据进行分组的一点使用
  3. 力扣(LeetCode)打卡刷题交流计划(长期维护)
  4. 使用泛型创建只读集合
  5. hive 百分比_HIVE短期内再次突破前高
  6. java与java ee_CapeDwarf – Java EE上的Google App Engine
  7. python多线程写同一文件_Python多线程写文件实例
  8. 老白聊数据-关于销售预测的那些事
  9. Facade(装饰模式)
  10. 客快物流大数据项目(二):物流项目详细介绍
  11. 提取unity3d游戏资源文件
  12. Linux学习_系统文件IO
  13. 4.3.2 Calculating and Applying VaR
  14. 三星14纳米EUV DDR5 DRAM量产;Amazfit推出三款智能手表;Whale帷幄获5000万美元融资 | 全球TMT...
  15. Gmail账号申诉成功
  16. 中公教育python教师_为什么中公教育、华图的老师不自己去考公务员?
  17. vue关闭eslint代码检测
  18. 常见的关系型数据库与非关系型数据库对比详解。
  19. 本地jar运行在docker中的方法
  20. dede网站SEO教程:织梦seo优化入门手册

热门文章

  1. 罗永浩将举办「老人与海」发布会;微软疑似遭遇大范围全球宕机;Python 3.9 首个测试版发布 | 极客头条...
  2. 漫画:什么是希尔排序?
  3. @程序员,如何轻松实现数据可视化?
  4. 如何掌握所有的编程语言?
  5. 弃 Windows 转投 Linux,微软全面进军 IoT!
  6. javaweb实训第三天上午——Servlet
  7. 禁用oracle的默认账户,Oracle EBS默认的账户
  8. Java实例方法和类方法的区别
  9. JAVA day15 Collection(集合)、Iterator迭代器、泛型<E>
  10. mysql resultmap_MyBatis ResultMap