一晃有一年多没有写博客了,每次想提笔写写,由于总是感觉要写的太多了,总是对自己说:“想清楚想明白再写”,这样就一直拖延。 另外一个原因是,觉得也没有什么人看,就这样耽搁下来了。 人是个有惰性的物种,只要惰性战胜了自己,就会找到很多理由让自己偷懒下。好了,闲话少说了,言归正传了。 做了多年的web开发,遇到过很多刚刚毕业的兄弟以及刚入行的朋友。 经常在做一些功能时候,从技术设计本身出现各种问题。 他们在程序语言方面非常熟悉,但是做出来经常出现重大安全隐患!主要是用代码实现需求时候,考虑不全面,因此存在各种设计缺陷,产生技术漏洞!一些书本只会教我们 怎么样去实现功能, 而不会说 怎么样完美、无bug实现。...
阅读全文
前面我们说到,web应用安全的基数是,做好参数检测!就像是小区防止小偷,必须把好所有进入门。然后,对进入人员进行检测!这些我们都清楚的,就是有时候在web应用中,对输入参数检测时候发现困难!因为,输入参数字符可以各种各样,长度也不相同!我们从什么维度准确标识出我所需要的格式呢? 这里我观点是,应用对参数检测可以分为2个关卡,第一个关卡可以是,保证参数输入安全。第二个关卡是保证它是业务所需要的值。一个应用,保证安全是最基础的。我们第一关检测参数,怎么样做比较好呢? 标识参数方法? 所有web传入都是字符串,我们怎么样标识字符串呢?字符串都是有字符组成的,常见是ascii码,对于中文网站,有gb2312,gbk等字符。从这里...
阅读全文
好几天没有写了,电脑一直有问题,还没有修好!本来开机故障,修理了下!现在是彻底开机不了!算了,随它去吧,该换个品牌了!先不说这些,我们进入正题,看看web应用安全基数,为什么是输入参数检查!开发web应用,工作中代码审核、漏洞修复!基本是我们对输入参数检查不够! 主要问题出现在3个方面: 1、对检查认识不够!经常忘记必要参数检测,特别对于一些页面只是传值,而没有写入到后端存储的参数,更是很容易遗漏! 2、对那些是输入的、那些是系统环境参数 有些没有明白,导致错误的放过该检查的参数! 3、检查方法不正确、往往检查过后,还存在问题! 我说说自己的一些看法吧,所有一切首先要认识到参数检查的重...
阅读全文
最近比较忙,电脑一直有问题,还没有修理好。本来以前买个电脑才3000来块,现在刚好过保几个月,然后修下说要700多,如果换配件要1000多。这个电脑现在买个新二手,应该也就千把块,够黑了。呵呵,不说这么些了。今天我们继续分析京东商城Jsonp使用漏洞之二,未对资源访问进行授权。 对于Jsonp漏洞,这里我就不细说了,详细可以看:Jsonp常见安全漏洞分析(京东商城Jsonp 漏洞分析) ,从上面文章,我们知道jsonp是可以跨域名调用的。这个漏洞是:没有授权网站,可以直接在该站点访问jsonp接口资源。可能有朋友会问题:“这个漏洞有什么影响呢?”,一般我们常见有: 1.对于存在漏洞的网站来说:jsonp资源给外部调用,浪费接口资源,也给调用带...
阅读全文
上一节,我们分析了。选择不同编码可能会导致程序带来本身潜在的漏洞。这次我们以GBK编码为例,看看怎么样通过该编码注入到系统中。目前很多开源系统都存在类似的注入问题。我们先来,从一个Demo开始! GBK字符集漏洞注入原理 <?php
$u=isset($_GET['u'])? $_GET['u']:'';
$u=addslashes($u);
$sql = "select * from user where user='$u'";
以上是我们写的一个测试例子(GBK编码),现在很多开源系统,比较少的进行统一参数过滤,有时候为了防止注入,就直接对参数进行转义处理。我们看看,这样一个例子,我们怎么样注入进系统!
步骤
备注
1.传入值%D5%27 or 1...
阅读全文
很多时候,一个web站点,选择什么样的字符编码,我们不会太过在意的。象中文网站,我们一般用gb2312,gbk,gb18030,也可以用utf-8。但是,可能我们不知道,选择不同编码,可能因此导致程序本身设计缺陷。 多字节编码由来 我们先来看看最常用的,最小字符集是ascii,对应的二级制可以表示为:00-7F 编码 。它也是我们计算机使用最早通用的字符集。前期几乎可以表示所有英文字符。后来,更多使用计算机国家加入后,我们就想在计算机中表示中文字符。我们知道常见中文就有7000多个字符。ascii码就只有128字符,只有0-127编码位置,远远不够用了。因此,我们就开始制作更大字符集,并且保证兼容ascii编码。要支持更多字符,选择更大字符集。我们只能...
阅读全文
继续我们jsonp 安全使用分享吧!上一篇文章我们提到jsonp使用,常见2种类型漏洞出现!详细可以看看:Jsonp常见安全漏洞分析 ,今天我们来结合实例分析下该漏洞的测试、及利用过程吧!题外话为什么我选择是京东商城来分析它的jsonp 漏洞呢,其实主要原因最近6.18一直在做活动,我也买了不少便宜东西。现在该商城越做越好了。它系统也非常庞大,速度性能也很好。当时在购物时候,只是想看看,它的系统分离设计方面。通过分析页面http请求,发现有很多jsonp调用(也许跟换域名有关系,2种域名都可以访问,中间用jsonp交换数据),于是就看看,jsonp常见2种安全方面,有没有做处理。结果一测试。发现完全没有做任何处理,几乎是完完全全暴露出来。个...
阅读全文
JSONP(JSON with Padding)是资料格式 JSON 的一种“使用模式”,可以让网页从别的网域要资料。这个解释来自于互联网上面的答案。jsonp只是 一种使用json模式,之所以能够很广泛使用。主要用它来解决跨域访问问题。可以方便跨域名传输数据。一些是一个jsonp的例子。但是,正确的使用jsonp是至关重要的,用得不好。将带来重要资料把超范围访问,还会带来各自xss漏洞。JSONP跨域请求例子传统的ajax ,往往是 XMLHttpRequest ,读取一个接口,返回类似: {"Name": "小明", "Rank": 7} json值。一般我们都采用xmlhttprequest方法通过状态判断执行请求是否完毕。JSONP的使用模式里,该URL回传的是由自定义传入函数名,动态生成JSON作为该函数入参,这就...
阅读全文
php header函数功能强大,可以给用户发送各种header头信息,只要header头里面能够发送的内容,都可以通过header函数来完成。如发送302跳转,设置cookie,发送401认证,发现last-modify等等! HTTP/1.1 specification for more information on HTTP headers,都可以用该函数完成。总之一句话,任何服务区response应答的头信息几乎都可以用它来发送。如:这里我们经常用header发送302跳转,会发现一个问题。在走查代码时候,遇到很多同人会有类似操作代码,如:<?phpheader("Content-type: text/html; charset=utf-8");//判断用户是否授权if('用户未授权'){ header("location:forbidden.php");}///下面是进行摸个记录操作//删除条记录,或者修改...
阅读全文
做web开发,我们经常会做代码走查,很多时候,我们都会抽查一些核心功能,或者常会出现漏洞的逻辑。随着技术团队的壮大,组员技术日益成熟。 常见傻瓜型SQL注入漏洞、以及XSS漏洞。会越来越少,但是我们也会发现一些新兴的隐蔽性漏洞偶尔会出现。这些漏洞,跟多来自开发人员,对一个函数、常见模块功能设计不足,遗留下的问题。以前我们能够完成一些功能模块,现在要求是要安全正确方法完成模块才行。 接下来,我会分享一些常见功能模块,由于设计原因导致漏洞出现。下面,我们先看下,读取文件型功能漏洞。 我们先看下下面一段代码,通过用户输入不同目录,包含不同文件 <?php
///读取模块名称
$mod = isset($_GET['m'])?trim($_GET['m']):'i...
阅读全文