PHP扩展--taint检测隐藏漏洞

简介

Taint 可以用来检测隐藏的XSS code, SQL注入, Shell注入等漏洞, 并且这些漏洞如果要用静态分析工具去排查, 将会非常困难, 比如对于如下的例子:

<?php
   echo $_GET["name"];
?>

对于请求:

http://localhost/?name=222

静态分析工具, 往往无能为力, 而Taint却可以准确无误的爆出这类型问题.

Warning: Main::test() [function.echo]: Attempt to echo a string that might be tainted in

taint安装

wget http://pecl.php.net/get/taint-1.2.2.tgz
tar zxvf taint-1.2.2.tgz
cd taint-1.2.2
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config
make && make install

配置php.ini

[taint]
extension=taint.so
taint.enable=1
taint.error_level=E_WARNING

运行结果

php -i | grep taint
taint
taint support => enabled
taint.enable => On => On
taint.error_level => 2 => 2

###附录

A. 验证的字符串

所有来自GET,GET,_POST, $_COOKIE的变量, 都被认为是Tainted String

B. taint检测的函数/语句列表, 当这些函数使用tainted string参数的时候, taint会给出警告:

1. 输出函数/语句系列

    echo
    print
    printf
    file_put_contents

2. 文件系统函数

    fopen
    opendir
    basename
    dirname
    file
    pathinfo

3. 数据库系列函数/方法

    mysql_query
    mysqli_query
    sqlite_query
    sqlite_single_query
    oci_parse
    Mysqli::query
    SqliteDataBase::query
    SqliteDataBase::SingleQuery
    PDO::query
    PDO::prepare

4. 命令行系列

    system
    exec
    proc_open
    passthru
    shell_exec

5. 语法结构

    eval
    include(_once)
    require(_once)

C. 消除tainted信息的函数, 调用这些函数以后, tainted string就会变成合法的string:

escapeshellcmd
htmlspecialchars
escapeshellcmd
addcslashes
addslashes
mysqli_escape_string
mysql_real_escape_string
mysql_escape_string
sqlite_escape_string
PDO::quote
Mysqli::escape_string
Mysql::real_escape_string

D. 调用中保持tainted信息的函数/语句, 调用这些函数/语句时, 如果输入是tainted string, 则输出也为tainted string:

=
.
"{$var}
.=
strval
explode
implode
sprintf
vsprintf
trim
rtrim
ltrim

来自为知笔记(Wiz)

时间: 2024-08-29 20:20:39

PHP扩展--taint检测隐藏漏洞的相关文章

遍历PspCidTable表检测隐藏进程

一.PspCidTable概述 PspCidTable也是一个句柄表,其格式与普通的句柄表是完全一样的,但它与每个进程私有的句柄表有以下不同: 1.PspCidTable中存放的对象是系统中所有的进程线程对象,其索引就是PID和TID. 2.PspCidTable中存放的直接是对象体(EPROCESS和ETHREAD),而每个进程私有的句柄表则存放的是对象头(OBJECT_HEADER). 3.PspCidTable是一个独立的句柄表,而每个进程私有的句柄表以一个双链连接起来.注意访问对象时要掩

流量检测主机漏洞之困顿

几个主机漏洞的环境搭好,等待dpi数据的流入,遗憾的是,dpi今天的配置终于弄好了,持续了两三个星期,而没有数据.现在有数据了,EXP一打,日志出来了,结果并没有buf的内容,只有常规的  源IP源端口,目的IP目的端口,网络层应用层协议,以及一些进出数据量的大小,并没有具体的内容.而且不能用关联,只能用单条日志匹配.所以之前做的漏洞检测大多废了用不上.如果一定要用,只能取发送Buf的bytesIn.bytesOut和bytesAll了. 没有字段是因为大数据分析的数据需要关联分析,所以需要保留

sencha touch 侧边栏扩展(只隐藏不销毁)

基于Ext.ux.MenuButton改造而来,和它不同的是,不会每次都去销毁侧边栏,只是单纯的隐藏,属性配置方面没啥区别,每次点击按钮显示时,会触发showMenu事件/方法 代码如下: /** *只隐藏不销毁的侧边栏 * @private */ Ext.define('ux.Menu.Context', { extend: 'Ext.Button', requires: ['Ext.ux.ContextMenu'], config: { menuItems: [], menuSide: 'r

网站安全之逻辑漏洞检测 附漏洞修复方案

在网站安全的日常安全检测当中,我们SINE安全公司发现网站的逻辑漏洞占比也是很高的,前段时间某酒店网站被爆出存在高危的逻辑漏洞,该漏洞导致酒店的几亿客户的信息遭泄露,包括手机号,姓名,地址都被泄露,后续带来的损失很大,最近几年用户信息泄露的事件时有发生,给很多企业,酒店都上了一堂生动的安全课.关于网站逻辑漏洞的总结,今天跟大家详细讲解一下. 网站逻辑漏洞 用户的隐私信息属于数据的保护的最高级别,也是最重要的一部分数据,在逻辑漏洞当中属于敏感信息泄露,有些敏感信息还包括了系统的重要信息,比如服务器

CSRF进阶之打造一个检测CSRF漏洞的脚本

前言: 还记得之前所学的CSRF漏洞吧.因为没有对表单做好对应的漏洞 而造成的CSRF漏洞.学了这个漏洞后逐渐的了解.这个比较鸡助. 代码: import requests,tqdm,time,os,re logo=""" ◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇ ◇◇◇◇◇◇◇

利用BURPSUITE检测CSRF漏洞

CSRF漏洞的手动判定:修改referer头或直接删除referer头,看在提交表单时,网站是否还是正常响应. 下面演示用Burpsuite对CSRF进行鉴定. 抓包. 成功修改密码完成漏洞的利用. 原文地址:https://www.cnblogs.com/godoforange/p/10834684.html

扩展方法检测客户端队列是否存在

public static class QeuedServiceHelper { public static void VerifyQeues() { Configuration config = ConfigurationManager.OpenExeConfiguration (ConfigurationUserLevel.None); ServiceModelSectionGroup group=ServiceModelSectionGroup.GetSectionGroup(config

C++笔记十一:C++对C的扩展——变量检测增强

在C语言中重复定义多个同名的变量是合法的,多个同名的全局变量最终会被链接到全局数据区的同一个地址空间上. 在C++中,不允许定义多个同名的全局变量,也就是说C++直接拒绝这种二义性的做法. 长按解锁 解锁更多精彩内幕 依法编程 微信:Lightspeed-Tech 技术驱动生活 原文地址:https://www.cnblogs.com/tyyhmtyyhm/p/8973873.html

怎么用啊D注入工具检测asp网站注入漏洞

1. http://jingyan.baidu.com/article/4d58d541ce04ae9dd4e9c0f9.html 2. asp网页很怕注入漏洞,特别是比较老的企业网站,很多都有注入漏洞,怎么用啊D注入工具检测asp网站注入漏洞? 啊D注入工具是一种主要用于SQL的注入工具,由彭岸峰开发,使用了多线程技术,能在极短的时间内扫描注入点.使用者不需要经过太多的学习就可以很熟练的操作.并且该软件附带了一些其它的工具,可以为使用者提供极大的方便. 工具/原料 啊D注入工具 DSQLToo