JBTALKS.CC

标题: http header injection [打印本页]

作者: bluecloud08    时间: 2009-9-15 11:12 PM
标题: http header injection
请问 http header 是否跟 security 有关? google 了却找不到比较完整的资料, 所以就上来这问问看...

好像是把一些 code 直接 inject 进入我们的 header...是吧? 是怎样的一个情形呢?
可以提供多一点资料给我吗?

感激不尽!
作者: 小恶魔J@YL()NG    时间: 2009-9-16 12:12 AM
标题: 回复 #1 bluecloud08 的帖子
例如什么呢? header....? meta? js?
作者: bluecloud08    时间: 2009-9-16 12:16 AM
原帖由 小恶魔J@YL()NG 于 2009-9-16 12:12 AM 发表
例如什么呢? header....? meta? js?


我也搞不清楚...应该是这种的 http header...


  1. Host: google.com
  2. User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.11) Gecko/20071127 Firefox/2.0.0.11
  3. Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
  4. Accept-Language: en-us,en;q=0.5
  5. Accept-Encoding: gzip,deflate
  6. Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
  7. Keep-Alive: 300
  8. Connection: keep-alive
复制代码

作者: vampcheah    时间: 2009-9-16 01:38 AM
对这个有兴趣。
php 里的 $_SERVER 也有相关的函数吧。
据我知道的,firefox 有个 plugin 可以修改 header
但是会造成什么影响?
作者: 小恶魔J@YL()NG    时间: 2009-9-16 11:28 AM
ya....是控制东西的,header能负责很多东西,如body里面的js, flash, icon,都是由header负责的
作者: bluecloud08    时间: 2009-9-16 03:20 PM
原帖由 小恶魔J@YL()NG 于 2009-9-16 11:28 AM 发表
ya....是控制东西的,header能负责很多东西,如body里面的js, flash, icon,都是由header负责的


是的, 所以 hacker 可以 inject code 进 header 来攻击网站...

那么, 我想知道的是我们可以怎样预防这 http header injection?
作者: 小恶魔J@YL()NG    时间: 2009-9-16 04:04 PM
标题: 回复 #6 bluecloud08 的帖子
打乱他的原码咯, 把它弄成乱码
作者: Super-Tomato    时间: 2009-9-16 04:27 PM
我們每次瀏覽某個網站的時候, 瀏覽器都會向 Server 端發送出 header informations, 而編程者如果沒對 header 所提供的嚴格的控管, 那麼攻擊端只要從 header 所發出的訊息處下手就可以跳過程式鎖定的部分, 如 $_POST, COOKIES 等資料
作者: bluecloud08    时间: 2009-9-16 04:53 PM
原帖由 Super-Tomato 于 2009-9-16 04:27 PM 发表
而編程者如果沒對 header 所提供的嚴格的控管, 那麼攻擊端只要從 header 所發出的訊息處下手就可以跳過程式鎖定的部分, 如 $_ ...


你所谓的严格控管是什么, 可以给点例子吗? 谢谢!
作者: vampcheah    时间: 2009-9-16 06:47 PM
原帖由 Super-Tomato 于 2009-9-16 04:27 PM 发表
我們每次瀏覽某個網站的時候, 瀏覽器都會向 Server 端發送出 header informations, 而編程者如果沒對 header 所提供的嚴格的控管, 那麼攻擊端只要從 header 所發出的訊息處下手就可以跳過程式鎖定的部分, 如 $_ ...

但是LZ 讲的是 _SERVER 里的东西。
在我印象中好像没有试过类似的例子。
番茄老大,可以教两招吗?

_COOKIE 不是用户本身电脑的缓存吗?应该不会导致什么严重的事项吧。
除非系统是用 cookie 来做authorization 或记录一些重要的资料。
作者: Super-Tomato    时间: 2009-9-16 07:20 PM
原帖由 bluecloud08 于 2009-9-16 04:53 PM 发表


你所谓的严格控管是什么, 可以给点例子吗? 谢谢!


例如使用 Cookies 的時候最好先做好加密
Post 的資料最好先 filter 避免夾帶 SQL 攻擊等

p/s: header 的方式可以參考這裡
http://www.w3school.com.cn/php/func_http_header.asp

[ 本帖最后由 Super-Tomato 于 2009-9-16 07:31 PM 编辑 ]
作者: Super-Tomato    时间: 2009-9-16 07:29 PM
原帖由 vampcheah 于 2009-9-16 06:47 PM 发表

但是LZ 讲的是 _SERVER 里的东西。
在我印象中好像没有试过类似的例子。
番茄老大,可以教两招吗?

_COOKIE 不是用户本身电脑的缓存吗?应该不会导致什么严重的事项吧。
除非系统是用 cookie 来做autho ...


使用 AJAX 提交的時候, 如果要檢查所傳送的數據等瀏覽器都會用些 plugin 來得知
當中就可以看到瀏覽器傳送了甚麼 header 資訊過去 Server 端, 而 PHP 就會取得這些資料並賦予到 $_SERVER 這個 global array variable 中, 而 COOKIES 也是一樣... 網上有很多竄改 COOKIES 的軟體可以去測試看看



例子移除

[ 本帖最后由 Super-Tomato 于 2009-9-17 02:37 AM 编辑 ]
作者: bluecloud08    时间: 2009-9-16 08:01 PM
原帖由 Super-Tomato 于 2009-9-16 07:20 PM 发表


例如使用 Cookies 的時候最好先做好加密
Post 的資料最好先 filter 避免夾帶 SQL 攻擊等

p/s: header 的方式可以參考這裡
http://www.w3school.com.cn/php/func_http_header.asp


不好意思, 我有点乱了...其实, 在之前我根本不懂什么是 http header...后来, 网上找到一些资料就有一点概念了, 好像这个

http://www.devshed.com/c/a/PHP/HTTP-Headers-in-Web-Development/

其实, 我并没有用什么 header() 这个 function...只用了这种情况
header('Location: http://www.example.com/');

我所知道的是 http header 是当我们的 browser 做出一些 request 时, 便会自动的被 generated...
所以, 我所指的 http header injection 是类似这种的:

http://rturf.net/documentum/entry/272/

所以, 我的意思是该怎样预防? 只要 filter user input?
作者: Super-Tomato    时间: 2009-9-16 08:52 PM
原帖由 bluecloud08 于 2009-9-16 08:01 PM 发表


不好意思, 我有点乱了...其实, 在之前我根本不懂什么是 http header...后来, 网上找到一些资料就有一点概念了, 好像这个

http://www.devshed.com/c/a/PHP/HTTP-Headers-in-Web-Development/

其实, 我 ...


我那個網址不是說一定要用 header() 這個函數, 不同的 backend script 都有不同的寫法, 你要注意的是參數
就如我上面一帖中說到的瀏覽器 plugin 可以查看到瀏覽器所傳送的 header 參數和值, PHP 的 header 只是本身對 Server 的溝通而不像 Browser 屬於 Client 端對 Server
作者: bluecloud08    时间: 2009-9-16 09:08 PM
原帖由 Super-Tomato 于 2009-9-16 08:52 PM 发表


我那個網址不是說一定要用 header() 這個函數, 不同的 backend script 都有不同的寫法, 你要注意的是參數
就如我上面一帖中說到的瀏覽器 plugin 可以查看到瀏覽器所傳送的 header 參數和值, PHP 的 header ...


哇, 好乱, 不明白...

那我该怎么做? 只要把 user input 都 filter 过就能预防 http header injection了吗?
作者: Super-Tomato    时间: 2009-9-16 09:12 PM
原帖由 bluecloud08 于 2009-9-16 09:08 PM 发表


哇, 好乱, 不明白...

那我该怎么做? 只要把 user input 都 filter 过就能预防 http header injection了吗?


user input 的話可以根據你剛才的網址中的方法過濾
作者: bluecloud08    时间: 2009-9-16 09:16 PM
原帖由 Super-Tomato 于 2009-9-16 09:12 PM 发表


user input 的話可以根據你剛才的網址中的方法過濾


你是说这个网址?

http://rturf.net/documentum/entry/272/

里头有提供方法吗?

那你的意思是除了过滤, 还有其他要注意的? 是什么呢?

不好意思, 问太多了...因为真的没什么这方面的知识...
作者: vampcheah    时间: 2009-9-16 10:58 PM
原帖由 Super-Tomato 于 2009-9-16 07:29 PM 发表


使用 AJAX 提交的時候, 如果要檢查所傳送的數據等瀏覽器都會用些 plugin 來得知
當中就可以看到瀏覽器傳送了甚麼 header 資訊過去 Server 端, 而 PHP 就會取得這些資料並賦予到 $_SERVER 這個 global arra ...

这些我都会,只是_server 里要怎么入侵或 inject 系统?
_POST 或 _GET 的例子多不胜数,因为一般上系统都是需要执行。
但是 _SERVER 呢? 有什么例子吗?
作者: Super-Tomato    时间: 2009-9-16 11:56 PM
原帖由 vampcheah 于 2009-9-16 10:58 PM 发表

这些我都会,只是_server 里要怎么入侵或 inject 系统?
_POST 或 _GET 的例子多不胜数,因为一般上系统都是需要执行。
但是 _SERVER 呢? 有什么例子吗?


$_SERVER 的 inject 是不能, 但能夠讓 SERVER 在必要的時候取得錯誤訊息, 這樣就有可能找出漏洞
例子
作者: goodday    时间: 2009-9-17 12:29 AM
用firewall 定义同一个 ip 能request 1秒100次

还有 把 webserver 的 max connection set 成 由1000 变 100 咯

中了 也没那么伤

但也不是100% 的
作者: vampcheah    时间: 2009-9-17 02:57 PM
原帖由 Super-Tomato 于 2009-9-16 11:56 PM 发表


$_SERVER 的 inject 是不能, 但能夠讓 SERVER 在必要的時候取得錯誤訊息, 這樣就有可能找出漏洞
例子

哦,我还以为 _SERVER 都能直接 inject 。
作者: myEsc    时间: 2010-5-11 02:00 PM
无聊之下爬了爬文,看到这篇,就大炮上几句

举几个 http header injection :
1. 某些backend设定了ip验证与访问,http header injection可以做到修改ip绕过验证
2. 当我们读取$_SERVER函数,并写入数据库的时候,如果没有进行过滤,就会发生SQL injection的状况,如使用$_Server 读取用户IP并把该IP记录进database
3. 许多网站r会通过header读取客户的web bowser(user agent)版本,并显示出来,如果过滤不严,把我们的user agent换成恶意代码,如 <script>alert("XSS");</script>,就会带来威胁
4. 还有就是当我们上传文件的时候,可以通过header把上传的文件后叠改成可执行文件,如果只是在客户端进行验证,其后果是非常严重的。。
5. .............

引用某位安全界人士的话,所以从客户端传送的质料都是有害的,所有质料最好都进行过滤,就能预防这些injection的发生




欢迎光临 JBTALKS.CC (https://www.jbtalks.cc/) Powered by Discuz! X2.5