URL静态化背后的安全隐患[网络技术]
本文“URL静态化背后的安全隐患[网络技术]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
无论是人还是搜索引擎都偏心url静态化,其背后带来的好处是很多的,很多站长都喜好通过一些技术手段,实现整站的静态化,以投搜索引擎的偏好,惟有我们——安全测试人员,对比讨厌.所以碰到一个目标网站时,很多人城市通过谷歌排撤除静态化的网页,针对动态页面下手.
但是静态化并不等于安全,首先我们需求知道网站是若何实现静态化的.说白了,实现网站静态化的手段主要有两种,一种是直接生成静态页面,另一种就是通过Apache的rewrite mod举行url重写,当然每种办法大概会有n多种的实现方法,二者之间也可以彼此穿插.关于直接生成静态页面,主要在新闻频道采纳这种方法,因为新闻永久是那模样,不需求改换大概改换的很少,这样的话直接在硬盘大概内存中安排这个数据页面,当有客户端拜候时可以直接将数据传送给用户,而避免了服务端注释履行、数据库大量检索等资源操作,加快了呼应速度;关于urlRewrite,这种方法的利用面就对比广了,基本上在任何的场所都实用,特别是在无法直接生成静态页面(页面内容时刻在变,如统计页面)时,urlRewrite为这一情形供应了优异的办理筹划.由此我们看到,关于后者,其实内容仍旧是动态的,只不过在客户端表现为静态页面,当客户端GET/POST到服务器时,服务器首先会对url举行注释,然后重定向到真正的页面上去,而这个历程都是在服务端操作的,客户端没有任何的非常.
看到这里,我们应当有所想象.既然是动态页面,那便要传参,我们来看一下各网站大概会采纳的传送方法.
1.http://target.com/cat-product/123456.html
通过想象猜测,这个链接的大概重写方法是
http://target.com/index.php?cat=product&id=123456
2.http://target.com/cat-product/123456.html?action=post
这种方法就越发明显了,基本上可以对比的肯定是通太重写的,因为传送了个显式参数的
当然上面这些都是yy,你可以看一下wordpress是若何实现的(我的虚拟主机不支慎重写,所以没有静态化)
由上面可以看出假如判断出某个网站是通太重写举行静态化的,那么该网站任然处于大概存在注入的安全威胁中.
比方上面的例子,我们可以通过这样的方法举行检测
1.http://target.com/cat-product/123456 and 1=1.html
但是这种方法并不利于注入工具的利用,我们可以按照他本来的面目举行检测
2.http://target.com/index.php?cat=product&id=123456 and 1=1
固然第二种方法比第一种便利,但是请注意,这里的id是我们猜想到的,假如是productid而不是id呢,大概我们无法猜想到,这样的话第二种办法就失利了.但是第一种不会,因为服务端在注释url时会自动将我们的构造参数参数赋给参数名
注意,一样是下面两个链接,但是通太重写后遭到注入攻击的大概性却不一样
1.http://target.com/cat-product/123456.html
2.http://target.com/index.php?cat=product&id=123456
大家大概会有迷惑,这需求从url法则的书写方法说起.我们来看一下关于第一种方法的书写法则
###### .htaccess #######
RewriteEngine On
RewriteRule ^cat-(.*)/(.*)\.html$ index.php?cat=product&id=123456 [NC,L,QSA]
......
####### End Rule #######
关于这种方法的重写,那么二者遭遭到注入攻击的大概性是一样的,但是程序员普通考虑到重写的精准性(因为多个差别的页面,假如仅仅举行简单的匹配的话,大概会反复),极大概会这样写
###### .htaccess #######
RewriteEngine On
RewriteRule ^cat-(.*)/(\d+)\.html$ index.php?cat=product&id=123456 [NC,L,QSA]
......
####### End Rule #######
这个和上面第一个的差别就是:第二个括号中的匹配差别,第二个举行了数字型数据的匹配,假如我们提交123456 and 1=1这样的参数的话就失利了(前提是你无法猜解出这个参数名,假如猜解出了,那就是另一种气象了).由此我们看到,程序员无意的举行了匹配,却增添了程序的安全性.不过关于第一个参数,注入还是大概存在的,只不过是字符型,在php中大概会对比棘手
其实这篇文章早就想写,但是苦于没有经过实际的考证,所以过了几个月还是没写,刚好昨日碰到了一个网站,考证成功了,所以才写出来同某些不知道的人探究.本文也只是提出一个现象,并没有什么技术而言,其受众对象也主如果程序员,算是作为一种背面资料吧
urlrewrite是个好东西(不但仅针对搜索),特别是apache的,在增添网站安全性上有很多重要的作用.比方在url重写历程中中直接过滤某些恶意字符,可以很好的安排reflect情势的XSS攻击,这样就省去了程序上的代码量
具体别的更多的细节可以参考apache的技术文档(当然不只是apache才有这种功效)
原创作者:Inking m4r10重新整理公布,转载请注明版权!
以上是“URL静态化背后的安全隐患[网络技术]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |