红队攻击面相关讨论
ISHACK聚集了大量的黑客技术爱好者和安全研究人员。渗透测试、木马分析、应急响应、红队工具、逆向破解、代码审计、爬虫技术、在这裡你可以探讨黑客攻防技术相关的所有话题。
513个主题在此版面
-
网上大多数的小程序测试抓包都是用的安卓模拟器,这里使用的是BurpSuite+Proxifer+微信客户端的抓包方式 环境准备 Burp2023.9.2 Proxifier4.5 Proxifier是一款功能非常强大的socks5客户端,可以让不支持通过代理服务器,工作的网络程序能通过HTTPS或socks或代理链。其是收费软件,免费试用31天,这里给一个破解版链接 链接:https://pan.baidu.com/s/14QElyGxDpMBGTuCFTPl4tQ?pwd=7o50 提取码:7o50 安装就无脑next就好了,安装好后打开 点击注册,名字随便写,随便复制一个注册码点击ok即可 Proxifier配置 打开proxifier,点击profile添加一个代理服务器 地址127.0.0.1,端口自定义,我这里是8888,协议选择https 继续添加一条代理规则 在我们用微信打开小程序时,进程里会多出一个WeChatAppEx 这个程序就是微信小程序的进程 添加规则 Applications就选择小程序进程应用(这里可以手动输入),Action就选择刚刚新建的代理服务器 Burp配置 只要编辑代理监听器和proxifier里的代理服务器一样即可,监听127.0.0.1:8888 这时微信打开一个小程序,可以看到WeChatAppEx的流量先经过proxifier,再用过127.0.0.1:8888到burp 现在就可以像平时测试web站点一样的方式在burp里对…
-
- 0 篇回复
- 30 次查看
-
-
MISC easyfuzz 1、通过尝试输入字符串判断该程序对输入字符的验证规则为9位字符,并且只要满足输入正确字符使最后返回值全部为111111111即可得flag 继续大胆猜测并尝试,发现前两位字符可以为任何字符,都满足110000000,由此可以对后七位字符进行爆破 2、逐位爆破,验证思路正确,最后一位为字符串"d" 3、编写爆破脚本,当字符串长度为9位并输入时,将回显不为“Here is your code coverage: 110000000”的结果打印,脚本如下 from pwn import * from string import printable conn = remote('101.200.122.251', 12199) non_matching_strings = [] for i in range(9): for char in printable: payload = 'a'*i + char + 'a'*(8-i) print(conn.recvuntil(b'Enter a string (should be less than 10 bytes):')) conn.sendline(payload.encode()) response = conn.recvline().decode().strip() if response != "Here is your code coverage:…
-
- 0 篇回复
- 30 次查看
-
-
一、MISC1.火锅链观光打卡打开后连接自己的钱包,然后点击开始游戏,答题八次后点击获取NFT,得到有flag的图片没什么多说的,知识问答题 兑换 NFT Flag{y0u_ar3_hotpot_K1ng} 2.Power Trajectory Diagram方法1:使用py中的numpy和pandas库读取npz文件并保存为csv文件,代码如下:import numpy as npimport pandas as pdnp.set_printoptions(threshold=np.inf)a1 = np.load('attachment.npz', allow_pickle=True)print(a1.files)print('read:', a1)index = a1['index']myin = a1['input']myout = a1['output']mytra = a1['trace']# print(mytra.shape)df = pd.DataFrame(mytra)df.to_csv('data1.csv', index=False)df1 = pd.DataFrame({'index':index, 'input': myin})df1.to_csv('data2.csv', index=False)得到data1.csv、data2.csv,合并得到data.csv。 打开data.csv,可以看到功耗数据,根据https://zhuanlan.zhihu.com/p/157585244,我认为该题的关键是…
-
- 0 篇回复
- 63 次查看
-
-
WEBEncirclingGame题目描述:A simple game, enjoy it and get the flag when you complete it.开题,前端小游戏,红点出不去就行 直接玩通关了 看看如何不玩也能拿到flag,flag存储在后端php文件内,前端找不到。看一下游戏的请求包,里面记录了红点的最后位置和防火墙(黑点)的位置。 那么我们伪造下,防火墙绕满周围一圈,但是红点在最中间。路由:/verifyVictory.php 方法:POST{"gameState":{"virusPosition":{"x":5,"y":5},"firewalls":[{"x": 0, "y": 0}, {"x": 1, "y": 0}, {"x": 2, "y": 0}, {"x": 3, "y": 0}, {"x": 4, "y": 0},{"x": 5, "y": 0}, {"x": 6, "y": 0}, {"x": 7, "y": 0}, {"x": 8, "y": 0}, {"x": 9, "y": 0}, {"x": 10, "y": 0}, {"x": 0, "y": 10}, {"x": 1, "y": 10}, {"x": 2, "y": 10}, {"x": 3, "y": 10}, {"x": 4, "y": 10}, {"x": 5, "y": 10}, {"x": 6, "y": 10}, {"x": 7, "y": 10}, {"x": 8, "y": 10}, {"x": 9, "y"…
-
- 0 篇回复
- 51 次查看
-
-
CRYPTO签到题-学会SMhttps://www.json.cn/encrypt/sm3题目要求小写所以需要转换一下或者脚本:import hashlib message = "heidun2024" hash_object = hashlib.new('sm3')hash_object.update(message.encode('utf-8'))hash_value = hash_object.hexdigest() print(hash_value) 源码和数据都要保护利用php在线解密工具解密php 得到php源代码 <?php function my_encode($str,$key) { $re=''; $len=strlen($str); for ($i=0;$i<$len;$i++) { $c=substr($str,$i,1); $k=substr($key,($i%strlen($key)),1); $num=ord($c)+ord($k); if($num>255) $num-=256; $re.=chr($num); } return $re;}function my_decode($str,$key) { return 'Something missed.';}$data=@$_GET['data'];$key=@$_GET['key'];if($key=='') $key='hdhd4321';if($data!='') { $mi=my_e…
-
- 0 篇回复
- 51 次查看
-
-
WEB ezphp 题目描述:一支专注于卫星通信技术的研究团队正在努力改进他们的通信系统,以提高数据传输的效率和安全性,团队决定采用PHP 8.3.2来完善通信系统开发。 考点:php filter chain Oracle PHP Filter链——基于oracle的文件读取攻击 参考:https://xz.aliyun.com/t/12939?time__1311=mqmhqIx%2BxfOD7DloaGkWepSazHG%3D4D#toc-16 题目给出源码如下 <?php highlight_file(__FILE__); // flag.php if (isset($_POST['f'])) { echo hash_file('md5', $_POST['f']); } ?> 这里可以用的项目:https://github.com/synacktiv/php_filter_chains_oracle_exploit/ 考点:可用PHP Filter链-基于oracle的文件读取攻击生成exp执行,题目提示php版本号正好满足条件,下载exp进行利用 执行payload,这里可能需要多跑几次才可以 python3 filters_chain_oracle_exploit.py --target http://eci-2zea1zzp9231ugqw9htd.cloudeci1.ichunqiu.com/ --file flag.php --parameter f …
-
- 0 篇回复
- 33 次查看
-
-
第一部分:初始谜题这一部分算是开胃菜,形式也更像平时见到的CTF题目,三个题目都是python加密的,做出其中任意一个就可以进入第二部分,也就是一个更类似真实情境的大型密码渗透系统。 但每个初始谜题都是有分数的,所以就算开了第二部分也当然要接着做。 每个题目也都有前三血的加成,一血5%,二血3%,三血1%,在最后排名的时候会先根据分数再根据解题时间,所以血量分其实很重要,但是手速实在不太够 然后就是他每个初始谜题下发的附件不仅包含加密用的.py文件,还有一个.exe文件,开启实例并输入ip和端口,之后题目就会下发加密数据,与他进行正确交互后就能拿到flag了。 初始谜题一(300 pts)题目: from sympy import Mod, Integer from sympy.core.numbers import mod_inverse # 模数 N_HEX = "FFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFF7203DF6B21C6052B53BBF40939D54123" MODULUS = Integer(int(N_HEX, 16)) MSG_PREFIX = "CryptoCup message:" # 加密函数 def encrypt_message(message, key): # 添加前缀 message_with_prefix = MSG_PREFIX + message message_bytes = message_with_prefix.encode('utf-…
-
- 0 篇回复
- 61 次查看
-
-
检材链接:https://pan.baidu.com/s/1fwHb_5svMyK3Gr4-QeNc0Q?pwd=43a3 挂载密码:2024Fic@杭州Powered~by~HL! 手机部分1. 嫌疑人李某的手机型号是? A. Xiaomi MI 2s B. Xiaomi MI 4 C. Xiaomi MI 6 D. Xiaomi MI 8 在火眼中分析到蓝牙名称是Xiaomi MI3W 但是选项中没有,因此我们可以通过useragent.txt去查看手机型号 2. 嫌疑人李某是否可能有平板电脑设备,如有该设备型号是? A. iPad Pro 11 B. Vivo Pad 2 C. MatePad Pro D. Xiaomi Pad 6s wifi连接记录 3. 嫌疑人李某手机开启热点设置的密码是? 火眼秒了 5aada11bc1b5 4. 嫌疑人李某的微信内部ID是? wxid_wnigmud8aj6j12 5. 嫌疑人李某发送给技术人员的网站源码下载地址是什么 新佛曰:諸隸僧殿降吽諸陀摩隸殿僧殿缽殿薩願僧殿宣摩殿嚴願殿是迦咒叻吶嚤須塞亦須阿隸嚤須愍眾殿蜜殿隸願蜜哆蜜亦願是念慧殿隸摩哆殿即隸嚤訶須隸亦愍如如殿囑殿囑 新佛曰秒了(http://hi.pcmoe.net/buddha.html) http://www.honglian7001.com/down 6. 受害者微信用户ID是? 看聊天记录 wxid_u6umc696cms422 7. 嫌疑人李某第一次连接WIFI的时间是? A. 03-14 15:55:57 B. 03-14…
-
- 0 篇回复
- 143 次查看
-
-
一、青龙组WEB web1 开局随便随便输入都可以登录,登上去以后生成了一个token和一个session,一个是jwt一个是flask框架的 这边先伪造jwt,是国外的原题 CTFtime.org / DownUnderCTF 2021 (线上) / JWT / Writeup 先生成两个token,然后利用rsa_sign2n工具来生成公钥 python3 jwt_forgery.py eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6ImFhYWFhIn0.EnToBP4kzW6jbUqkC7fjt-FcCq9mOMhKWRqKpo12BsG464YTX2QNiBLuzgqJhnDlGF2Ukqb6oWXhFm0qiKrbg1skUb0FO2kMBkEvRLpyGJ7tXOzcndGDl-egaMa-mSN321RNW-aiCKJsij5Tf0HzQgBU8UCg1Zd8uJaybcj3oXOi eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6ImEifQ.IUanU3g_ZtyPjDnOJ9gockfRo1oOQLmQT0To_WYLi9I9PluHxbBId5d2wFiF-sIhGPuDtzPvShiE1ao0qnMlp3X7pVf-Qb-juaslvbnpR1rCKH2D3Kq4u1d2wEDvsgWVtjYA6s5NXrvJpzDcpZlzmx_6Ywn8caqVQ3kjlTv87OKO 得到public k…
-
- 0 篇回复
- 141 次查看
-
-
WEBSQLUP打开题目给了一个登录页面结合名字猜测为SQL注入 查看源码发现有hint提示开发者使用的是模式匹配 所以我尝试使用%来模糊匹配,登陆成功 进入面板之后发现有一个文件上传功能 尝试上传php文件,结果被waf,文件名字不能出现p 我想到了使用.htaccess文件来解析gif文件来getshell 先上传.htaccess文件, 将1.gif当作php解析 接着上传1.gif文件 之后访问uploads/1.gif即可getshell,但是还需要提权读取flag 寻找提权命令 发现tac命令可以使用 CandyShop源码如下 import datetime from flask import Flask, render_template, render_template_string, request, redirect, url_for, session, make_response from wtforms import StringField, PasswordField, SubmitField from wtforms.validators import DataRequired, Length from flask_wtf import FlaskForm import re app = Flask(__name__) app.config['SECRET_KEY'] = 'xxxxxxx' class RegistrationForm(FlaskForm): …
-
- 0 篇回复
- 70 次查看
-
-
0x00 前言本文是关于“2024高校网络安全管理运维赛”的详细题解,主要针对Web、Pwn、Re、Misc以及Algorithm等多方向题目的解题过程,包含但不限于钓鱼邮件识别、流量分析、SQLite文件解析、ssrf、xxe等等。如有错误,欢迎指正。 0x01 Misc签到给了一个gif,直接在线分帧 得到synt{fvtava-dhvm-jryy-qbar},一眼凯撒,直接rot13解码 flag{signin-quiz-well-done} 钓鱼邮件识别给了一个eml邮件文件,可以用邮箱软件查看,也可以直接查看(可能麻烦点) Flag 1 直接base64解码,得到flag{wElCoMeTo} Flag 2下面的内容是base64编码的信息 解码后查看,得到flag{phIsHhuntINg} Flag 3eml文件剩下的内容没有flag了,只能从发件人的域名下手了 查下dns解析,这里用的是360威胁情报中心 https://ti.360.net/domain/foobar-edu-cn.com (这个情报中心会记录比赛过程的解析历史,所以现在直接看子域名信息就能得到flag) 下面还是正常过一遍查询流程 除了第三方服务平台,也可以用windows自带的nslookup,查看域名的TXT记录 nslookup -qt=txt foobar-edu-cn.com 根据提示,应该是得去找该域名下的子域名的解析记录,三个拼接出完整的flag 由于域名是在国外申请的,国内很多网站都解析不出来,只能用国外的网站慢慢…
-
- 0 篇回复
- 53 次查看
-
-
8086用于学习简单的原理(现在几乎都是x86 move和add指令: 汇编指令 行为 高级语言描述 mov ax,18 将18送入AX AX=18 mov ah,78 将78送入AH AH=78 add ax,8 将寄存器AX中的数值加8 AX=AX+8 mov ax,bx 将寄存器BX中的数据送入寄存器AX AX=BX add ax,bx 将AX,BX中的内容相加,结果存在AX中 AX=AX+BX PS:汇编指令不区分大小写 PS:寄存器地位运算溢出时,溢出位不会影响到高位 物理地址 CPU访问内存单元时要给出内存单元的地址 所有内存单元构成的存储空间是一个一维的线性空间 每一个内存单元在这个空间中都有唯一的地址,这个唯一的地址称为物理地址 物理地址=段地址x16+偏移地址 本质含义 用两个16位的地址(段地址,偏移地址),相加得到一个20位的物理地址 CPU在访问内存的时候,用一个基础地址(段地址x16)和一个相对基础地址的偏移地址相加,给出内存单元的物理地址 用分段的方式管理内存 内存并没有分段,段的划分来自于CPU!!! …
-
- 0 篇回复
- 32 次查看
-
-
0x00 前言简介 Microsoft为Windows Server 2008 R2(以及更高版本)提供了多个Active Directory PowerShell cmdlet,这大大简化了以前需要将涉及到的ADSI冗长代码行放在一起的任务。 在Windows客户端上,需要安装远程服务器管理工具(RSAT)并确保已安装Active Directory PowerShell模块。而在Windows服务器(2008 R2或更高版本)上的 PowerShell控制台(作为管理员)中运行如下命令:Import-Module ServerManager ; Add-WindowsFeature RSAT-AD-PowerShell。 0x01 AD的目录预览 AD PowerShell cmdlet和以下方式执行效果一样: Import-module activeDirectory $UserID = “JoeUser” Get-ADUser $UserID –property * 需要值得注意的是使用PowerShell v3版本以及高版本,你无需运行第一行命令,因为PowerShell的将识别必要的模块和自动加载它。一旦加载了Active Directory PowerShell模块,就可以像浏览文件系统那样浏览AD。命令如下: Ps> Import-module activeDirectory Ps>dir ad: Ps>set-location ad: Ps >set-loca…
-
- 0 篇回复
- 27 次查看
-
-
Active Directory中获取域管理员权限的攻击方法 译:by backlion 0x00 前言 攻击者可以通过多种方式在Active Directory中获得域管理员权限, 这篇文章是为了描述当前使用的一些当前热门的内容, 这里描述的技术“假设违规”,攻击者已经在内部系统上获得权限,并获得域用户认证凭据(又称后渗透利用)。 对于大多数企业而言,不幸的事实是,攻击者通常不会花更长时间从普通域用户转到域管理员。受害者的问题是:"这是怎么发生的?"。攻击者经常以鱼叉式的钓鱼电子邮件开始给一个或多个用户发送邮件,使被攻击者能够在目标网络中的计算机上运行他们的代码。一旦攻击者的代码在企业内部运行,第一步是进行信息收集,以发现有用的资源来进行提权、持久性攻击,当然,还包括截取信息。 虽然整个过程细节各不相同,但总体框架仍然存在: 1.恶意软件注入(网络钓鱼,网络攻击,等等) 2.信息探测(内部) 3.凭据盗窃 4.攻击与权限提升 5.数据访问和泄露 6.持久性(会话访问) 我们从攻击者获取到企业内部普通权限开始,因为在当前环境网络中通常并不困难,此外,攻击者通常也不难从普通客服端上的用户权限提升为具有本地管理员权限。此用户提权可以通过利用系统上未修补的补丁漏洞或更频繁地发现在SYSVOL中查找到本地管理员的密码,例如组策略首选项。 0x01 SYSVOL和组策略首选项中的密码获取 这种方法是最简单的,因为不需要特殊的“黑客”工具,所有的攻击方法必须是打开Windows资源管理器并搜索域名为SYSV…
-
- 0 篇回复
- 44 次查看
-
-
0x01 前言 我有几个客户在渗透测试之前来找我,说他们的系统安全做得非常好,因为他们的漏洞扫描显示没有严重的漏洞并且已准备好进行安全测试,这使我在15分钟内利用AD中的错误配置获得了域管理员权限。 我在渗透测试领域看到的一个教育缺陷是当前涉及渗透Active Directory(AD)方面缺乏知识。不幸的是,OSCP并没有覆盖AD测试,甚至连sans-gpen课程也很少涉及它。本文的目标是帮助展示我过去在对AD的安全测试中使用的一些技术,工具和方法。这绝不是一遍关于每种方法或工具的综合性手册。在本系列中,我将使用kali linux 2019,并通过虚拟机在自己的虚拟域上操作。 让我们首先说明目标:渗透测试的目标是识别攻击者为破坏网络而使用的任何可能的攻击向量。它不是为了获得域管理员权限。 现在我们有了一个目标,我们遵循了几个步骤来实现它。下面是关于测试环节的(粗略)图示指南。 概要:一个客户机雇佣您在他们的网络上进行渗透测试,该网络使用Active Directory。没有提供任何有关的信息,也没有任何登录凭据,也没有攻击范围,也没有进入客户公司前门的凭证,但是你可以设法从后门尾随进入,找到一个有IP电话的隐蔽房间。拔下IP电话的插头,插入笔记本电脑,发现自己在客服公司同一局域网内。下一步是什么?获得权限立足点。 0x02 第一阶段:获得权限立足点 由于没有信任证书,我们可以进行的侦察数量有限,而且几乎在整个周期的每一步都会进行侦察,但是我们可以立即采取一些措施来立足于网络。首先,因为我们有网络访问权限,所以只需通过…
-
- 0 篇回复
- 31 次查看
-
-
后置知识刚入门的小伙伴京东或者淘宝买这本书可以去看看 Windows Server 2012 R2系统配置指南_戴有伟编着文章是根据https://github.com/cfalta/adse c改编的。 环境搭建https://github.com/cfalta/adsec/tree/main/lab-setup DC-Windows 2019用户杰克-Windows 2019SqlServer-Windows 2019 配置域控新增一个网卡,三个虚拟机使用这个网卡设置指定ip我是直接复制虚拟机,需要更改mac地址和sid还需要更改sid可以使用系统内置的工具sysprep或者另外一个newsid工具https:// newsid.softag.com/download在三台机器上以管理员权限执行以下命令。 关闭防火墙Set-NetFirewallProfile -Profile Domain,Public,Private -Enabled False关闭Windows Defender卸载-WindowsFeature -Name Windows-Defender下载自动化脚本辅助安装 https://github.com/cfalta/adsec/tree/main/lab-setup/domain-setup-scripts 运行createdomain脚本,自己修改里面的域名称。 这里应该不能一步完成 先执行 安装-WindowsFeature -Name AD-Domain-Services -I…
-
- 0 篇回复
- 24 次查看
-
-
信息收集常用命令Net use Net view Tasklist /v Ipconfig /all net group /domain 获得所有域用户组列表 net group "domain admins" /domain 获得域管理员列表 net group "enterprise admins" /domain 获得企业管理员列表 net localgroup administrators /domain 获取域内置administrators组用户(enterprise admins、domain admins) net group "domain controllers" /domain 获得域控制器列表 net group "domain computers" /domain 获得所有域成员计算机列表 net user /domain 获得所有域用户列表 net user someuser /domain 获得指定账户someuser的详细信息 net accounts /domain 获得域密码策略设置,密码长短,错误锁定等信息 nltest /domain_trusts 获取域信任信息SPN扫描setspn -T target.com -Q */*定位域控若当前主机的dns为域内dns,可通过查询dns解析记录定位域控。 nslookup -type=all _ldap._tcp.dc._msdcs.rootkit.org ipconfig /all 端口:88,389,53定位域管登录的机器powerpick F…
-
- 0 篇回复
- 19 次查看
-
-
0x00 漏洞前言 Apache ActiveMQ是美国阿帕奇(Apache)软件基金会所研发的一套开源的消息中间件,它支持Java消息服务,集群,Spring Framework等。Apache ActiveMQ 5.13.0之前5.x版本中存在安全漏洞,该漏洞源于程序没有限制可在代理中序列化的类。远程攻击者可借助特制的序列化的Java消息服务(JMS)ObjectMessage对象利用该漏洞执行任意代码。 0x01 漏洞环境 1.在ubuntu16.04下安装docker/docker-compose: # 安装pip curl -s https://bootstrap.pypa.io/get-pip.py | python3 # 安装最新版docker curl -s https://get.docker.com/ | sh # 启动docker服务 service docker start # 安装compose pip install docker-compose # 下载项目 wget https://github.com/vulhub/vulhub/archive/master.zip -O vulhub-master.zip unzip vulhub-master.zip cd vulhub-master # 进入某一个漏洞/环境的目录 cd activemq/CVE-2015-5254/ # 自动化编译环境 docker-compose build 2.运行漏洞环境: docke…
-
- 0 篇回复
- 37 次查看
-
-
0X00 域渗透-Kerberos1.Kerberos简介在Kerberos认证中,最主要的问题是如何证明“你是你”的问题,如当一个Client去访问Server服务器上的某服务时,Server如何判断Client是否有权限来访问自己主机上的服务,同时保证在这个过程中的通讯内容即使被拦截或篡改也不影响通讯的安全性,这正是Kerberos解决的问题。在域渗透过程中Kerberos协议的攻防也是很重要的存在。 2.Kerberos协议框架在Kerberos协议中主要是有三个角色的存在: 访问服务的Client提供服务的ServerKDC(Key Distribution Center)密钥分发中心 其中KDC服务默认会安装在一个域的域控中,而Client和Server为域内的用户或者是服务,如HTTP服务,SQL服务。在Kerberos中Client是否有权限访问Server端的服务由KDC发放的票据来决定。 如果把Kerberos中的票据类比为一张火车票,那么Client端就是乘客,Server端就是火车,而KDC就是就是车站的认证系统。如果Client端的票据是合法的(由你本人身份证购买并由你本人持有)同时有访问Server端服务的权限(车票对应车次正确)那么你才能上车。当然和火车票不一样的是Kerberos中有存在两张票,而火车票从头到尾只有一张。 由上图中可以看到KDC又分为两个部分: Authentication Server: AS的作用就是验证Client端的身份(确定你是身份证上的本人),验证通过就会给一张TGT(Tick…
-
- 0 篇回复
- 26 次查看
-
-
0x00 漏洞描述Apache Shiro是一款开源安全框架,提供身份验证、授权、密码学和会话管理。Shiro框架直观、易用,同时也能提供健壮的安全性。Apache Shiro 1.2.4及以前版本中,加密的用户信息序列化后存储在名为remember-me的Cookie中。攻击者可以使用Shiro的默认密钥伪造用户Cookie,触发Java反序列化漏洞,进而在目标机器上执行任意命令只要rememberMe的AES加密密钥泄露,无论shiro是什么版本都会导致反序列化漏洞。0x01 影响版本Apache Shiro <= 1.2.40x02 漏洞原理Apache Shiro框架提供了记住我的功能(RememberMe),关闭了浏览器下次再打开时还是能记住你是谁,下次访问时无需再登录即可访问。用户登陆成功后会生成经过加密并编码的cookie。Apache Shiro 1.2.4及以前版本中,Apache Shiro默认使用了CookieRememberMeManager,其处理cookie的流程是:得到rememberMe的cookie值 > Base64解码–>AES解密–>反序列化。然而AES的密钥是硬编码的,就导致了攻击者可以构造恶意数据造成反序列化的RCE漏洞在服务端接收cookie值时,按照如下步骤来解析处理: 1、检索RememberMe cookie 的值 2、Base 64解码 3、使用AES解密(加密密钥硬编码) 4、进行反序列化操作(未作过滤处理) 但是,AES加密的密钥Key被硬编码在代码里,意味…
-
- 0 篇回复
- 37 次查看
-
-
0x00 漏洞介绍 Apache Shiro 存在高危代码执行漏洞。该漏洞是由于Apache Shiro cookie中通过 AES-128-CBC 模式加密的rememberMe字段存在问题,用户可通过Padding Oracle 加密生成的攻击代码来构造恶意的rememberMe字段,并重新请求网站,进行反序列化攻击,最终导致任意代码执行。0x01 影响版本Apache Shiro 1.2.5, 1.2.6, 1.3.0, 1.3.1, 1.3.2, 1.4.0-RC2, 1.4.0, 1.4.1版本。0x02 漏洞指纹1.set-Cookie: rememberMe=deleteMe 2.URL中有shiro字样 3.有一些时候服务器不会主动返回 rememberMe=deleteMe, 直接发包即可0x03 利用技巧1.该漏洞需要登录后获取到合法的Cookie: rememberMe=XXX后才可以进行利用, 看起来不是很好利用 但实际上有一些网站是开放注册的, 而且这个洞不需要知道服务端密钥 所以后续的利用还是可以同Shiro-550一样利用, 而且这里是AES加密的, 自带过WAF属性 ;2.如果攻击没有生效, 可以试一下删除Cookie中的JSESSIONID 字段, 很多时候这个字段存在的话, 服务端不会去处理 rememberMe。0x04 漏洞原理由于Apache Shiro cookie中通过 AES-128-CBC 模式加密的rememberMe字段存在问题,用户可通过Padding Oracle 加密…
-
- 0 篇回复
- 34 次查看
-
-
0x00 漏洞简述Apache Shiro 1.5.3之前的版本中,当将Apache Shiro与Spring动态控制器一起使用时,精心编制的请求可能会导致绕过身份验证,如果直接访问 /shiro/admin/page ,会返回302跳转要求登录,访问 /;/shiro/admin/page , 就能直接绕过Shiro权限验证,访问到/admin路由中的信息0x01 漏洞影响Apache Shiro 1.5.3之前的版本Spring 框架中只使用 Shiro 鉴权0x02 环境搭建1.下载项目到本地https://github.com/l3yx/springboot-shiro 2.通过idea编辑器对其进行编译成war包,然后讲放入到tomcat下的webapps目录中,运行即可。这里已编译好war包:https://github.com/backlion/demo/blob/master/shiro.war0x03 漏洞复现1.权限配置如下,其中/admin下的路由需要登录才能访问@Bean ShiroFilterFactoryBean shiroFilterFactoryBean(){ ShiroFilterFactoryBean bean = new ShiroFilterFactoryBean(); bean.setSecurityManager(securityManager()); bean.setLoginUrl("/login"); bean.setSuccessUrl("/index")…
-
- 0 篇回复
- 35 次查看
-
-
0x00 漏洞描述Apache Shiro 1.5.2之前版本中存在安全漏洞。攻击者可借助特制的请求利用该漏洞绕过身份验证。Shiro框架通过拦截器功能来对用户访问权限进行控制,如anon, authc等拦截器。anon为匿名拦截器,不需要登录即可访问;authc为登录拦截器,需要登录才可以访问。Shiro的URL路径表达式为Ant格式,路径通配符*表示匹配零个或多个字符串,/*可以匹配/hello,但是匹配不到/hello/,因为*通配符无法匹配路径。假设/hello接口设置了authc拦截器,访问/hello会进行权限判断,但如果访问的是/hello/,那么将无法正确匹配URL,直接放行,进入到spring拦截器。spring中的/hello和/hello/形式的URL访问的资源是一样的,从而实现了权限绕过。 0x01 漏洞影响Apache Shiro < 1.5.20x02 Shiro拦截器Shiro框架通过拦截器功能来实现对用户访问权限的控制和拦截。Shiro中常见的拦截器有anon,authc等拦截器。1.anon为匿名拦截器,不需要登录就能访问,一般用于静态资源,或者移动端接口 2.authc为登录拦截器,需要登录认证才能访问的资源。用户可以在Shiro.ini编写匹配URL配置,将会拦截匹配的URL,并执行响应的拦截器。从而实现对URL的访问控制,URL路径表达式通常为ANT格式。如下配置,访问 /index.html主页的时候,Shiro将不会对其进行登录判断,anon拦截器不需要登录就能进行访问。而对于/user…
-
- 0 篇回复
- 28 次查看
-
-
0x00 漏洞详情shiro在路径控制的时候,未能对传入的url编码进行decode解码,导致攻击者可以绕过过滤器,访问被过滤的路径。0x01 漏洞影响shrio <1.3.20x02 环境搭建由于这个版本还没有 shiro-spring-boot-starter,只能从 GitHub 上获取项目进行测试,https://github.com/godzeo/shiro_1.2.4_sample/archive/master.zip。 接下来还需要在 samples/web/pom.xml 文件中,将 jstl 的版本指定为 1.2。 通过idea编辑器对其进行编译成war包,然后放到tomcat中webapps目录中运行。已编译好的war包:https://github.com/backlion/demo/blob/master/samples-web-1.2.4.war0x03 漏洞复现访问http://192.168.1.9:8080/account/index.jsp 的时候,页面返回403或者302t。因此可以确定account路径是属于被过滤路径。此时使用burp截断,然后在访问路径的前添加 /任意目录名/../,即可绕过认证权限进行访问。1.首先直接访问后台主页,然后直接302跳转 2.如果在访问路径前加上/任意目录名/../,即可越权访问3.这里可以对其后台主页源码查看确实是和绕过后访问的页面内容是一致的。 0x04 漏洞分析关于这个漏洞,网上公开的资料非常少,唯二能找到的有用的就是 GitHub 上的 commi…
-
- 0 篇回复
- 26 次查看
-
-
0x00 漏洞描述Apache Shiro是一个强大且易用的Java安全框架,执行身份验证、授权、密码和会话管理。之前Apache Shiro身份验证绕过漏洞CVE-2020-11989的修复补丁存在缺陷,在1.5.3及其之前的版本,由于shiro在处理url时与spring仍然存在差异,依然存在身份校验绕过漏洞由于处理身份验证请求时出错,远程攻击者可以发送特制的HTTP请求,绕过身份验证过程并获得对应用程序的未授权访问。0x01 漏洞影响Apache Shiro < 1.6.00x02 环境搭建1.下载项目到本地https://github.com/l3yx/springboot-shiro2.将pom.xml中的1.5.2替换为1.5.3,将src/main/java/org/syclover/srpingbootshiroLoginController中的后台验证/admin/page替换为/admin/{name}3.通过IDEA编辑器重新build并运行即可,已编译好的war包将其放到tomcat下的webapps目录下运行即可https://github.com/backlion/demo/blob/master/srpingboot-shiro-0.0.1-SNAPSHOT.war0x03 代码说明1.ShiroConfig.java(pringboot-shiro-master\src\main\java\org\syclover\srpingbootshiro\ShiroConfig.java)权限配置, 当请求/…
-
- 0 篇回复
- 33 次查看
-