一般通用性web程序流程

hacker4年前黑客文章553

一般通用性web程序流程是假如想要知道域名并不是一件简易的事儿,假如用一个固定不动的URI来做为网站域名会出现各种各样不便。开发者一般是依靠HTTP Host header(例如在php里是_SERVER[“HTTP_HOST”] ),而这一header许多状况下是不可靠的。而许多运用是立即把这个值不做html编号便輸出来到网页页面中,例如:

  1. <link href="http://_SERVER['HOST']"    (Joomla)

 

也有的地区还包括有secret key和token:

  1. <a href="http://_SERVER['HOST']?token=topsecret">  (Django, Gallery, others)

 

那样解决难题一般会非常容易遭受到二种普遍的进攻:缓存文件环境污染重置密码

1、缓存文件环境污染就是指 *** 攻击根据操纵一个缓存文件系统软件来将一个恶意站点的网页页面回到给客户。

2、重置密码这类进攻关键是由于发给客户的內容是能够环境污染的,换句话说能够间接性的被劫持发送邮件內容。

 

一、重置密码环境污染进攻

拿 Gallery 这一站来做事例。在我们开展重置密码的情况下,网址会让我们推送一个任意的key:

  1. $user -> hash = random::hash() ;
  2. $message -> confirm_url = url::abs_site("password/do_reset?key=$user->hash") ;

 

当客户点一下密码重置的连接时,毫无疑问能够表明点的是自身的帐户。

重置密码环境污染进攻

 

这个地方的系统漏洞是: url::abs_site 这一部分应用的Host header是来源于客户密码重置的恳求,那麼 *** 攻击能够根据一个受他操纵的连接来环境污染重置密码的电子邮件。

  1. POST /password/reset HTTP/1.1
  2. > Host: evil.com
  3. > ...
  4. > csrf=1e8d5c9bceb16667b1b330cc5fd48663&name=admin

 

这一系统漏洞在Django,Piwik 和Joomla上都存有,也有一些别的的运用,架构和类库。

自然这类拒绝服务攻击一定要能骗领客户点一下浏览这一受环境污染的连接,假如客户警惕了沒有点一下,那麼进攻便会不成功。自然你自己还可以相互配合一些社会工程学的方式来确保进攻的通过率。

也有一些状况,Host将会会被url编号后立即放进email的header里边导致header引入。根据这一, *** 攻击能够非常容易的就能被劫持客户的帐户。

 

二、缓存文件环境污染

根据Host header来环境污染缓存文件的进攻方式最开始是Carlos Beuno 在2008年明确提出来的。可是在如今的 *** 结构中,这类进攻還是较为艰难的,由于如今的缓存文件机器设备都可以鉴别Host。例如针对下边的这二种状况她们绝对不会弄搞混:

  1. GET /index.html HTTP/1.1       > GET /index.html HTTP/1.1
  2. > Host: example.com              > Host: evil.com

 

因而以便能使缓存文件能将环境污染后的response回到给客户,大家还务必让cdn加速见到的host header 和运用见到的host header 不一样。

例如针对Varnish(一个很知名的缓存文件服务项目手机软件),能够应用一个拷贝的Host header。Varnish是根据最开始抵达的恳求的host header来鉴别host的,而Apache则是看全部恳求的host,Nginx则仅仅看最后一个恳求的host。这就代表着你能根据下边这一恳求 来蒙骗Varnish做到环境污染的目地:

  1. > GET / HTTP/1.1
  2. > Host: example.com
  3. > Host: evil.com

 

运用自身的缓存文件也将会遭受环境污染。例如Joomla就将获得的host值没经html编号便写进随意网页页面,而它的缓存文件则对这种沒有一切解决。例如能够根据下边的恳求来载入一个储存型的xss:

  1. curl -H "Host: cow\"onerror=\'alert(1)\'rel=\'stylesheet\'" http://example.com/ | fgrep cow\"

 

事实上的恳求是那样的:

  1. > GET / HTTP/1.1
  2. > Host: cow"onerror=\'alert(1)\'rel=\'stylesheet\'

 

回应实际上早已遭受环境污染:

  1. <link href="http://cow"onerror='alert(1)'rel='stylesheet'/" rel="canonical"/>

这时候只必须访问主页看是不是有弹出窗口就了解缓存文件是不是早已被环境污染了。

 

安全性的配备:

1、 *** 服务器层面必须做的

因为http恳求的特性,host header的值实际上是不能信的。唯一可靠的仅有SERVER_NAME,这一在Apache和Nginx里能够根据设定一个vm虚拟机来纪录全部的不法host header。在Nginx里还能够根据特定一个SERVER_NAME名册,Apache还可以根据特定一个SERVER_NAME名册并打开UseCanonicalName选择项。提议二种方式另外应用。

 

2、运用自身必须做的

处理这个问题实际上是很艰难的,由于沒有彻底自动化技术的方式来协助网站站长识 别什么host 的值是非常值得信赖的?尽管做起來有点儿不便,可是最安全性的作法是:仿效Django的方式,在网址安裝和复位的情况下,规定管理人员出示一个可信任站点的网站域名授权管理。假如这一完成起來较为艰难,那最少还要确保应用SERVER_NAME而不是host header,而且激励客户应用安全性配备做的比较好的网站。

标签: 黑客技术

相关文章

Nexpose和nsightVM的差别

Nexpose和nsightVM的差别

谈Nexpose和 nsightVM的差别前,我先从官方网站(www.rapid7.com)引进一段话: 每日都是出現系统漏洞。你需要持续的智能化来发觉他们,寻找他们,给你的公司区划优先选择顺序,并...

Yersinia设计方案

Yersinia设计方案

什么叫Yersinia? Yersinia设计方案用以运用各种各样网络层协议的一些缺点。它也被觉得是能用的最有使用价值和最常见的安全工器具之一。   Yersinia随意吗 ? 是的,这一...

谈谈各种解析漏洞总结

一、IIS 5.x/6.0解析漏洞 IIS 6.0解析利用方法有两种 1.目录解析 /qxz.asp/qxz.jpg 2.文件解析 qxz.asp;.jpg 第一种,在网站下建立...

知名渗透测试套件工具BurpSuite Pro v1.6 beta破解版公布

知名渗透测试套件工具BurpSuite Pro v1.6 beta破解版公布

关于Burp Suite: Burp Suite 是用于渗透测试web 应用程序的集成平台。它包含了许多工具,并为这些工具设计了许多接口,以促进加快渗透应...

电脑漏洞_黑客是怎样找到电脑漏洞的

黑客是怎样找到电脑漏洞的:为了把损失降低到最低限度,我们一定要有安全观念,并掌握一定的安全防范措施,禁绝让黑客无任何机会可趁。下面我们就来研究一下那些黑客是如何找到你计算机中的安全漏洞的,只有了解...

wifiphisher专用工具完全免费使用方法

wifiphisher专用工具完全免费使用方法

什么叫Wifiphisher? Wifiphisher是一种WiFi黑客工具,能够对无线网络/ WiFi互联网实行迅速的全自动互联网中间人攻击,目地是发觉客户和登陆密码凭证。   与无线网...