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, ...
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__ 为了方便用...
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"...
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...
这个周中间因为事情比较杂,又要交漏洞维持生计又要准备一些可有可无的比赛,所以这个机器分了好几天抽时间打的,所以就简单记一下容易出疏漏的重点部分
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...
Nmap
123456789└─$ sudo nmap -sS 10.129.114.121 -p22,80 -sV --min-rate=2000Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-08-11 00:35 EDTNmap scan report for 10.129.114.121 (10.129.114.121)Host is up (0.45s latency).PORT STATE SERVICE VERSION22/tcp open ssh OpenSSH 8.2p1 Ubuntu 4ubuntu0.11 (Ubuntu Linux; protocol 2.0)80/tcp open http Apache httpd 2.4.41 ((Ubuntu))Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
vhost
这爆破时候全有,估计是个泛配置,所以访问了了几个发现没啥区别就没再跑了
dir
1234567891011...
USER在他的gitea的example中有暴露他git的版本号。
不知道为什么我本地搭的用python的临时http一直报错,没办法最后用的他自己的git
参考https://github.com/Basyaact/CVE-2024-32002-PoC_Chinese
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455#!/bin/bash# Set Git configuration optionsgit config --global protocol.file.allow alwaysgit config --global core.symlinks true# optional, but I added it to avoid the warning messagegit config --global init.defaultBranch main # Define the tell-tale path#tell_ta...
UserNmap1234567891011└─$ sudo nmap -sS 10.129.118.118 -p22,80,3000 -sV --min-rate=3000 Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-07-21 02:48 EDTStats: 0:00:10 elapsed; 0 hosts completed (1 up), 1 undergoing Service ScanService scan Timing: About 66.67% done; ETC: 02:48 (0:00:05 remaining)Nmap scan report for 10.129.118.118 (10.129.118.118)Host is up (0.43s latency).PORT STATE SERVICE VERSION22/tcp open ssh OpenSSH 8.9p1 Ubuntu 3ubuntu0.10 (Ubuntu Linux; protocol 2.0)80/tc...