自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(235)
  • 收藏
  • 关注

原创 【Web】ImaginaryCTF 2024 部分题解

脚本里direction1是竞争获取canmove,direction2是目标方向。docker-compose.yml里。让服务报错读到泄露的hostname。题目设计不能读目录下的已有文件。简单的assert命令拼接。后端直接运行我们提供的代码。先输入left,right。再输入up,down。

2024-07-22 14:57:10 369

原创 【Harmony】SCU暑期实训鸿蒙开发学习日记Day2

纯记录学习日记,杂乱,误点的师傅可以×掉了😋学下Git相关💑,以Gitee为例最后补充了点ArkTS网络编程相关知识(没新东西)🤬。

2024-07-17 16:53:04 1108

原创 【Harmony】SCU暑期实训鸿蒙开发学习日记Day1

自定义组件通过@Component装饰器定义。示例:创建一个简单的MyButton组件。在这个示例中,MyButton组件接收一个label属性,并在按钮点击时输出该标签。

2024-07-16 17:55:30 1310

原创 【内网渗透】MSF后渗透阶段常用操作笔记

1、先看下目标靶机已存在用户 meterpreter中输入:run post/windows/gather/enum_logged_on_users。6 获取到meterpreter后 我们在终端内 输入getuid 看实际还没有提权成功 需要在还终端内在输入 getsystem 获取权限。那我们使用:use exploit/windows/local/bypassuac_windows_store_reg 尝试提权。启动远程桌面协议:run post/windows/manage/enable_rdp。

2024-07-10 12:09:21 703

原创 【内网渗透】MSF渗透阶段的常用指令笔记

不需要访问目标主机磁盘,所以也没什么入侵的痕迹。download nimeia.txt /root/Desktop/ # 下载文件到本机上如:download C:\boot.ini /root/或者download C:\"ProgramFiles"\Tencent\QQ\Users\295。run#执行一个已有的模块,这里要说的是输入run后按两下tab,会列出所有的已有的脚本,常用的有autoroute,hashdump,arp_scanner,multi_meter_inject等。

2024-07-09 11:38:25 1245 1

原创 【内网渗透】从0到1的内网渗透基础概念笔记

Windows域是计算机网络的一种形式,其中所有用户帐户 ,计算机,打印机和其他安全主体都在位 于称为域控制器的一个或多个中央计算机集群上的中央数据库中注册。身份验证在域控制器上进行。在域中使用计算机的每个人都会收到一个唯一的用户帐户,然后可以为该帐户分配对该域内资源的访问权限。域 ( Domain)是一个有安全边界的计算机集合(安全边界的意思是,在两个域中,一个域中 的用户无法访问另一个域中的资源)可以简单地把域理解成升级版的工作组。与工作组相比,域 的安全管理控制机 制更加严格。

2024-07-01 13:32:11 1174

原创 【密码学】面向小白的古典密码基础入门笔记

1.所有古典密码都已不安全2.密钥空间应该尽量大3.密文应该扰乱统计规律4.效率和安全是矛盾的。

2024-06-29 12:46:11 1129

原创 【代码审计】star7th/showdoc:v3.2.4 Phar反序列化写webshell

因为文件上传对用户权限没有限制,故本文对sql注入部分不做探讨。只关注假设已经拿到用户身份(如服务开放注册接口)后如何寻找反序列化链子并利用。这里public->private的过程,再结合new_is_writebale的is_dir功能,不难想到是对phar反序列化的patch。主要就是两步,sql注入拿到用户token,再以用户身份上传恶意phar包打phar反序列化。showdoc是基于thinkphp3.2.3的,直接拿现成的反序列化链子打RCE不很现实。再触发phar反序列化。

2024-06-05 14:03:52 840 1

原创 【Web】2024 京麒CTF ezjvav题解

有两层waf,一个是明文流量层面的检测,一个是反序列化过程的检测,前者可以自定义输出流改写序列化数据绕过。另外附上,在打入TemplatesImpl的部分,fj原生反序列化的打法。带着伪造的jwt访问./source,拿到题目源码jar包。waf部分,只看前者的话,就是ban掉了Rome的一些打法。cmd=sudo cat /flag拿到flag。也可以打fastjson原生反序列化。可以打jackson原生反序列化。admin/admin成功登录。反序列化入口在./Jsrc路由。访问./source。

2024-05-27 10:37:41 939 1

原创 【安全产品】基于HFish的MySQL蜜罐溯源实验记录

可以看到成功连上蜜罐的3306服务,但进行查询后会直接lost connection,属于低交互。攻击者的mysql客户端版本为5.7(要求低于8.0)当然修改配置文件后也可以读/etc/passwd。用HFish在3306端口部署MySQL蜜罐。此时HFish已经成功读到攻击者本地文件。MySQL蜜罐对攻击者机器任意文件读取。

2024-05-22 14:56:48 453

原创 【Web】CISCN 2024初赛 题解(全)

这里注意细节,靶机发了两次请求,第一次我们就返回一个正常的图片,第二次请求就发一个302,php代码块要用html标签包裹。注意下面这段报错,因为加不了引号,开头是数字的话,就会将类型识别为数字,若后续出现了字符串就会报错。再打sqlite,指定tableName,加载写入的恶意so文件,反弹shell。最后注意要将获取的变量元组转字符串,再用逗号分隔,依次输出,从而绕过seed。考的python栈帧沙箱逃逸,获取到外部的栈帧,就可以用。因为ban了引号,考虑hex2bin,将数字转为字符串。

2024-05-21 12:45:25 2703 5

原创 【Web】H&NCTF 2024 题解(部分)

先切回ctfer,sudo adduser kobe创建一个kobe用户。题目是对java文件进行编译操作,就是系统命令执行javac拼接文件名。./main.go是403访问./main-old.zip下载附件。是一个方便的命令行工具,用于在 Linux 系统中管理用户账户。查看/var/mail/ctfgame,读邮件中的敏感信息。没权限看/etc/sudoers ,用sudo -l。命令的特权,而且无需输入密码,但被限制不能以。看到kobe,可以apt-get提权。结合源码,能看出考的是sql注入。

2024-05-14 19:35:23 1208 4

原创 【安全产品】面向小白的关于蜜罐那些必须要知道的事(2)

补充一些相关知识。

2024-05-13 21:48:20 767

原创 【安全产品】面向小白的关于蜜罐那些必须要知道的事(1)

蜜罐这块知识本就很直观,建议动手实操部署一下,理解会更深。

2024-05-12 23:29:22 1278

原创 【Web】2023香山杯决赛 security system 题解

add的值,即HashMap的key就是HashSet的iterator所取的内容,而PRESENT作用是占位。①题目hint:想办法修改属性值后进入java的原生反序列化,然后利用jackson链写入内存马。字段时,需要确保对应的Java类路径在类加载器的搜索路径上,并且Jackson的。反序列化入口有两处,第一处是jackson反序列化,第二处是无过滤的原生反序列化。但首先要在第一个反序列化入口打入属性覆盖,从而为进入第二个反序列化入口创造条件。对象,并将JSON中的其他属性值映射到该对象的属性上。

2024-05-11 11:39:00 1545 1

原创 【Web】2023浙江大学生省赛初赛 secObj 题解

题目本身是不难,简单复健一下。

2024-05-10 21:44:04 709 1

原创 【Web】CTFSHOW 单身杯 题解

再访问./flag.txt拿到flag。用data协议包含php标签闭合。此地无银三百两测出SSTI。访问./source。

2024-05-10 17:30:57 448

原创 【Web】CTFSHOW 七夕杯 题解

一眼命令拼接,先fuzz一下可以用的字符。过滤了括号,不难想到用include。也可以打临时文件RCE。直接nginx日志包含。直接nc反弹shell。

2024-05-10 16:35:19 397

原创 【Web】CTFSHOW 月饼杯 题解(全)

是一个非负整数,表示提取子字符串的起始位置。[ ] 表示指定范围 ([a-f]) 或集合 ([abcdef]) 中的任何单个字符。[^] 不属于指定范围 ([a-f]) 或集合 ([abcdef]) 的任何单个字符。一眼八股,但小写字母都被waf掉了,用提示中的环境变量+linux字符串截取来构造。脚本爆可以0e绕过的值,$b要爆3位,$c要爆4位。中提取一个子字符串,并根据提供的参数进行操作。变量中的第3、第4和第5个字符组成的子字符串。是一个非负整数,表示提取的子字符串的长度。同于DOS命令中的?

2024-05-10 10:48:29 709

原创 【Web】CTFSHOW 新手杯 题解

先本地起个服务,先直接请求,再请求?name=Z3r4y,拿到new_rookie_info和Z3r4y_info。对比一下,其实就是要让I3为I1就可,sb后的.起到截断作用,id在name之后,name是我们可控的。$secret为$_COOKIE[secret],直接引用绕过了。可以在/change路由进行打入,用newname替换name。打PHP_SESSION_UPLOAD_PROGRESS。运行结果插到cookie里,而后便可为所欲为。当id为0时可以拿到flag。令mode为0看到源码。

2024-05-02 23:25:30 611 1

原创 【Web】CTFSHOW 中期测评刷题记录(1)

访问./cache/6a992d5529f459a44fee58c733255e86.php,命令执行拿flag。login.php是在./templates下的,而./flag.php与./templates均为web目录。注意到用./template/error.php中存在{{username}},可以用其cache来写马。这时候重开下靶机再去读./templates/index.php,发现是给了提示的。访问./config/settings.php,命令执行拿到flag。

2024-05-02 14:26:53 2021 1

原创 【Web】2024XYCTF题解(全)

/','ch3nx1',preg_replace('/[A-Za-z_]+/','',$this->cmd)))这段正则是将输入中的字母、下划线和括号都移除,并将连续的分号替换为字符串 'ch3nx1' ,最后与'ch3nx1'比较判真。是一个特殊的语言结构,用于在脚本中立即停止编译器的解析。函数可以执行多行命令,但如果其中的某一行命令出现错误,PHP 解释器将会停止执行并抛出一个致命错误,索性这个man已经被注释了,为了命令执行,我们需要做的就是换行和注释掉mamba out。

2024-04-30 16:30:20 1929

原创 【Web】D^3CTF之浅聊d3pythonhttp——TE-CL请求走私

后端不会接收到,但是前端可以),这样一来就绕过了对于BackdoorPasswordOnlyForAdmin的检测,进行pickle反序列化,靶机不出网,可以结合web.py的add_processor方法注内存马(就是在访问路由后执行lambda表达式命令)jwt解密的过程是去jwttoken的header中取kid字段,然后对其拼接/app/得到文件路径,但我们不知道secretkey在哪个文件中,这里只要指定一个不存在的文件名就可以用空密钥去解密。指定一个加密的空密钥,再把取解密密钥的路径置空。

2024-04-29 11:56:34 1355

原创 【Web】记录CISCN 2023 西南半决赛 seaclouds题目复现

至于如何调用toString,对于原生反序列化,走BadAttributeValueExpException最为方便,对于Field型的非原生反序列化, 如果对于Map的反序列化过程有类似HashMap#put的实现,就可以考虑HotSwappableTargetSource利用链。最后的最后,题目调用了getPayload(),这个方法是GenericMessage类的,这也印证了我们反序列化得到的结果是个GenericMessage对象。拿到源码似乎并没有直接给出反序列化入口,也没有看到waf。

2024-04-25 22:11:04 1177

原创 【Web】随便写写的pyjail刷题记录(1)

Python中内置了一个名为breakpoint()的函数,在Python 3.7中引入,用于在调试模式下设置断点。使用breakpoint()函数会停止程序的执行,并在IDE或命令行中进入调试模式,可以单步执行程序,查看变量的值等。符号通常被用于 Jupyter Notebook 或类似的交互式环境中,用来执行系统命令,而help()正是个能交互式的界面。在python2中,input函数从标准输入接收输入,并且自动eval求值,返回求出来的值。拿到backdoor的key,而后便可为所欲为。

2024-04-24 17:57:47 941 1

原创 【Web】HNCTF 2022 题解(全)

过滤了php . log flag :,选择打临时session文件包含。base64解码后读到Rea1web3he11.php源码。简单fuzz一下,ban了这么些,一眼顶针,无列名注入。就是一个wakeup的绕过,然后读文件用伪协议。然后随便输入一串手机号直接拿到flag。就是ssrf往flag.php发请求。连蚁剑,flag在/var目录下。base64解码拿到flag。提示访问./f14g.php。base64解码拿到flag。base64解码拿到flag。一眼顶针,藏flag鉴定为烂。

2024-04-22 20:17:38 1704

原创 【Web】log4j打JNDI专题刷题记录

高版本下打jndi不能加载远程恶意类,所以选择打二次反序列化的方式,用的是fj1.2.8的原生反序列化链子。运行生成的base64payload再放进恶意LDAPServer的回包中。这次换JNDIExploit来打,简单又方便啊家人们😋。访问/webstudy/hello-fengxuan。javac Rev.java得到Rev.class。1339端口起一个恶意ldap服务器。把恶意字节码放在1338端口。起恶意LDAPServer。监听,反弹shell。监听,反弹shell。监听,反弹shell。

2024-04-21 12:25:30 554

原创 【Web】DASCTF X GFCTF 2024|四月开启第一局 题解(全)

康好康的图片功能可以打SSRF,不能直接读本地文件,比如/etc/paswd /proc/1/environ。后来题目给了hint让打session反序列化(不是我寻思你附件也妹给session_start啊)大体思路就是先反序列化给record.php写入

2024-04-20 18:08:54 2326 15

原创 【Web】DASCTF X CBCTF 2022九月挑战赛 题解

再以admin登录,去买flag,发现还是有限制要绕(就是传入的json数据不能包含flag关键字)直接照着打也打不通,高版本模板注入RCE入口的location估计不能是search了。发现其是从url中接参,最后做一些简单的拼接并替换掉正在执行的模板文件。一顿逻辑走下来后发现没有waf,到此我们就可以成功得到恶意的模板文件。经过验证可以进行一个任意文件的读,但不知道flag路径,走不下去。搜索sn,发现传入的参数是score和checkCode。先随便登录一下 ,有10元,但flag要11元。

2024-04-19 14:34:31 967

原创 【Web】2022DASCTF X SU 三月春季挑战赛 题解(全)

存在两个命令执行的地方,eval和system,因为waf过于严格,不考虑在eval处利用,可以注释藏恶意代码,用``在system中执行。这disable_functions让人想自杀,过于严格,甚至连不上蚁剑。再去base64解码包含一下,即可用到新的上传逻辑。先修改下上传文件逻辑,把对文件后缀的waf去掉。再回到写的webshell,putenv一下。监听,反弹shell,拿到flag。成功反弹shell,提权,拿flag。先在vps上放一个恶意sh文件。下载恶意sh文件到本地并执行。

2024-04-18 23:07:09 563

原创 【Web】2022DASCTF MAY 出题人挑战赛 题解(全)

注册时传入{{.}}获取当前对象信息,就可获取jwt的secretkey,再令is_admin为true伪造jwt即可获得flag即可。sys_auth函数默认$type为0是加密,传入$type为1是解密。那只要用$type=0默认值,反过来加密我们欲下载恶意文件的url即可。/flag路由下只要is_admin为true就可以读flag。默认的$key为常量Mc_Encryption_Key。弱口令admin/123456/123456登录。带着伪造的jwt访问/flag拿到flag。

2024-04-18 16:56:19 630

原创 【Web】AFCTF 2021 题解(部分)

随便做做,环境是NSS上的。

2024-04-18 10:35:35 760

原创 【Web】NewStarCTF 2022 题解(全)

响应头进行Set-Cookie,显然一个base64编码,所以打入的时候也要base64encode一下。对关键词有过滤,无法大小写绕过,测出select,update,insert和union都被ban了。之前刷NSSRound赛的时候多次碰到Apache/2.4.49的RCE漏洞,这题也是现搜就完了。访问/upload/base64yjh.png,连蚁剑,读/flag。主要是空格的处理,/**/和/*关键字*/都被ban了,可以用%0c。抓包,看响应头,看到是Apache/2.4.50。

2024-04-17 22:25:00 1246

原创 【Web】陇原战“疫“2021网络安全大赛 题解

HashMap类的作用是触发hashCode,而BadAttributeValueExpException类的作用是触发toString,看本题的源码,后续可以直接调用object.toString,上帝在关上一扇门的同时又开了一扇窗。恶意类懒得注内存马,直接打spring回显类。打入,直接回显命令执行结果,拿到flag。wget也可以外带数据,详见贴出的文章。靶机不出网,那就是打加载恶意字节码呗。/wget路由无需鉴权,可直接打。监听,反弹shell,拿flag。监听,接收到外带的数据。

2024-04-16 23:12:33 482

原创 【Web】2022DASCTF Apr X FATE 防疫挑战赛 题解(全)

spl_autoload_register函数实现了当程序遇到调用没有定义过的函数时,会去找./class/函数名.php路径下的php文件,并把它包含在程序中。于是退一步,用同样的方式去读/var/www/html目录下的upload.php和edit.php。尝试去读/proc/1/environ和/flag均响应403,显然权限不够。访问/uploads/head.png,成功读到/etc/passwd。建立了链接,同时flag也没有被覆盖,然后访问。监听,反弹shell,拿flag。

2024-04-16 18:22:28 678 1

原创 【Web】Dest0g3 520迎新赛 题解(全)

通过故意将文件名和目录名混用,以及改变一个项目在文件系统中的类型(从文件到目录),来创建一个难以解压的ZIP文件。在Cookie处rO0A起手,明显是java序列化的base64编码,可以打入反序列化。打靶机,解压失败,但是其是在解压出部分文件后直接exit,从而绕过后续的unlink。这题估计也可以打php://input和日志包含,感兴趣可以试一试。生成的phar文件在010editor中打开,删去最后一个}D这个类对文件可以写可以读,用来打phar反序列化。访问/tmp/jyh.php回显404。

2024-04-16 11:15:25 1409

原创 [羊城杯 2020]a_piece_of_java 刷题记录

反序列化->info.getAllinfo()->(动态代理)InfoInvocationHandler.invoke()->Databaseinfo.checkAllInfo()->Databaseinfo->connect()利用点在/hello路由,在cookieData处打入反序列化。这题考的是JDBC_Attack,可以自行看下面文章。MySQL_Fake_Server配置改下。但定义了白名单输入流,不能直接打CC链。然后有spring依赖,可以打CC。监听,反弹shell,拿flag。

2024-04-15 11:52:33 461

原创 【Web】WUSTCTF 2020 部分题解

1/**/UnIon/**/select/**/1,2,3# //回显3。改Content-Type,文件内容加个GIF89a魔数。访问/fAke_f1agggg.php。随便注册个账号,更换头像功能存在文件上传。抓包看响应头看到/f14g.php。第一反应搜CVE,但没搜到有用的。过滤了空格,测出来有sql注入点。简单的bypass,不解释了。直接读环境变量拿到flag。访问/robots.txt。访问/f14g.php。可以搜索找到上传的路径。连接蚁剑,发现权限不够。

2024-04-15 07:55:29 357

原创 【Web】DASCTF2022.07赋能赛 题解

这类常用的字符和关键字,可以用 attr() 配合 unicode 编码绕过。JSFinder是一款用作快速在网站的js文件中提取URL,子域名的工具。的形式来bypass。Show类文件操作可以触发phar反序列化。使用gzip压缩来绕过对文件内容的检测。监听,拿到flag(补全{}即可)进来有两个功能,一个查看,一个上传。过滤print 关键字,则只能用。访问/SUPPERAPI.php。前端过滤不用管,禁用js即可。图片查看功能可以任意文件读。读文件触发phar反序列化。过滤{{}},我们可以用。

2024-04-14 17:10:35 616

原创 【Web】DASCTF X GFCTF 2022十月挑战赛题解

之后对Test类的后门进行利用时要绕过wakeup,靶机是高版本php,不能用CVE-2016-7124打,但因为这题的特殊性,所以哪怕不绕过也可以玩。User::__wakeup()里username的值可以被赋值为 $_SESSION[“username”]的值,而这个值是我们可控的。因为反序列化时会先执行对象的成员属性的值的__wakeup再执行此对象的__wakeup,即先执行内层再执行外层,所以可以有如下利用。以. ./*登录,则可执行system('. ./*')

2024-04-14 11:36:58 1140

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除