二月 | 2017 | 律师'小窝
您当前位置: 首页 » 二月 2017
按日期归档: 二月 2017

session_id()

session_id()在最新版的php中存在一个bug,当session_id()出现特殊字符时,虽然会报错,但是并不会重置,导致session_id()可控,如果使用session_id()生成token的话将是不安全的。

这里的最新版应该是php7,我本地装的php5.6,测试失败,所以,并没有复现,先转一下原文,等以后有空搭环境了再复现吧。

直接请求test.php文件返回:

readmore

Access移位溢注技术(已知表名,不知列名)

文章转载自i春秋社区,好文分享

介绍:
在Access数据库类型注入的时候,我们获取不到列名(前提是有表名),一般会选择使用偏移注入,但是这种注入方式往往借助的是个人的人品,且步骤繁琐。本文中我们研究了一种新的注入技术让“偏移注入不在需要人品”。在这里定义这种注入技术为:“移位溢注技术”。
它适用于ACCESS和MYSQL(任何版本)

readmore

in_array()

in_array()函数是用来判断一个值是否在某一个数组列表里面,通常的判断方式如下:

in_array(‘b’,array(‘a’,’b’,’c’))

这样是没有什么问题的,但是有一些开发者在使用中的不规范,导致一些安全漏洞的产生。

一、松散比较

先来看一下官方的说法

readmore

boblog变量覆盖导致任意文件包含

很早的一个洞了,重新复现一下,原洞修复了两次,全被绕过了,只复现其中一个比较有代表性的

下载地址:http://ftp-idc.pconline.com.cn/efeaecce337a1119e3cdc5c978a3b790/pub/download/200808/Bo-blogV2.1.1.tar.gz

在go.php中

大致意思已经进行注释了。

readmore

parse_str()

parse_str()函数的作用是将字符串解析成多个变量

如果 str 是 URL 传递入的查询字符串(query string),则将它解析为变量并设置到当前作用域,但他在注册变量前并不验证该变量是否已经存在,所以会直接覆盖掉已有的变量。

void parse_str ( string $str [, array &$arr ] )

其中$str是必须的,代表要解析注册成变量的字符串,形式为“a=1”,经过parse_str()后会注册变量$a,并赋值为1,第二个参数$arr是数组,当第二个参数存在时,注册的变量会放到这个数组里,如果原本存在相同的键名,则覆盖掉原有的键值。

readmore