
地 址:北京市延庆区66号
电 话:17730649097
网址:dsesh.com
邮 箱:96580336@qq.com
Laravel框架是(shi)架网目前(qian)许多(duo)网站,APP运营者都在(zai)使用的一款开发框架,正因为使用的网站较多,许多攻击者都(dou)在不停的对该网站进行漏洞测试,我们SINE安全在对该套系统进行漏洞测试的时候,发现存在REC漏洞.主要是XSRF漏洞,下面我们来详细的分析漏洞,以及如何利用,漏洞修复(fu)等三个方面进行(xing)全面的记录.

我们来搭建一下网站漏洞测试的环境,使用linux centos系统,PHP5.5版本,数据库是mysql,使(shi)用apache环境来搭建,使用的Laravel版本为5.6.28.首先我们去官方下载该版本,并解压(ya)到apache设置的网站目录路径.首先我们post数据过去可以(yi)看(kan)到我们代码里(li),会调用十几个类,并(bing)将类里的(de)对象进(jin)行(xing)调用,参数赋值,而(er)在cookies和verifycsrftoken值里发现可以(yi)使(shi)用app_key进行漏洞利用,首先我们使用cookies来复(fu)现(xian)看下:

代码如下:

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-
Content-Length: 1
上面(mian)的代码中在cookies栏里.加密的值就是我们要伪造的攻击代码,将该POST请求提(ti)交到网站中去,首先会对APP_key进行解密并赋值过去(qu),如果解密成功的(de)话, 哪么就会效验cookies里的值,并对其进行(xing)反序列的操作,进(jin)而导致漏洞的发生,就会触发RCE漏洞了(le).
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="open"
这里看这个X-XSRF-TOKEN:值,Laravel 框架在提交过程(cheng)中会去判断并效验这个值,如果解(jie)密成功就会进行反序列化的(de)操作,这里就不再一一的介绍与解释了.
那如何对Laravel的漏洞进行修复(fu)?