0X01 SQL注入

这里主要是PHP的防范注入的几个配置,注入手法不再赘述

magic_quotes_gpc

$_GET $_POST $_COOKIE 变量中的 ' " \ 空字符(NULL) 进行转义。但这个特性在 PHP5.3.0 中已经不推荐使用,并且在 PHP5.4.0 中已经移除。注意它并不会过滤 $_SERVER

magic_quotes_runtime

对从数据库或文件中获取的数据进行过滤,过滤内容与 magic_quotes_gpc 一致。但在PHP5.4中被废弃。

magic_quotes_sybase

将 $_GET $_POST $_COOKIE 变量中的'替换为",并对空字符(NULL)`进行转义。此选项会完全覆盖magic_quotes_gpc。

safe_mode

safe_mode在 PHP5.3.0 中废弃, PHP 5.4.0 中移除。

0X02 XSS

htmlspecialchars()默认只过滤"

0X06 文件操作

文件操作包括上传,读取,写入,下载,包含,删除。

文件包含

文件包含分为本地文件包含(LFI),远程文件包含(RFI)。进行远程文件包含需要allow_url_include = On。远程文件包含也可以通过PHP的输入/输出流 php:// 或伪协议 data:// 来实现
如果文件包含被加以某种限制,如 include($_GET['file'].'.html')。这里给出几种bypass的方法

  • 通过 %00 截断的方式来进行包含。但是这要在未对 NULL 字符进行过滤的情况下。而且在 PHP5.3 之后的版本无法利用。
  • 利用多个 . 来进行截断。windows下需要>=240个,linux下>=2040个。这种方法同样在 PHP5.3.0 后被修复
  • 特别的,当可以进行远程文件包含时,我们可以利用URL中的 ? # 来实现截断。file=http//www.example.com/shell.php?, 这样 .html 会被认为成请求参数

    文件上传

  • 利用apache或iis6.0的解析漏洞
  • php3 php4 php%20 绕过
  • %00截断,如 1.php%00.jpg
  • 更改文件头
  • content-type
  • 0X07 代码执行

    代码执行相关函数 eval() assert() preg_replace() call_user_func() call_user_func_array() array_map() array_filter() array_reduce()

0X08 命令执行

命令执行相关函数 exec() system() shell_exec() passthru() pcntl_exec() popen() proc_open(), 除此之外被反引号括起的字符串也会被当做命令执行

0X09 变量覆盖

变量覆盖漏洞是指用户传入的变量会将程序内部原有变量的值覆盖。可能引发变量覆盖漏洞的函数有 extract() parse_str()
PHP中的可变变量也可以导致变量覆盖,比如下面的过滤操作

foreach(array('_COOKIE', '_POST', '_GET') as $_request) {
foreach($$_request as $_key => $_value) {
$$_key = addslashes($_value);
}
}

变量覆盖漏洞一般需要和其他的攻击方式进行结合。

Hacking PHP的更多相关文章

  1. ★Kali信息收集~ 1.Google Hacking + Github Hacking

    一.google hacking site site:cnblogs.com 毒逆天 intitle intitle:login allintitle allintitle:index of alli ...

  2. 狗汪汪玩转无线电 -- GPS Hacking

    狗汪汪玩转无线电 -- GPS Hacking Kevin2600 · 2015/12/09 10:12 0x00 序 GPS Hacking 在过去几年的安全会议上一直都是很受关注的议题. 但往往因 ...

  3. GnuRadio Hacking②:使用SDR嗅探北欧芯片无线键盘鼠标数据包

    0×00 前言 上半年的时候安全公司Bastille Networks(巴士底狱)安全研究员发现大多数无线鼠标和接收器之间的通信信号是不加密的,黑客可对一两百米范围内存在漏洞的无线键鼠进行嗅探甚至劫持 ...

  4. GnuRadio Hacking①:使用GnuRadio+SDR破解固定码无线遥控

    0×01 信号捕获 在这篇文章中,我们将使用GnuRadio+SDR硬件对某品牌型号的无线跳蛋进行无线重放攻击的演示. 市面上常见的无线遥控工作的频段,通常工作在315Mhz.433Mhz,也有少数的 ...

  5. GSM Hacking Part② :使用SDR捕获GSM网络数据并解密

    0×00 在文章第一部分 GSM Hacking Part① :使用SDR扫描嗅探GSM网络 搭建了嗅探GSM流量的环境,在第二部中,我们来讨论如何捕获发短信以及通话过程中的流量,从捕获到的数据中解密 ...

  6. 移动安全初探:窃取微信聊天记录、Hacking Android with Metasploit

    在这篇文章中我们将讨论如何获取安卓.苹果设备中的微信聊天记录,并演示如何利用后门通过Metasploit对安卓设备进行控制.文章比较基础.可动手性强,有设备的童鞋不妨边阅读文章边操作,希望能激发大家对 ...

  7. Redis代码阅读之Hacking Strings

    Hacking Strings The implementation of Redis strings is contained in sds.c ( sds stands for Simple Dy ...

  8. RFID Hacking④:使用ProxMark3 破解门禁

    文中提及的部分技术可能带有一定攻击性,仅供安全学习和教学用途,禁止非法使用! 0×00 前言 国际黑客大会Defcon传统之一:开锁!因为黑客认为锁也是一种安全挑战.我们在黑客题材电影.电视剧中也常常 ...

  9. Rootkit Hacking Technology && Defence Strategy Research

    目录 . The Purpose Of Rootkit . Syscall Hijack . LKM Module Hidden . Network Communication Hidden . Fi ...

  10. 黑客讲述渗透Hacking Team全过程(详细解说)

    近期,黑客Phineas Fisher在pastebin.com上讲述了入侵Hacking Team的过程,以下为其讲述的原文情况,文中附带有相关文档.工具及网站的链接,请在安全环境下进行打开,并合理 ...

随机推荐

  1. 如何在vue里面正确的引用 jquery 和 第三方插件

    vue-cli webpack全局引入jquery(jq通过npm安装的并非本地文件) 1.首先在package.json里加入, dependencies:{ "jquery" ...

  2. Python之进程 进阶 下

    在python程序中的进程操作 之前我们已经了解了很多进程相关的理论知识,了解进程是什么应该不再困难了,刚刚我们已经了解了,运行中的程序就是一个进程.所有的进程都是通过它的父进程来创建的.因此,运行起 ...

  3. 【转】ORACLE SQL基础—DDL语言 礼记八目 2017-12-23 21:26:21

    原文地址:https://www.toutiao.com/i6502733303550837261/ SQL语言分为:DDL数据定义语言,DML数据操纵语言,DCL是数据库控制语言,TC事务控制语言 ...

  4. vc++绘图,颜色

    新建mfc应用程序,Graphic ,单文档 添加菜单项,点,直线,矩形,椭圆 建立类导向 MFC ClassWizard,为菜单项添加命令响应 添加成员变量 在CGraphicView构造函数中进行 ...

  5. C#学习 第六节

    什么是类型(Type)? 类型在C#中的作用 C#语言的类型系统 变量.对象与内存 类型(Type):数据类型 性质相同的值得集合:内存:内部存储单元,计算机运行程序的空间:外存:扩展存储器,硬盘: ...

  6. C++基础 (4) 第四天 this指针 全局函数和成员函数 友元 操作符重载

    1static强化练习-仓库进货和出货 #define _CRT_SECURE_NO_WARNINGS #include <iostream> using namespace std; c ...

  7. [luogu 1270] “访问”美术馆 (树形dp)

    传送门 Description 经过数月的精心准备,Peer Brelstet,一个出了名的盗画者,准备开始他的下一个行动.艺术馆的结构,每条走廊要么分叉为两条走廊,要么通向一个展览室.Peer知道每 ...

  8. P3378 【模板】堆

    题目描述 如题,初始小根堆为空,我们需要支持以下3种操作: 操作1: 1 x 表示将x插入到堆中 操作2: 2 输出该小根堆内的最小数 操作3: 3 删除该小根堆内的最小数 输入输出格式 输入格式: ...

  9. 汇编-理解call,ret

    ; 有意思的东西,主函数调用子函数用汇编来理解 assume cs:codeseg codeseg segment start: main: call sub1 ; 调用子函数1, push IP1 ...

  10. OOP面向对象 三大特征 继承封装多态

    OOP面向对象 ----三大特征 继承封装多态 面向对象(Object Oriented,OO)是软件开发方法.面向对象的概念和应用已超越了程序设计和软件开发,扩展到如数据库系统.交互式界面.应用结构 ...