Laravel框架网站漏洞测试与修复
laravel框架是目前许多网站,app运营者都在使用的一款开发框架,正因为使用的网站较多,许多攻击者都在不停的对该网站进行漏洞测试,我们sine安全在对该套系统进行漏洞测试的时候,发现存在rec漏洞.主要是xsrf漏洞,下面我们来详细的分析漏洞,以及如何利用,漏洞修复等三个方面进行全面的记录.
该laravel rec漏洞的利用是需要条件的,必须满足app_key泄露的情况下才能成功的利用与触发,我们sine安全技术在整体的漏洞测试与复现过程里,共发现2个地方可以导致网站漏洞的发生,第一个是post数据包里的cookies字段,再一个是http header字段可以插入恶意的共计代码到网站后端中去.
我们来搭建一下网站漏洞测试的环境,使用linux centos系统,php5.5版本,数据库是mysql,使用apache环境来搭建,使用的laravel版本为5.6.28.首先我们去官方下载该版本,并解压到apache设置的网站目录路径.首先我们post数据过去可以看到我们代码里,会调用十几个类,并将类里的对象进行调用,参数赋值,而在cookies和verifycsrftoken值里发现可以使用app_key进行漏洞利用,首先我们使用cookies来复现看下:
代码如下:
post / http/1.2
host: 127.0.0.2:80
cookie: safe_session=phpstorm; 5lqg5l+d6k+b5oma6l6t5ye655qe57yw56cb5l2n5y+v6k+75a2x56ym77ymqmfzzty05yi25a6a5lqg5lia5liq57yw56cb6kgo77ym5lul5l6/6l+b6kgm57uf5lia6l2s5o2i44cc57yw56cb6kgo55qe5asn5bcp5li6ml42pty077ym6l+z5lmf5pivqmfzzty05zcn56ew55qe55sx5p2l44ccdqonckjhc2u2noe8lueggeihqa==;
content-type: application/x-www-form-
connection: open
content-length: 1
上面的代码中在cookies栏里.加密的值就是我们要伪造的攻击代码,将该post请求提交到网站中去,首先会对app_key进行解密并赋值过去,如果解密成功的话, 哪么就会效验cookies里的值,并对其进行反序列的操作,进而导致漏洞的发生,就会触发rce漏洞了.
http header方式的漏洞利用,我们漏洞测试一下,首先也是构造跟cookies差不多的代码,如下:
post / http/1.2
host: 127.0.0.2:80
x-xsrf-token: +b5oma6l6t5ye655qe57yw56cb5l2n5y+v6k+75a2x56ym77ymqmfzzty05yi25a6a5lqg5lia5liq57yw56cb6kgo77ym5lul5l6/6l+b6kgm57uf5lia6l2s5o2i44cc57yw56cb6kgo55qe5asn5bcp5li6ml42pty077ym6l+z5lmf5pivqmfzzty05zcn56ew55qe55sx5p2l44ccdqonckjhc2u2noe8lueggeihqa==;
content-type: application/x-www-form-
connection: open
content-length: 1
这里看这个x-xsrf-token:值,laravel 框架在提交过程中会去判断并效验这个值,如果解密成功就会进行反序列化的操作,这里就不再一一的介绍与解释了.
那如何对laravel的漏洞进行修复?
我们sine安全技术对laravel的版本进行升级发现,最新的5.6.30版本已经对该rce漏洞进行了修复,在我们对代码的比对中看出,对cookies的解密并解析操作进行了判断,多写了static::serialized() 值,同样的在x-xsrf-token里也加入了这个值.如果您对代码不是太懂的话,也可以找专业的网站安全公司来进行修复,国内sinesafe,绿盟,启明星辰,都是比较不错的,针对于laravel的网站漏洞检测与测试就到此,也希望通过这次的分享,让更多的人了解网站漏洞,漏洞的产生原因,以及该如何修复漏洞,网站安全了,我们才能放开手脚去开拓市 场,做好营销.
上一篇: 用U盘充当电脑钥匙必须要有它才能打开电脑
下一篇: 大型门户SEO优化方案