Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1556
  • 博文数量: 1
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 20
  • 用 户 组: 普通用户
  • 注册时间: 2018-09-13 23:07
个人简介

主要讲解了 SQL注入攻击、XSS攻击、SSRF攻击、CSRF攻击、文件上传漏洞、信息泄露、越权、设计缺陷等八大方面,通过这次的梳理,也使我自己对PHP WEB安全防御有了一个全面了解。

文章分类

全部博文(1)

文章存档

2019年(1)

我的朋友

分类: PHP

2019-03-06 15:17:01

SQL注入攻击

定义

SQL注入攻击是通过WEB表单提交、URL参数提交或Cookie参数提交,将怀有恶意的“字符串”,提交到后台数据库,欺骗服务器执行恶意的SQL语句。

案例

	
  1. //以用户登录为例,当验证用户名和密码是否正确时

  2. $sql = "SELECT * FROM user WHERE

  3. username = '".$_GET['username']."' AND

  4. password = '".$_GET['password']."'";

用户恶意输入:

	
  1. $_GET['username'] = "' or 1=1 -- '";

  2. $_GET['password'] = "123456";

注入后的Sql语句:

	
  1. $sql = "SELECT * FROM user WHERE username = ''

  2. or 1=1 -- ''AND password = '123456'";

执行注入后的Sql语句,可以返回 user 表的全部数据。

平时我们可以进行自测,比如使用单引号、双引号等,如果是数字就进行 +1 或 -1。

众所周知,SQL注入的危害很大,利用SQL注入可以进行,拖库删库删表UDF提权读取文件...

在这里,推荐一个开源的自动化的SQL注入工具。

SQLmap

  • 支持各种数据库管理系统(MySql、Oracle、SQL Server、SQLite ... )。

  • 支持自动识别密码哈希格式并通过字典破解密码哈希。

  • 支持枚举用户、密码、哈希、权限、角色、数据库、数据表和列。

  • 支持完全地下载某个数据库中的某个表、某个列。

  • 支持在数据库管理系统中搜索指定的数据库名、表名或列名。

  • 支持下载或上传文件。

  • 支持执行任意命令并回现标准输出。

  • 支持布尔型盲注、时间型盲注、基于错误信息的注入、联合查询注入和堆查询注入。

尝试着利用工具,注入自己的项目,发现问题,然后并解决问题。

SQL注入的危害,远比我们想象的要大!

防御

推荐解决方案是使用 PDOMySQLi 的数据库扩展。

PHP官方文档中介绍,MySQL扩展自PHP 5.5.0起已废弃,并在自PHP7.0.0开始被移除。

如果已经在用MySQL扩展了,可以对传入的每个参数做验证,并使用框架的ORM进行查询。

另外:addslashes 和 mysql_real_escape_string 这种转义是?安全的!

XSS攻击

定义

XSS攻击是一种经常出现在WEB应用中的计算机安全漏洞,通过WEB表单提交或URL参数提交,将代码植入在用户的使用页面上。

分类

存储型

注入的恶意代码存储在服务器上(常用于留言板、论坛帖子、CRM),受害者请求服务器获取信息的时候,这些恶意代码就被浏览器成功执行。

反射型

注入的恶意代码没有存储在服务器上,通过引诱用户点击一个链接到目标网站进行实施攻击。

DOM型

注入的恶意代码并未显式的包含在web服务器的响应页面中,但会被页面中的js脚本,以变量的形式来访问到,从而来进行实施攻击。

案例

存储型:论坛帖子界面input输入框中,输入 />

阅读(356) | 评论(0) | 转发(0) |
0

上一篇:没有了

下一篇:没有了

给主人留下些什么吧!~~