ctf
5k words
这题考察的还是对子进程与父进程之间堆栈的关系 debug部分参考的这位师傅 https://mp.weixin.qq.com/s/ngdtDGE8bGVe6v3GTrH1rw 依照程式启动时输出的leave your name 查看string调用找到004019e9() 再追下,就到了main()中 看下调用顺序 应当是 12300401931() -> 004019e9() 但神奇的是它在程式执行过程中,首先输出的是004019e9的leave_your_name 而后才是00401931的Wanna_return 实际上在gdb的debug时候这部分的逻辑有些乱,所以我换到ida之后发现,他会进入401931() 而后执行到这里会call 44EDF0 eax给了0x3a这里是 1234567#syscallrax:系统调用号rdi:第一个参数。rsi:第二个参数。rdx:第三个参数。r10:第四个参数。.... 158 common vfork sys_vfork 所以这里是syscall_vfork创建一个子进程 在其中他会sys_vfo...
Uncategorized
15k words
对TransformMap调用了setValue(),但因为他的父类是AbstractInputCheckedMapDecorator其中的MapEntry继承AbstractMapEntryDecorator,而这个AbstractMapEntryDecorator实现了Map.entry部分,同时其子类MapEntry重写了setValue,所以TransformMap在Mapentry轮询的时候调用setValue调用的是他爹的 AnnotationInvocationHandler因为不是公共类,所以只能通过反射的形式获取而后实例化 1234Class c = Class.forName("sun.reflect.annotation.AnnotationInvocationHandler");Constructor TestConstructor = c.getDeclaredConstructor(Class.class,Map.class);TestConstructor.setAccessible(true);Object o = TestC...
Uncategorized
3k words
1之后会更新一部分可以公开的脱敏后的拿点或src的思路过程记录,以供熟悉的朋友和师傅们参考 1本文强脱敏,因为涉及的企业都很大,涉及到信息和资产相关的都不会贴图,相关特征图片也用其他类似的代替,所以文字占了大部分,着重记录一下思路,十分抱歉师傅们见谅。 本次攻击用到了两个供应链,包含一个我没公开的day 这次的目标是一个投送广告的大屏管理企业,拿下了这个系统基本就控住了那个地市三分之一的商业大屏 而其资产是托管在其他厂商那里,或者说是委托其他厂商来开发运维,目标只是作为使用方。 那目标就很明确,由这目标单位范围延伸覆盖到了运维厂商侧,然后开始收集厂商资产。 在收集过程中发现这个厂商做了非常多家企业的运维开发业务,但业务系统并不一致,只是主域名资产都是备案在厂商。 不过对于这种单位,他运维团队除非很大,否则在运维习惯上会有很大的通用性,为了验证这点,在查了他单位的人员信息和一些采购、业务纠纷、合同指标之后发现他公司的开发运维技术团队并不大,直觉告诉我只要打进一个或者两个,就有很大概率杀到目标单位。 所以我挑选了旗下的一个建筑企业,因为他的ui很眼熟,让我想起来一个年初时候的...
Uncategorized
2.3k words
ABP is a renowned open-source .NET framework, and its “/api/abp/api-definition“ path within the framework leaks the API interfaces within the project. Within this, we can identify the API paths inherent to the ABP framework itself. like api/abp/xxx The leaked API path of ABP itself is not the primary danger, as it is quite limited. However, developers using this framework may not realize that the APIs in their own projects are directly exposed within the api-definition file. Consequently, ...
Uncategorized
5.6k words
ssti 和 jail除去渲染部分其实利用的是一样的,都是寻找执行链条 这里常用用来寻找的几个方法分别为 摘自 https://www.cnblogs.com/h0cksr/p/16189741.html 12345678910111213__class__ 返回类型所属的对象// __base__和__mro__都是用来寻找基类的__mro__ 返回一个包含对象所继承的基类元组和方法在解析时按照元组的顺序解析。(继承链)__base__ 返回该对象所继承的基类__subclasses__ 每个新类都保留了子类的引用,这个方法返回一个类中仍然可用的的引用的列表//通过以上几个魔法函数找到可利用的模块和object父类__init__ 类的初始化方法__globals__ 对包含函数全局变量的字典的引用//__dir__()和__dict__可以帮助我们找到需要类方法 __dir__() 更多的可以参考这个文章类特殊成员/函数https://www.cnblogs.com/twotigers/p/7779501.html__dict__ 为了方便用...
9.9k words
nmap1234567891011121314151617 └─$ sudo nmap -sS 10.129.19.179 -p- --min-rate 3000 [sudo] password for fonllge: Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-09-08 01:47 EDT Stats: 0:0...
ctf
2.9k words
main调用puts输出 看vuln 这里应该是个read写入到var_38h位置 共可以写入0x40个(我的Cutter有点问题不显示具体函数名。 var_38一共长度0x38 ,因为上面read读0x40个,所以只可以溢出到rbp的下一个8位,也就是正好覆盖返回地址。 因为溢出长度不够干啥,所以这里考虑栈迁移到bss。 首先溢出覆盖到rbp给个bss的地址,然后返回地址再给个vuln的地址 这么做是为了,使得rbp直接在初次执行到最后的经过leave也就是mov rsp,rbp pop rbp,之后rbp pop到我们指定的bss的位置,然后再次执行vuln为了往rbp跳过去的bss的var_38部分写东西,方便再跳一次。 123456789101112131415from pwn import *context(terminal=['tmux','new-window'])p=gdb.debug('./pwn',"b main")context(os="linux"...
7.2k words
nmap 123456789101112└─$ sudo nmap -sS 10.129.32.130 -p- --min-rate=3000 Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-08-25 00:43 EDTWarning: 10.129.32.130 giving up on port because retransmission cap hit (10).Nmap scan report for monitorsthree.htb (10.129.32.130)Host is up (0.56s latency).Not shown: 65532 closed tcp ports (reset)PORT STATE SERVICE22/tcp open ssh80/tcp open http8084/tcp filtered websnpNmap done: 1 IP address (1 host up) scanned in 43.77 se...
5.1k words
这个周中间因为事情比较杂,又要交漏洞维持生计又要准备一些可有可无的比赛,所以这个机器分了好几天抽时间打的,所以就简单记一下容易出疏漏的重点部分 nmap扫到有22,80,3000 80 其中有一个上传功能玩了下没啥东西 不过这边倒是有说他们在招什么技术栈的人所以简单记录下 然后除了几个人员名字就没东西了 3000这个当时我是开着bp进的 然后放了下包看请求是blazor 当时想法肯定就是想办法看他的blazor的map,看拿到dll看有没有泄露之类的 然后尝试访问了下他的_framework/blazor.boot.json,发现不存在,这就很神奇 但同时她的html里又有_framework/blazor.server.js,所以有两种可能 1.他隐藏起来了 2.我思路有问题 这里接着玩了玩着实没啥收获,然后把肉眼能见的东西都拿去搜看有没有漏洞 除了80的上传着实看不出他是干啥之外,收获了一个80web服务存在ssrf 然后就去访问了下3000的blazor map,发现还是没有 然后就ffuf跑端口 12345678910111213141516171819202122...