如何使用 Laravel 框架的 validator

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用 Laravel 框架的 validator相关的知识,希望对你有一定的参考价值。

参考技术A laravel5刚好弄了一个,供参考。1.建议新手至少先弄通golaravel上入门的文章(一)和(二),否则理解比较困难 2.前端js请求部分(注意那个header属性,是为了避免跨站伪造请求攻击写的) $.ajax(type: 'POST',url: '/ajax/create',data:

Laravel框架 网站有漏洞如何修补与防护

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的网站漏洞检测与测试就到此,也希望通过这次的分享,让更多的人了解网站漏洞,漏洞的产生原因,以及该如何修复漏洞,网站安全了,我们才能放开手脚去开拓市 场,做好营销.

以上是关于如何使用 Laravel 框架的 validator的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Laravel 框架执行 MySQL 查询?

laravel框架入门

Laravel框架 网站有漏洞如何修补与防护

如何使用 Laravel 框架创建注册模式?

Laravel 验证器规则中不同字段上的多个“required_if”

如何使用 Laravel 框架更新 MySQL 中的 json 数据?