作者: Laruence

之前, 小顿和我提过一个想法, 就是从PHP语言层面去分析,找出一些可能的XSS漏洞代码. 当时我一来没时间, 而来也确实不知道从何处下手..

直到上周的时候, 我看到了这个RFC: RFC:Taint.

但是这个RFC的问题在于, 它需要为PHP打Patch, 修改了PHP本身的数据结构, 这对于以后维护, 升级PHP来说, 很不方便, 也会有一些隐患.

虽然这样, 但这个RFC却给了我一个启发, 于是我就完成了这样的一个扩展:Taint Extension

这个扩展使用起来, 很简单(目前只支持5.2.6 ~ 5.3.10):

下载源代码以后, 编译, 安装. 然后在php.ini中要开启这个扩展(建议不要在生产环境开启这个扩展):

extension=taint.so

taint.enable=

启用这个扩展以后, 如果在一些关键函数(或者语句: echo, print, system, exec, 等等), 或者输出的地方*直接*(没有经过转义, 安全过滤处理)使用了来自$_GET, $_POST或者$_COOKIE的数据, 则Taint就会提示你:

$a = $_GET['a'];

$file_name = '/tmp' . $a;

$output = "Welcome, {$a} !!!";

$var = "output";

$sql = "Select * from " . $a;

$sql .= "ooxx";

echo $output;

//Warning: main(): Attempt to echo a string which might be tainted in xxx.php on line x

print $$var;

//Warning: main(): Attempt to print a string which might be tainted in xxx.php on line x

include($file_name);

//Warning: include() [function.include]: File path contains data that might be tainted in xxx.php on x

mysql_query($sql);

//Warning: mysql_query() [function.mysql-query]: First argument contains data that might be tainted in xxx.php on line x

?>

目前因为还没有支持5.4(5.4的实现方法, 要依赖于我将要和Dmitry讨论的一个新需求), 所以目前还没有发布一个下载包, 大家可以先直接从源代码下载: Taint on Github.

上面的例子显示了简单的用法, 回头我会再完善下文档….

enjoy~

http://www.dengb.com/aqgjrj/498977.htmlwww.dengb.comtruehttp://www.dengb.com/aqgjrj/498977.htmlTechArticle作者: Laruence 之前, 小顿和我提过一个想法, 就是从PHP语言层面去分析,找出一些可能的XSS漏洞代码. 当时我一来没时间, 而来也确实不知道从...

php taint安装失败,PHP Taint – 一个用来检测XSS漏洞的扩展相关推荐

  1. php taint扩展,检测XSS漏洞的扩展 PHP Taint

    PHP Taint 从PHP语言层面去分析,找出一些可能的XSS漏洞代码. 启用这个扩展以后, 如果在一些关键函数(或者语句: echo, print, system, exec, 等等), 或者输出 ...

  2. php taint扩展,PHP Taint – 一个用来检测XSS/SQL/Shell注入漏洞的扩展

    作者: Laruence( 鸟哥  ) 之前, 小顿和我提过一个想法, 就是从PHP语言层面去分析,找出一些可能的注入漏洞代码. 当时我一来没时间, 而来也确实不知道从何处下手.. 直到上周的时候, ...

  3. PHP Taint 一个用来检测 XSS/SQL/Shell 注入漏洞的扩展

    什么是Taint ? An extension used for detecting XSS codes(tainted string), And also can be used to spot s ...

  4. 【工具分享 】分享一个jQuery多版本XSS漏洞检测工具

    0x00 前言 最近在搞一个 jQuery v2.1.4 DOM-XSS 漏洞的复现,在网上找了很多Payload都不能用,大多数Payload都只适用于 jQuery v1.x 版本的. 后来看到有 ...

  5. cnpm安装失败及解决方案

    1.首先要去配置node.js,直接去node.js官网(http://nodejs.cn/) 下载node-vx.x.x.pkg文件双击一路默认安装即可,安装完在终端输入: node -v 如果显示 ...

  6. mac安装cnpm安装失败

    参考了网上一篇博客 完成的安装.写下来纯属方便自己以后好找 也方便更多人看到. 官网安装node npm install -g cnpm --registry=https://registry.npm ...

  7. visio2007或office 2007安装失败提示一个或多个受保护的windows文件导致office 2007安装失败

    关于visio2007或office 2007安装失败提示一个或多个受保护的windows文件导致office 2007安装失败解决办法: 和安装的系统有关.解决方法: 在C:\Program Fil ...

  8. Mac安装pkg包报错:安装失败 “安装器遇到了一个错误,导致安装失败,请联系软件制造商以获得帮助

    Mac安装pkg包报错:安装失败 "安装器遇到了一个错误,请联系软件制造商以获得帮助 打开终端,输入: sudo spctl --master-disable 然后输入锁屏密码. 然后在[系 ...

  9. 记一次GI安装失败(root.sh在第一个node上失败)的调试经历

    新拿到一个c'lu'ster,尝试安装GI(grid infrastructure),root.sh在第一个node上失败了.调试过程 第一步:首先查看log 在root.sh的log里 看到如下的错 ...

最新文章

  1. 二叉树链表结构表示法
  2. 架构与设计 之一 C 嵌入式设计模式(Design Patterns for Embedded Systems in C)的学习记录
  3. TP5.1查询用Db('不含表前缀')/Db::name('不含表前缀')/Db::table('含表前缀')返回数组;model()返回对象
  4. 误删docker0网桥之后怎么办呢?
  5. Microsoft JET Database Engine 错误 #39;80004005#39;的解决方法
  6. 计算机东大计算机三在线作业,东大16秋学期《计算机基础》在线作业3
  7. Android8.0 学习(15)---适配Android 8.0
  8. 【Kafka】Kafka Leader:none ISR 为空 消费超时
  9. 了解过Vintage的N种样式?
  10. MySQL服务器安装完之后如何调节性能
  11. 再谈CentOS 7程序自启动
  12. |Vijos|NOIP2015|模拟|P1975 扫雷游戏
  13. qt中文显示乱码问题
  14. Testlink开启图片上传功能
  15. 微博营销的价值与注意点
  16. pandas数据分析之分组聚合
  17. Android音乐播放器
  18. List1_Excise
  19. 视频分析代码douyin
  20. 现在, Delphi 的多线程已经非常易用了!

热门文章

  1. vue商城项目源码_CMS全栈项目之Vue和React篇(下)(含源码)
  2. 选择嵌套_Python if语句嵌套(入门必读)
  3. rgb sw 线主板接口在哪_十代至尊i910980XE直接上:技嘉X299X AORUS MASTER主板评测
  4. java循环链表类_3、循环链表(java实现)
  5. python中用str乘方_Python基础知识
  6. dns设置服务器版本信息,DNS设置方法
  7. 【推荐系统】基于MovieLens数据集实现的协同过滤算法
  8. 二十一、String、StringBuffer和StringBuilder的区别是什么?
  9. 三十、开始前端Vue.js的学习之路
  10. 一阶暂态电路三要素法和三种响应