从国赛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护网行动
今年是去了中铁下面一个子公司,加上我总共俩人,所以人手还是比较紧张的,上设备,监控,应急,研判,溯源都是我俩在做,虽然没出什么较大的事情,但是也是出现了很多突发情况和应急问题。
主要是来介绍一下护网经历的应急以及一些突发时间以及流量如何去鉴别正常业务和攻击流量
研判其实研判主要就是考验你对流量的判断力,总体来说防火墙误拦和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账户和密码,美滋滋的点个登录
发现诶,怎么没反应,再 ...
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 ...
Ubuntu开启ssh
今天搭建漏洞的时候发现faild to start ssh.service
service ssh start
很惊讶,因为之前用kali的时候都是自带ssh服务的,没想到Ubuntu需要自己安装
apt-get install openssh-server
安装完成后修改一下ssh配置文件,允许远程使用root进行登录
vi /etc/ssh/sshd_config
#将下方代码加入config文件
#PermitRootLogin prohibit-password
PermitRootLogin yes
重启系统和sshd服务
sudo /etc/init.d/ssh stop
sudo /etc/init.d/ssh start
sudo service ssh start
直接xshell尝试远程ssh登录
安装ssh服务后,系统默认开启系统sshd,查看sshd状态如果不是默认启动,修改服务为enable
sudo systemctl enable ssh
Invoke-PSImage利用分析
之前在bypass360那篇文章用到了这个脚本,最近面试的时候被问到了,没说出来,这篇算是补上之前的缺漏吧,其实最主要的就是这个脚本的隐写来绕过360,简单了解一下这个脚本的隐写原理
如有错误,烦请佬们及时指出,感谢
LSB常年打CTF的佬们应该都多少了解PNG隐写的一些常用打法,例如LSB隐写,网上介绍LSB隐写或者其他隐写的文章很多,大家自己去看吧,我简单介绍一下
在大多数PNG中,像素都是由R,G,B三色组成,每种颜色用8位数据表示(0x00~0xFF),如果修改其最低位,人眼是分辨不出这种微小的变化的。我们就可以利用每个像素的R,G,B颜色分量的最低位来隐藏信息,我就不重复造轮子了
https://3gstudent.github.io/%E9%9A%90%E5%86%99%E6%8A%80%E5%B7%A7-PNG%E6%96%87%E4%BB%B6%E4%B8%AD%E7%9A%84LSB%E9%9A%90%E5%86%99
简介原理简单来说就是将获取到的payload通过插入插入像素的方式插入到图片中,让人的肉眼无法观察出来,同时通过不明显的插入payload来骗过一些杀毒软件达到免杀的效果,使用时,通过powershell代码在命令行将图片马解出来运行payload,达到shell上线
脚本分析涉及到一些图片的底层信息,也是临时在网上了解到的。
在免杀360那篇文章中,核心是通过该脚本生成一个免杀图片马,然后用powershell的形式去加载我们的图片马到电脑,所以关键就在图片马的生成免杀上。根据GitHub上的readme参考说明文件,简单总结下面三点。
选取每个像素的两个颜色中的4位用于保存payload(像素使用的为RGB模式,分别选取颜色分量中的G和B的低4位(共8位)保存payload)
图像质量将受到影响(由于同时替换了G和B的低4位,故图片质 ...
SQL注入防御—预编译
前言最近在简单回顾一下sql注入,其他地方都还好,之前在面试的时候讲到sql注入的预防,我就是简单说了一下采用预编译,并没有细说预编译的一些东西,这篇文章就简单写一下Java中的预编译的代码或者原理。
写的很简单,为了更好解释一下这个预编译,其实明白之后自己往下写就很简单方便了。
SQL注入介绍sql注入漏洞来自于sql查询语句的拼接,攻击者通过非法的输入改写sql语句的语义,以达到攻击者的目的。下面简单举一个例子
例如下面的这段代码,直接把用户post进来的id直接传入SQL查询语句,导致SQL注入产生,对于用户传进来的参数并没有进行限制以及检测。
$id=$_POST['id'];
$query="select username,email from member where id=$id";
我们直接传入一个恶意payload进去,例如像下面这样,用来查询数据库库名。
我们传入**id=2 union select 1,database()**,那么语句SQL查询语句就拼接为select username,email from member where id=2 union select 1,database()
可以发现我们前半部分查询出了select username,email from member where id=1,后半部分执行了select 1,database()
那么我们在日常开发中需要如何避免这种SQL语句由于黑客恶意构造payload导致库信息泄露甚至拖库,就要涉及到今天提及到预编译处理。
SQL语句进行预编译处理因为sql注入是因为动态字符串的拼接导致sql命令发生改变,然后编译并且执行错误的结果。
而sql预处理则是提前“告诉”sql语法处理器,提前声明并且编译特定格式的sql语句,然后将所有用户的输入视为纯字符串参数,最后 ...
苏州——西塘
我直接就是水一篇文章出来,顺便也给大家出一篇攻略吧
day1傍晚到的苏州 苏州站下车就是护城河,可以绕着护城河走一走,我就是这么干的,因为订的酒店也离苏州站没有那么远, 对于我来说很好看 散散步很舒服夜景很美。酒店在拙政园和苏州博物馆附近,走过去就几分钟路程,也没有那么贵,正常酒店价格;三天345元,可以直接地图搜都市118连锁酒店(观前街拙政园店)
附上几张护城河的照片,个人觉得很美
从苏州站直接走去了山塘街,大概30分钟路程吧;山塘街夜景也很美 散散步很舒服 就是人太多了,建筑就是典型的江南水乡的风景,其实正常来说就是个小吃街而已。吃的看自己叭,因为我是自己一个人,也没有吃那么多。不建议在山塘街吃东西(外地人最好骗),附上山塘街照片
day2拙政园和苏博以及狮子林需要前一天提前买票和预约,尤其是你要周末去玩(人很多,有可能晚预约就没票了)更要提前做打算,还有这些公正号都是运营时间是8:00——21:00 要早点把这些事情干了
第一站拙政园,典型的园林,个人觉得值得一去(虽然我同学不太喜欢),但是本着来都来了,看看呗,总体来说还是不错的,拍拍照散散步很好,也挺出片的。来一躺不看看怪可惜的,就是我去的时候好多地方在建,所以有点可惜。
然后去了苏州博物馆,我只能说绝对是我去过最漂亮的博物馆藏品也挺丰富的,很出片,你会发现很多姐姐在哪里拍照,真的很美,尤其是博物馆的整体建筑设计,非常之漂亮,藏品也很漂亮。
然后下一站去了狮子林,也是一个园林,个人感觉一般,有可能是我去了太多园林审美疲劳了,想去的可以去看看,四A级景区,狮子林最出名的是假山,确实假山很多而且四通八达。
因为感觉饭点人真的太多了,所以我在下午三点去吃了我同学推荐的蟹黄捞面。虽然很贵但是我感觉蛮好吃,美团买69,店买98.建议大家可以吃吃看尤其是吃螃蟹的季节,店就在拙政园附近。地图直接搜山塘老街·蟹黄专 ...