从国赛EZpop到tp6.0.x反序列化漏洞
本篇文章关于thinkphp6.08和6.0.12两个版本的反序列化进行分析,因为在新版中,修复了本来在6.08版本中可以利用的链路,不过在6.0.12版本中也是挖掘到了新的利用链,谨以本篇文章来学习一下。
本篇文章涉及15届ciscn的web中的EZpop,但不仅限于这道题,会讲解一些反序列化的知识,作为一个学习的过程,本人也没有系统的学习反序列化漏洞,如有错误烦请各位师傅指正。
前言国赛:每次参加这种比赛总有一种为什么自己这么菜的感慨,狠铁不成刚。。。
前几天的15届ciscn大赛,遇到了tp6的反序列化漏洞,虽然用了网上公开的poc打出来了,但是毕竟不是自己理解出来的,本篇文章就来从国赛EZpop来研究和学习tp6的反序列化漏洞。
两个版本区别__destruct链触发走的路一样
__toString链最终利用点不同
关于php魔术函数的知识大家可以自己去百度学习,我就从这道题来讲起,直接进入app/controller/Index.php
这个就是出现的主界面的文件,搜索默认界面文字能定位到这个文件,看到unserialize()这个函数,这个函数就不用我多说了,php中常见的序列化函数
我们都知道php的反序列化攻击都是通过魔法函数来进行攻击,php自动调用的函数,在自动调用时,便会触发魔术方法,如果魔术方法里面存在一些恶意代码,就有机会实施反序列化攻击,例如__destruct,也是本题用到的方法:
__destruct是对象被销毁的时候进行调用,因为php在程序块结束时会进行垃圾回收,将对象进行销毁,然后自动触发__destruct的魔术方法。
常见的魔术方法:
当对象被创建时:__construct
当对象被销毁时:__destruct
当对象被当作一个字符串使用时:__toString
序列化对象前调用(其返回值需要是一个数组):__sleep
反序 ...
2022护网行动
今年是去了中铁下面一个子公司,加上我总共俩人,所以人手还是比较紧张的,上设备,监控,应急,研判,溯源都是我俩在做,虽然没出什么较大的事情,但是也是出现了很多突发情况和应急问题。
主要是来介绍一下护网中遇到的类似的应急以及一些突发时间以及护网中常见的流量如何去鉴别正常业务和攻击流量
PS: 文中图片均来自网络,虚拟环境中进行测试,不存在实际环境,如存在侵权行为联系作者删除,万分感谢
研判其实研判主要就是考验你对流量的判断力,总体来说防火墙误拦和sip误判还是有很多的,几乎是触碰到规则就会被拦截,比如匹配到&start会直接拦截并且报代码注入,其实很多正常业务都会带有这个字段等等,下面我会用一些图片结合文字简单说一下。
0x01
这个数据包虽然sip报警,但是从返回包以及请求包中的username和password来看,是一个公司人员来请求上网认证的这么一个数据包,是正常流量,就可以不去予以关注,只是触碰到了sip的规则。
0x02
这条数据包sip报的是SQL注入,可以看到数据包中确实带有SQL语句的特征,convert(varchr(100),vahdat,111),但是综合这个数据包的请求体以及返回包来看,并无其他特征信息指向这是SQL注入,只是命中了sip的规则,也是误报
0x03
这个就没啥好说的了,很明显的SQL注入攻击行为,封IP就完事,能溯源就溯源。
0x04
护网中如果见到带这种**spider的,一般都是爬虫工具,直接封掉IP就完事。
0x05
下面这个是我所在单位遇到的一个数据包,乍一看好像没啥问题,但是仔细一看,问题大了,很明显的一个攻击行为,而且还是我们内网一个服务器发给另一个服务器的,这就有点可怕了,首先就先断开这太服务器的所有网络通讯,上去排查即可。
0x06
这个虽然并无攻击行为,但是很明显看到返回包返回了报错信息,那么这危险就 ...
钓鱼以及XSS攻击思路
起因前几天在朋友那发生了一件事情,朋友在那好好打着游戏,突然手机发来一条QQ新设备登录验证码,我朋友很懵逼,他的QQ号密码只有他自己知道,根本不可能。他把这件事告诉了我之后,我询问他最近有没有在登录的时候发生一些奇怪的事情,就有了下面这件事情,前几天他在登录QQ空间的时候,明明自己密码输入正确了,但是输入后点击登录又重新输入了一遍后才登录成功,这就是一起很简单的钓鱼事件了,最开始输入密码的那个网站并不是真正的QQ空检登录界面,而是一个钓鱼界面,下面就介绍一下关于xss以及钓鱼的一些思路
本篇文章仅供学习,域名并没有去伪造,所以只是觉得有意思来了解学习一下,也是加强一下自己的防范意识,大家在平常也要加强自己的防范意识
参考国光师傅的这篇文章,写的很好,大家可以去看看:https://www.sqlsec.com/2020/10/xss2.html#toc-heading-8
鉴别网站首先就是要看域名,一些特殊符号不仅可以骗过普通人,有时候连一些专业的信息安全人员也可以骗过。例如我这里本地简单搭了一个邮箱钓鱼网站,后面会讲功能以及如何操作
界面做的不是很好看,但是不影响,意思到了就行
域名分析本网站域名
# 真域名
www.plumstar.cn
# 假域名
www.рlumstar.cn
vivo官网
# 真域名
www.vivo.com
# 假域名
www.νivo.com
微信官网
# 真域名
https://weixin.qq.com/
# 假域名
https://wеixin.qq.com/
在早期人们对钓鱼防范还不是很了解的情况下,这种钓鱼方法的成功率还是很高的,大家要增强防范意识。
钓鱼流程回到上面的邮箱钓鱼网站,用户在前台输入自己的QQ账户和密码,美滋滋的点个登录
发现诶,怎么没反应,再 ...
简谈Java内存马的攻与防
内存马基础知识什么是Java内存马本文以Java内存马这一主流为样本进行分析,市面上主流利用和研究对象依旧是Java内存马,当然也存在其他语言类型内存马,但是出现和利用次数微乎其微。
我们在学习Java的时候都学习过路由的相关知识,顾名思义内存马就是在web组件或者应用程序中,注册一层访问路由,访问者通过这层路由,来执行我们控制器中的代码,其运行时主要在内存中执行,无本地落地文件或者运行后将自身删除并存在内存中,存在与内存中,与一般的木马相比 隐藏性极高且通过动态添加恶意组件,如servlet、filter、listener等,或者利用Java的instrument机制动态注入agent,在Java内存中动态修改字节码,实现根据请求的参数执行任意代码。
PS:本篇文章只是简单介绍一下Java内存马的相关知识和简单使用以及日常攻防中的检测,细致分析请看后面的文章:Java内存马(一)(二)(三)
Java内存马特点
无文件落地:与传统webshell不同,Java内存马不依赖于磁盘上的文件,因此更难被安全设备检测到
隐蔽性强:由于内存马存在于内存中,不留下任何文件痕迹,使得其隐蔽性极高
动态注入:Java内存马可以通过动态注册新的组件或修改字节码的方式,实现恶意代码的注入和执行
Java内存马类型Servlet-API型通过命令执行等方式动态注册一个新的listener、filter或者servlet,从而实现命令执行等功能。特定框架、容器的内存马原理与此类似,如spring的controller内存马,tomcat的valve内存马。
filter型
servlet型
字节码增强型通过java的instrumentation动态修改已有代码,进而实现命令执行等功能。
sping类
拦截器
Controller型
Java三大组件关于三大组件相比大家都已经不陌生,在J ...
Java内存马(一)
前言根据解师傅文章进行学习:https://xz.aliyun.com/u/56767
在正式介绍内存马相关知识前,有必要回顾一下Java的相关知识,正所谓一切的基础为代码,不了解底层原理如何进行攻防相关的研究
因此(一)即介绍跟内存马息息相关的知识,包括但不限于tomcat,spingboot,spingmvc等,具体请看目录
什么是ServletTomcat 服务器是一个免费的开放源代码的Web 应用服务器,Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,它早期的名称为catalina,后来由Apache、Sun 和其他一些公司及个人共同开发而成,并更名为Tomcat。Tomcat 是一个小型的轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选,因为Tomcat 技术先进、性能稳定,成为目前比较流行的Web 应用服务器。Tomcat是应用(java)服务器,它只是一个servlet容器,是Apache的扩展,但它是独立运行的。
从宏观上来看,Tomcat其实是Web服务器和Servlet容器的结合体。
Web服务器:通俗来讲就是将某台主机的资源文件映射成URL供给外界访问。(比如访问某台电脑上的图片文件)
Servlet容器:顾名思义就是存放Servlet对象的东西,Servlet主要作用是处理URL请求。(接受请求、处理请求、响应请求)
Tomcat中Servlet容器的设计原理Tomcat设计了四种容器,分别是Engine、Host、Context和Wrapper,其关系如下:
Tomcat通过这样的分层的架构设计,使得Servlet容器具有良好的灵活性。一个Service最多只能有一个Engine,Engine表示引擎, ...
域渗透之zerologon一键打域控
转载自:https://www.jianshu.com/p/7bd3f242c09c
0x01 漏洞描述Zerologon,编号为CVE-2020-1472,是 Netlogon 远程协议 (MS-NRPC) 中的一个身份验证绕过漏洞。Netlogon 是一个远程过程调用 (RPC) 接口,Windows 使用它来对基于域的网络上的用户和计算机进行身份验证,例如维护域成员与域控制器 (DC) 之间的关系,跨一个或多个域的多域控制器之间的关系以及复制域控制器数据库。Netlogon 的功能之一是允许计算机对域控制器进行身份验证并更新它们在 Active Directory 中的密码,由于这个特殊功能导致Zerologon 漏洞,该漏洞允许攻击者冒充任何计算机到域控制器并更改其密码,包括域控制器本身的密码。导致攻击者获得管理访问权限并完全控制域控制器,从而完全控制网络。
0x02 漏洞原理NetLogon通信过程客户端向NetLogon服务器(如windows域控)发送八个随机字节(ClientChallenge,简称CC),服务端用自己的八个随机字节(ServerChallenge,简称SC)作为回复,双方将两个随机字符串和一个共享秘钥合在一起,生成一个一次性的加密密钥,称为 SessionKey(SK)。在客户端中存储在注册表上,在域控制器上存储在Active Directory。 SessionKey是被HMAC-SHA256通过摘要算法生成的,伪代码如下:
hstring = CC .. SC //合并Challenge生成的16位字节码
secret = GetSecretPassword()
hkey = MD4(secret)
hashval = HMAC_SHA256(hkey, hstring)
SessionKey = substr(has ...
蜜罐的搭建及使用
今天整理电脑和备份的时候才发现好多文章都丢了。按时备份确实是应该养成的良好习惯
蜜罐介绍蜜罐(Honeypot)是一种安全机制,用于诱捕和检测未经授权的用户或黑客。它的核心思想是在网络中设置一个看似有价值的目标,吸引攻击者前来尝试入侵。一旦攻击者接触到蜜罐,安全团队就可以监控他们的行为,收集有关攻击者的信息,甚至反向追踪攻击来源。
蜜罐可以分为以下几类:
低交互蜜罐:这类蜜罐仅提供有限的交互功能,模拟常见的服务和漏洞。它们易于部署和维护,但可能无法捕获高度定制化的攻击。
高交互蜜罐:这类蜜罐提供更真实的系统和服务环境,允许攻击者进行更深入的交互。它们可以提供更多的攻击信息,但部署和维护成本较高。
生产蜜罐:这类蜜罐部署在生产环境中,与真实系统共存。它们可以实时监测和分析针对生产环境的攻击行为。
研究蜜罐:这类蜜罐专门用于研究目的,帮助安全研究人员了解攻击者的行为和动机,以及新兴的攻击技术。
蜜罐的优点包括:
捕获零日攻击:蜜罐可以检测到尚未公开的漏洞攻击。
了解攻击者行为:通过监控蜜罐中的攻击行为,安全团队可以了解攻击者的意图和技术。
保护真实资产:蜜罐可以将攻击者的注意力从真实系统转移到虚假目标上,降低真实系统的风险。
然而,蜜罐也存在一些局限性,如可能被误认为真实系统、可能泄露敏感信息给攻击者等。因此,在部署蜜罐时,需要权衡利弊并谨慎实施。
蜜罐搭建本文采用的是微步旗下免费蜜罐HFish 它是一款社区型免费蜜罐,侧重企业安全场景,从内网失陷检测、外网威胁感知、威胁情报生产三个场景出发,为用户提供可独立操作且实用的功能,通过安全、敏捷、可靠的中低交互蜜罐增加用户在失陷感知和威胁情报领域的能力。
Fish支持基本网络 服务、OA系统、CRM系统、NAS存储系统、Web服务器、运维平台、安全产品、无线AP、交换机/路由器、邮件系统、IoT设备等9 ...
SQL注入简单绕过姿势
看了一眼竟然没写过sql注入的绕过姿势;具体情景具体操作,一切都以当前环境基础来进行绕过
常用绕过方法####大小写绕过大小写绕过用于只针对小写或大写的关键字匹配技术正则表达式/express/i 匹配时大小写不敏感便无法绕过,这是最简单的绕过技术
?id=1 UnIon SeLeCt user()#
####双写绕过waf将关键字替换为空,没有递归
?id=1 uniunionon seselectlect user()#
####编码绕过利用urlencode,ascii(char),hex,unicode等编码绕过
or 1=1即%6f%72%20%31%3d%31,而Test也可以为CHAR(101)+CHAR(97)+CHAR(115)+CHAR(116)。十六进制编码SELECT(extractvalue(0x3C613E61646D696E3C2F613E,0x2f61))双重编码绕过?id=1%252f%252a*/UNION%252f%252a /SELECT%252f%252a*/1,2,password%252f%252a*/FROM%252f%252a*/Users--+一些unicode编码举例:
单引号:'
%u0027 %u02b9 %u02bc
%u02c8 %u2032
%uff07 %c0%27
%c0%a7 %e0%80%a7
空白:
%u0020 %uff00
%c0%20 %c0%a0 %e0%80%a0
左括号(:
%u0028 %uff08
%c0%28 %c0%a8
%e0%80%a8
右括号):
%u0029 %uff09
%c0%29 %c0%a9
%e0%80%a9
####关键字拆分‘se’+‘l ...
内网提权—Windows系统提权
内网艰难学习……有错误烦请指出
一般常见的进入内网后的提权方式
系统内核溢出提权
数据库提权
系统服务权限配置错误
组策略首选项提权
DLL劫持提权
滥用高权限令牌提权 也就是劫持令牌
第三方软件/服务提权
前言windows在日常的渗透中经常遇到,而在内网之前,经常会在所拿到的跳板机进行提权,这样后面横向,内网才能更好的展开(抓hash,必须得系统或管理员权限)。
系统内核溢出漏洞提权、数据库提权、错误的系统配置提权、组策略首选项提权、窃取令牌提权、bypassuac提权,第三方软件/服务提权,WEB中间件漏洞提权等。
关于数据库提权,MySQL的提权在前一篇文章 https://www.plumstar.cn/2023/05/05/MySQL%E6%8F%90%E6%9D%83/
这篇文章将会介绍除MySQL提权之外的在Windows系统下提权的一些常用方法
工具有一些工具需要提前说一下使用的方法,下面都会用到
winPEASwinPEAS是一个非常强大的工具,它不仅积极寻找特权升级错误配置,而且还在结果中为用户突出显示它们。
https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite/tree/master/winPEAS
在运行之前,我们需要添加一个注册表项,然后重新打开命令提示:
reg add HKCU\Console /v VirtualTerminalLevel /t REG_DWORD /d 1
运行所有检查,同时避免耗时的搜索:
.\winPEASany.exe quiet cmd fast
运行特定检查类别:
.\winPEASany.exe quiet cmd systeminfo
accesschk.exeaccesschk是一个很 ...
提权碎碎念
前言数据库提权是指:通过执行数据库语句、数据库函数等方式提升服务器用户的权限。
首先我们要先有能力登入数据库,所以通常我们拿到webshell之后要去网站目录去找数据库连接文件,常在形如xxx.conf或conf.xxx文件中。
通俗点来说就是:我们通过一些方式获取到了目标主机数据库的用户名和密码,并且可以远程连接。我们远程登录上了mysql服务器,这时,我们想通过数据库来执行系统命令
设置MySQL允许远程登录这里是因为本地实验的Windows server 2003默认不允许远程登录,所以临时设置了一下
本地登录上去MySQL,然后执行
grant all privileges on *.* to 'root'@'%' identified by 'root' with grant option;
#使配置生效
flush privileges;
然后重启MySQL
service mysql restart;
然后就可以远程登录上去了
mysql -h 192.168.158.140 -u root -p
UDF提权利用条件:windows2003、windowsXP、windows7 #关于系统是在网上看见贴在这里,因为我只实验了2003其他系统并未实验
拥有mysql的insert和delete权限
UDF是什么UDF(Userdefined function)可翻译为用户自定义函数,其为mysql的一个拓展接口,可以为mysql增添一些函数。比如mysql一些函数没有,我就使用UDF加入一些函数进去,那么我就可以在mysql中使用这个函数了。
使用过MySQL的人都知道,MySQL有很多内置函数提供给使用者,包括字符串函数、数值函数、日期和时间函数等,给开发人员和使用者带来了很多方便。MySQ ...