845002618491765410.jpg (163.16 KB, 下载次数: 58)

2015-11-13 14:40 上传

针对PHP的网站主要存在下面几种攻击方式:

1、命令注入(Command Injection)

2、eval注入(Eval Injection)

3、客户端脚本攻击(Script Insertion)

4、跨网站脚本攻击(Cross Site Scripting, XSS)

5、sql注入攻击(SQL injection)

6、跨网站请求伪造攻击(Cross Site Request Forgeries, CSRF)

7、Session 会话劫持(Session Hijacking)

8、Session 固定攻击(Session Fixation)

9、HTTP响应拆分攻击(HTTP Response Splitting)

10、文件上传漏洞(File Upload Attack)

11、目录穿越漏洞(Directory Traversal)

12、远程文件包含攻击(Remote Inclusion)

13、动态函数注入攻击(Dynamic Variable Evaluation)

14、URL攻击(URL attack)

15、表单提交欺骗攻击(Spoofed Form Submissions)

16、HTTP请求欺骗攻击(Spoofed HTTP Requests)

以后的每期连载,会逐个介绍这些漏洞的原理和防御方法。

几个重要的php.ini选项:

RegisterGlobals

php>=4.2.0,php.ini的register_globals选项的默认值预设为Off,当register_globals

的设定为On时,程序可以接收来自服务器的各种环境变量,包括表单提交的变量,而且由于PHP不必事先初始化变量的值,从而导致很大的安全隐患。

例1:

//check_admin()用于检查当前用户权限,如果是admin设置$is_admin变量为true,然后下面判断此变量是否为true,然后执行管理的一些操作。//ex1.php

if(check_admin())

{

$is_admin=true;

}

if($is_admin)

{

do_something();

}

?>

这一段代码没有将$is_admin事先初始化为Flase,如果register_globals为On,那么我们直接提交http://www.ichunqiu.com/ex1.php?is_admin=true,就可以绕过check_admin()的验证:

[/hide]

例2:

//ex2.php

if(isset($_SESSION["username"]))

{

do_something();

}

else

{

echo"您尚未登录!";

}

?>

当register_globals=On时,我们提交=dodo]http://www.ichunqiu.com/ex2.php?_SESSION[username]=dodo,就具有了此用户的权限所以不管register_globals为什么,我们都要记住,对于任何传输的数据要经过仔细验证,变量要初始化。

safe_mode

解决方法

安全模式,PHP用来限制文档的存取、限制环境变量的存取,控制外部程序的执行。启用

安全模式必须设置php.ini中的safe_mode=On

1、限制文件存取

safe_mode_include_dir="/path1:/path2:/path3"

不同的文件夹用冒号隔开

2、限制环境变量的存取

safe_mode_allowed_env_vars=string

指定PHP程序可以改变的环境变量的前缀,如:safe_mode_allowed_env_vars=PHP_ ,当这个选项的值为空时,那么php可以改变任何环境变量

safe_mode_protected_env_vars=string用来指定php程序不可改变的环境变量的前缀。

3、限制外部程序的执行

safe_mode_exec_dir=string

此选项指定的文件夹路径影响system、exec、popen、passthru,不影响shell_exec和“``”。

disable_functions=string

不同的函数名称用逗号隔开,此选项不受安全模式影响。

magicquotes

用来让php程序的输入信息自动转义,所有的单引号(“'”),双引号(“"”),反斜杠(“\”)和空字符(NULL),都自动被加上反斜杠进行转义magic_quotes_gpc=On用来设置magicquotes为On,它会影响HTTP请求的数据(GET、POST、Cookies)程序员也可以使用addslashes来转义提交的HTTP 请求数据,或者用stripslashes 来删除转义。

php漏洞书籍,PHP漏洞全解(一)-PHP网站的安全性问题相关推荐

  1. PHP漏洞全解(一)-PHP网站的安全性问题

    针对PHP的网站主要存在下面几种攻击方式: 1.命令注入(Command Injection) 2.eval注入(Eval Injection) 3.客户端脚本攻击(Script Insertion) ...

  2. 37:WEB漏洞-反序列化之PHPJAVA全解(上)

    参考:https://www.cnblogs.com/zhengna/p/15661109.html 本文为学习,复现笔记,侵删 思维导图 文章目录 思维导图 **知识点** [PHP 反序列化] 序 ...

  3. Android 移动安全知识技术全解(加固技术、常规漏洞、Android 逆向......),移动安全问题不容忽视

    前言 您的设备是否处于遭受攻击.劫持或损害的风险中?毫无疑问.剑桥大学的研究人员发现,87% 的 Android 智能手机有至少一个严重漏洞,Zimperium Labs 在早些时候发现,黑客只需通过 ...

  4. 第30天-WEB 漏洞-RCE 代码及命令执行漏洞全解

    在 Web 应用中有时候程序员为了考虑灵活性.简洁性,会在代码调用代码或命令执行函数去处理.比如当应用在调用一些能将字符串转化成代码的函数时,没有考虑用户是否能控制这个字符串,将造成代码执行漏洞.同样 ...

  5. 网络安全与渗透:文件上传漏洞,一文详解(十)此生无悔入华夏,男儿何不带吴钩

    中华人民共和国网络安全法 阅读本文前,请熟读并遵守中华人民共和国网络安全法: http://gkhy.jiujiang.gov.cn/zwgk_228/jc/zcwj/202006/P02020061 ...

  6. 文件包含漏洞—allow_url_fopen和allow_url_include详解

    文件包含漏洞_allow_url_fopen和allow_url_include详解 提要:在文件包含漏洞中,PHP脚本环境中php.ini文件中通常会涉及到这两个参数,两个参数的开启或关闭影响文件包 ...

  7. php 反序列化漏洞,PHP反序列化漏洞详解

    最近和小伙伴们一起研究了下PHP反序列化漏洞,突发奇想,利用反序列化漏洞写一个一句话木马效果应该蛮不错的.本文主要和大家分享PHP反序列化漏洞详解,希望能帮助到大家. 0x01 PHP反序 说起PHP ...

  8. 【web安全】——命令执行漏洞(RCE)详解

    作者名:Demo不是emo  主页面链接:主页传送门 创作初心:舞台再大,你不上台,永远是观众,没人会关心你努不努力,摔的痛不痛,他们只会看你最后站在什么位置,然后羡慕或鄙夷 座右铭:不要让时代的悲哀 ...

  9. php打补丁,PHPMailer库打补丁后漏洞仍然存在,怎么解?

    开源PHPMailer库被披露存有一个严重的远程代码执行漏洞.这个漏洞在被修补后,又进行了二次修复,因为第一次没有充分解决问题.那么,这个漏洞是如何工作的?为什么原始补丁没有解决问题? Michael ...

最新文章

  1. 计算机内存与内置类型,笔记本内存种类有哪些 笔记本常见内存类型介绍
  2. 阿里秒杀系统架构优化思路
  3. android+建模工具,什么是适用于Android Studio的3D模型环境的最佳工具
  4. 大白技术控 | Windows10X 模拟器简单上手体验
  5. iosselect简单使用(三级联动)
  6. java 安装包_手机也可以编写Java程序代码?这些黑科技你值得拥有!
  7. 锁-概念:可重入锁、可中断锁、公平锁、读写锁
  8. 用户信息填写web代码_zabbix监控系列之监控项(8、web监控)
  9. VS报错:“Stack around the variable XX was corrupted”
  10. 热的感觉是顺经络走的
  11. matlab fir带通滤波,基于Matlab的FIR带通滤波器设计与实现
  12. linux如何磁盘管理工具下载,Linux_Linux系统的磁盘空间管理工具, 1.fdisk -lDis - phpStudy...
  13. 信息流推广与普通搜索推广的区别与优势是什么?
  14. android动态修改桌面图标,Android动态更换桌面图标
  15. 数学有趣地超乎你的想象!超级有趣!
  16. 怎么看公司邮箱服务器地址,怎么看企业邮箱是哪里的
  17. 打开GitHub官网缓慢
  18. excel 导出加水印
  19. 提升ASO榜单排名优化主要方式有哪些?
  20. Golang四舍五入保留两位小数

热门文章

  1. jQuery实现购物车物品数量的加减
  2. Revit二次开发之“让对象处于被选择状态”
  3. jquery插件开发方法
  4. 2.重新安装CM服务
  5. mysql timestamp 值不合法问题
  6. _DataStructure_C_Impl:共享栈
  7. [转]影响Cache的几个HTTP头信息
  8. 分析 tuning-primer.sh 源码
  9. linux之抓包神器tcpdump
  10. Cocos creator之javascript闭包