针对thinkphp站点的漏洞挖掘和经验分享

0x1 前言

浅谈

目前在学习和研究thinkphp相关漏洞的打法,然后最近对于thinkphp资产的收集方面有了一个简单的认识,然后写一篇新手看的thinkphp相关的漏洞收集和挖掘的文章来分享下。然后后面是给师傅们分享下后台文件上传,然后直接打一个getshell的漏洞点。

0x2 thinkphp漏洞简介

thinkphp简介

ThinkPHP是一个快速、兼容而且简单的轻量级国产PHP开发框架,遵循Apache 2开源协议发布,使用面向对象的开发结构和MVC模式,融合了Struts的思想和TagLib(标签库)、RoR的ORM映射和ActiveRecord模式

ThinkPHP可以支持windows/Unix/Linux等服务器环境,正式版需要PHP 5.0以上版本,支持MySql、PgSQL、Sqlite多种数据库以及PDO扩展。

其中thinkphp 搭建网站常见完后,十分熟悉的thinkphp 架构的页面如下:

图片

0x3 资产收集篇

FOFA空间引擎

那下面我就来给师傅们分享下我进行thinkphp 站点的信息收集,我主要是使用空间引擎,比如常见的FOFA和鹰图进行资产测绘,然后进行目标资产的筛选,然后进行一波漏洞的测试。

FOFA语句如下:

  1. body="thinkphp" && title="后台管理"

图片

然后可以看到下面的icon图标特别多,一般像这样的你要是打出一个漏洞,后面很有可能能够打出一个通杀出来

图片

然后可以看到下面也是有五千多条的资产可以让我们去打,资产也算蛮多的

图片

然后还可以就是直接使用thinkphp 的图标,如下图保存到本地然后进行icon图标检索

图片

可以看到这样检索匹配出来的资产也都蛮多的,而且匹配出来的都是thinkphp 的站点

图片

0x4 工具篇

Thinkphp(GUI)漏洞利用工具

ThinkPHPGUI的工具下载链接如下,github上有蛮多的相关工具,但是都差不多

Thinkphp(GUI)漏洞利用工具,支持各版本TP漏洞检测,命令执行,getshell

https://github.com/Lotus6/ThinkphpGUI

图片

工具的使用很简单,主要是靠这个工具武器库里面的poc检测,然后利用ThinkPHP工具去打一波nday漏洞,可以看到下面直接使用该工具进行poc检测,然后可以检测出ThinkPHP相关版本的漏洞

图片

然后可以使用Google浏览器进行检索这个漏洞 的打法,然后打一个nday

图片

0x5 渗透测试

漏洞一:弱口令登录

然后就是先按照我上面的方法,比如使用FOFA找Thinkphp 相关资产的站点,然后利用工具去扫描,看看有没有nday

要是没扫出来,我开始不是都是检索管理后台 的关键字嘛,都是登录后台的站点,那么我们是不是就可以尝试下弱口令登录呢,然后再在里面测试,扩大这个rank危害值。

下面是我收集的Thinkphp 站点常见的弱口令如下,需要的师傅可以尝试下

  1. sysadmin:sysadmin123

  2. admin:admin

  3. admin:admin123

  4. admin:123456

  5. admin:admin@123

  6. admin:1qaz@WSX

  7. test:test

还有就是很常见的右下角的Thinkphp 的站点的图标,师傅们可以记录下

图片

这里直接使用弱口令admin:admin成功登录进来了

图片

漏洞二:存储型XSS漏洞

下面看到该站点存在查询接口,一般看到这样的,很常见的手法就是测一个sql注入,先尝试一个手工注入吧,在bp里面测试

图片

然后还可以用下面的测试一个时间盲注

  1. sql注入判断

  2. 1' and if(1,sleep(5),3)--+

  3. 1" and if(1,sleep(5),3)--+

  4. 1) and if(1,sleep(5),3)--+

  5. 1 and if(1,sleep(5),3)--+

图片

然后下面有一个添加的功能,里面出现输入框,这就可以测下XSS漏洞了

然后在下面的输入框中都输入简单的XSS弹窗语句

  1. <script>alert(XSS)</script>

图片

然后保存下来,直接就一直在弹窗,这个站点没有对输入的内容进行过滤和验证,直接可以打XSS漏洞,且是存储型,还会影响别的用户,

图片

漏洞三:文件上传getshell

进来以后,我这里直接使用findsomething插件小熊猫头,看看有没有什么铭感的接口信息

图片

师傅们可以看到下面的议题列表中的添加功能,然后这里存在文件上传的功能点

图片

下面来试试这里文件上传,随便上传一个图片上去,然后利用bp抓包看看里面的数据包
这里我只是点击选择文件,没有点击下面的绿色提交按钮,但是看数据包可以发现已经上传成功了

图片

我们访问下这个图片上传成功的路径,看看是不是真的上传成功了
访问返回包的路径,可以看到确实上传图片成功了

图片

删掉后面的图片名称,然后看看能不能打一个目录遍历漏洞
但是这里没有成功,返回403权限拒绝访问,说明存在这个目录,但是没有权限,也算是一个思路了吧

图片

通过几次数据包的抓取,分析发现这个站点的上传文件的方式没有任何的过滤方式,应该可以直接上传恶意文件,然后getshell一波。

使用wappalyzer插件,可以看到这个站点是使用php搭建的,那么就可以上传php木马上去,然后打一波phpinfo()了

图片

直接打一个phpinfo()证明危害即可

  1. -----------------------------19248753661017244075365571982

  2. Content-Disposition: form-data; name="file"; filename="xiaoma.php"

  3. Content-Type: image/jpeg

  4. GIF89a

  5. <?php

  6. phpinfo();

  7. ?>

  8. -----------------------------19248753661017244075365571982--

图片

然后再直接访问这个地址,可以看到直接打出来了一个phpinfo()的页面
后面要是上传木马,然后getshell也是可以的,但是这是测试,没必要上传木马,直接证明危害即可。

图片

更多网络安全优质免费学习资料与干货教程

送渗透工具、技术文档、书籍,面试题、视频(基础到进阶。环境搭建,HTML,PHP,MySQL基础学习,信息收集,SQL注入,XSS,CSRF,暴力破解等等)、应急响应笔记、学习路线。

申明:本账号所分享内容仅用于网络安全技术讨论,切勿用于违法途径,所有渗透都需获取授权,违者后果自行承担,与本号及作者无关,请谨记守法。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/400957.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

WPF 资源、引用命名空间格式、FrameworkElement、Binding、数据绑定

资源 对象级别独立文件 静态资源使用(StaticResource)指的是在程序载入内存时对资源的一次性使用&#xff0c;之后就不再去访问这个资源了。 动态资源使用&#xff08;DynamicResource&#xff09;使用指的是在程序运行过程中仍然会去访问资源。 显然&#xff0c;如果你确定…

欧阳坚持每周一篇高质量文章,半年后收入1380.27元

前言 大家好&#xff0c;我是欧阳&#xff0c;到目前为止欧阳已经坚持连续高质量周更文章7个多月了。在第6个月时就想写一篇半年总结&#xff0c;但是因为拖延症直到现在才写这篇半年复盘文章。 我的成果 先来说一下连续周更半年取得的成果&#xff0c;分别是收入1380.27元、…

redis模块和ioredis的注意事项

redis模块和ioredis的注意事项 文章目录 redis模块和ioredis的注意事项前言一、ioredis和redis使用zrange的比较二、出现zrange结果不同的原因总结 前言 node.js在使用redis的时候有两个库可以选择&#xff0c;一个是redis、另一个是ioredis&#xff0c;我一直以来也没有太大关…

LeetCode之回溯

1.全排列 1.1 题目 1.2 题解 LeetCode 力扣官方题解 1.3 代码 class Solution {public List<List<Integer>> permute(int[] nums) {// 创建一个空的列表 res&#xff0c;用于存储所有的排列结果List<List<Integer>> res new ArrayList<>();/…

练习题PHP5.6+变长参数 ⇒ usort回调后门 ⇒ 任意代码执行

突破长度限制 使用usort上传后门 usort — 使用用户自定义的比较函数对数组中的值进行排序 paramusort(...$GET); ...为php设置可变长参数 在url地址栏中输入[]test&1[]phpinfo();&2assert 包含了phpiinfo&#xff08;&#xff09;命令执行 结合usort使用 assert…

SpringMVC快速入门

MVC模式 MVC&#xff08;Model-View-Controller&#xff09;模式是一种设计模式&#xff0c;用于分离应用程序的不同方面&#xff0c;以提高代码的组织性和可维护性。在Spring MVC框架中&#xff0c;MVC模式的作用是将应用程序的不同职责分开&#xff0c;从而简化开发和维护过…

Datawhale X 魔搭 AI夏令营第四期 AIGC方向 task02笔记

AI工具使用 1. baseline 代码2. 使用通义千问理解代码2.1 工作流程2.2 逐行释意 3. 使用通义千问生成 Prompt3.1 生成的 Prompt3.1 根据 Prompt 生成的图片 1. baseline 代码 !pip install simple-aesthetics-predictor!pip install -v -e data-juicer!pip uninstall pytorch-…

EasyBoss ERP上线TikTok热销数据功能,助力TikTok本土店卖家快速选品上货!

想要你的TikTok本土小店销量不断增长&#xff0c;选品至关重要。只有选品问题解决了&#xff0c;后续的投放、小店定调等动作才有意义。 因此&#xff0c;今天就来分享几种TikTok本土小店的选品策略。 一、TikTok Shop选品的底层逻辑 图源&#xff1a;TikTok Shop 在选品之前…

SpringBoot 自定义 starter

1. 官方文档 SpringBoot 版本 2.6.13&#xff0c;相关链接 Developing with Spring Boot 1.1 什么是 Starter Starters are a set of convenient dependency descriptors that you can include in your application. You get a one-stop shop for all the Spring and relate…

C++哪些变量在没有显式初始化的情况下会被初始化为0

首先&#xff0c;我们需要明白C程序编译链接后会包含以下几个主要段(Section)。 代码段(.text)&#xff1a;存放程序的可执行代码&#xff0c;通常是只读的数据段(.data)&#xff1a;存放已初始化的全局变量和静态变量BSS段(.bss)&#xff1a;存放未初始化的全局变量和静态变量…

Git文件管理技巧:轻松删除与查看文件,忽略不必要的文件与文件夹!

避免文件混乱&#xff1a;Git 文件操作技巧 一、Git工作原理概述二、删除文件三、查看指定文件的修改四、指定不需要 Git 管理的文件五、总结 一、Git工作原理概述 Git是一种分布式版本控制系统&#xff0c;其核心在于其高效的快照机制、强大的分支与合并功能、本地开发的灵活…

详细分析JWT的基本知识(附Demo)

目录 前言1. 基本知识2. JWT验证过程3. Demo 前言 对于Java的基本知识推荐阅读&#xff1a; java框架 零基础从入门到精通的学习路线 附开源项目面经等&#xff08;超全&#xff09;【Java项目】实战CRUD的功能整理&#xff08;持续更新&#xff09; 1. 基本知识 紧凑的、U…

《Kotlin核心编程》2021版复习记录

目录 0 前言1 基础语法1.1 数据类型1.2 数组1.3 集合1.4 遍历数据和集合1.5 函数声明返回值类型1.6 var 和 val 2 高阶函数和lambda表达式2.1 高阶函数2.2 方法和成员引用2.3 链式调用2.4 扩展函数2.5 面向表达式编程2.5.1 when表达式2.5.2 for循环2.5.3 in 2.6 字符串相等 3 面…

手撕初阶数据结构之---排序

1.排序概念及运用 排序&#xff1a;所谓排序&#xff0c;就是使⼀串记录&#xff0c;按照其中的某个或某些关键字的⼤⼩&#xff0c;递增或递减的排列起来的操作。 常见的排序算法 直接插入排序的时间复杂度是O(N^2) 这个是最差的情况下&#xff0c;就是大的在前面&#xff…

被老韭菜阴阳了?未来一个人最核心的能力:守脑如玉——早读(逆天打工人爬取热门微信文章解读)

tomato 版本TO&#xff1f; 引言Python 代码第一篇 洞见 未来一个人最核心的能力&#xff1a;守脑如玉第二篇 股友见闻结尾 &#xff08;你看出本质了吗&#xff1f;&#xff09; 引言 昨晚听别人的分析 好神奇 我会惊叹 为什么大家看到的都是同样的东西 而别人进行思考 思考…

Python 在PDF中添加条形码、二维码

在PDF中添加条码是一个常见需求&#xff0c;特别是在需要自动化处理、跟踪或检索PDF文件时。作为一种机器可读的标识符&#xff0c;PDF中的条码可以包含各种类型的信息&#xff0c;如文档的唯一标识、版本号、日期等。以下是一篇关于如何使用Python在PDF中添加条形码或二维码的…

Python开源项目周排行 2024年第13周

#2024年第13周2024年8月5日1roop一款基于深度学习框架TensorFlow和Keras开发的单图换脸工具包&#xff0c;提供了丰富的功能和简洁易用的界面&#xff0c;使得用户可以轻松实现单图换脸操作。支持多张人脸替换成同一个人脸&#xff0c;勾选多人脸模式即可 人脸替换 高清修复自…

SPDK源码剖析一hello_world程序

SPDK初识之hello_world程序分析 首先是hello_world程序整体框架分析 int main(int argc, char **argv) {rc parse_args(argc, argv, &opts);if (spdk_env_init(&opts) < 0) { // spdk环境初始化&#xff0c;最终调用dpdk环境初始化}// 扫描设备&#xff0c;将驱…

bluecmsphp代码审计

bluecms代码审计 (一) 运行环境需求&#xff1a; 可用的 httpd 服务器&#xff08;如 Apache、Zeus、IIS 等&#xff09; PHP 4.3.0 及以上 MySQL 4.1 及以上配置文件审计 看到uploads/install/include/common.inc.php 当然我们可能自己根本不知道那个是重要的文件&#x…

C++《类和对象》(上)

在之前的C入门基础知识中我们了解了C的发展过程已经重要性&#xff0c;还初步了解了C中一些相比C语言特有的知识点&#xff0c;例如命名空间、缺少参数、函数重载、引用等&#xff0c;接下来在本篇中我们将开始C整个体系中非常重要的一个知识章节——类和对象&#xff0c;类和对…