自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 新博客搬迁

终究还是自己搭建博客

2024-03-30 19:29:53 177

原创 [渗透测试学习] PermX-HackTheBox

路径下以及防止目录穿越,最后就是目标必须是文件。由于是www-data的shell没什么权限,在本机开启http服务。开始是在阿里云漏洞库找并没有收获,后面去CVE官网找到可利用漏洞。如果存在的话,就可以允许将任意文件上传到Web根目录下的。,然后修改root用户对应的密码即可提升至root权限。su切换到root用户,得到root的flag。这里网上找了篇利用漏洞的文章,按照文章打就行。下对应用户为mtz,尝试用数据库密码登录。登陆成功,拿到user的flag。访问马的上传路径,成功命令执行。

2024-08-01 16:19:23 227

原创 [渗透测试学习] Editorial-HackTheBox

观察前面可以输入网址加载书籍信息,我们在本机监听下80端口,输入我们本机的ip后点击Preview。不过由于存在ssrf漏洞,我们可以抓包探测端口情况。只有这一个脚本能利用,我们查看下GitPython版本。路由应该是书籍作者的信息,继续使用ssrf内网探测。尝试文件上传一句话木马,不过并没有回显上传路径。,我们前面在扫描的时候就知道22端口是开放的。脚本第一个参数可控,刚好对应exp的。访问80端口,类似于阅读书籍的网站。我们访问此路由,发现存在信息泄露。存在文件上传路径,访问一下。

2024-08-01 16:16:38 207

原创 DK盾-CTFers赞助计划

DK盾-CTFers赞助计划,师傅们快来。

2024-06-24 22:26:54 213

原创 [渗透测试学习] SolarLab-HackTheBox

得知reportlab是一个用于生成PDF和图形的Python库,并且存在Python Reportlab 代码注入漏洞(CVE-2023-33733)修改一下脚本中执行的命令为反弹shell,测试发现是windows系统,用在线网站生成powershell版本的shell。发现第7列对应的键值可能是凭证之类的,用github上的openfire工具后台管理密码解密。并且用户登录的用户名的尾部是大写字母,我们尝试对其爆破出用户。大概翻了一下没有什么可以利用的,我们查看下连接的端口情况。

2024-06-15 16:19:58 351

原创 [渗透测试学习] BoardLight-HackTheBox

Enlightenment 0.25.4之前版本中的enlightenment_sys允许本地用户获得特权,因为它是setuid root,并且系统库函数错误处理以/dev/.开始的路径名。不过大部分漏洞都要登录到后台界面才能利用,猜测存在admin用户。下看到larissa用户,尝试用上面得到的数据库密码去ssh连接。在测试CVE-2023-30253的时候搜到网上现成的poc。用参考文章的exp打就行,得到root的flag。同理添加到hosts文件即可访问,注意到。,添加到hosts文件中成功访问。

2024-06-15 16:16:02 357

原创 [渗透测试学习] Runner-HackTheBox

在本机开启监听6150端口,并执行反向连接,然后靶机主动去监听ip为10.10.14.60的本机并将9000端口映射到本机9000端口。是个管理容器的平台,点击容器查看docker版本为25.03,对应runc版本1.0.0-rc93。这里注意到9000端口是开放的,使用工具chisel搭建隧道把目标9000端口映射到本地。拿到user的flag,由于不知道john的密码,无法用sudo提权。发现状态码为401,将该子域名添加到hosts文件,访问是登陆界面。下载下来后,在users文件找到用户及密码。

2024-06-15 16:14:07 310

原创 [渗透测试学习] IClean-HackTheBox

我们可以利用其参数读取root的flag(注意要在tmp目录下才能下载root.txt)参数,网上搜索发现qpdf是一个内容转换工具,有对应的使用文档。得到cookie后我们来验证一下,使用cookie成功访问。回显49应该就是Jinja2,直接payload测试一下(先识别一下是什么加密,然后john爆破记得加上format。直接反弹shell(注意bash命令URL编码一下)(xss注入的payload均url编码过)勾选上去抓包,测试各个参数是否存在注入。路由可以,应该是经过身份验证跳转到。

2024-06-15 16:10:17 130

原创 [渗透测试学习] TwoMillion-HackTheBox

由于路由是admin的,大概率是要admin的email。,我们只能回到刚刚的update路由下再看看,我们添加上email参数值为我们注册的邮箱,回显如下。参数应该是用来判断是否为admin用户,我们添加上并改为1后发包。,应该是要添加Content-Type解析json数据。得到admin用户的密码,那么我们直接连接本地数据库。,成功提权(该目录还有其他师傅传的exp)路由,用PUT请求可以更新user的设置。不过没什么用,因为我们可以直接ssh连接。我们不妨看看源码是如何注入的,查看下。

2024-04-18 21:08:59 208 2

原创 [渗透测试学习] Pov-HackTheBox

在Windows操作系统中,SeDebugPrivilege是一种特别强大的权限,可以让持有该权限的进程读取或修改几乎所有其他进程的内存空间,即使是那些以系统或管理员级别运行的进程。winlogon.exe 是 Windows 的登录系统进程,它在用户登录时启动,并处理用户登录和注销的过程。当用户输入用户名和密码后,winlogon.exe 验证用户的凭据,并启动用户环境。在呈现页面的 HTML 期间,页面的当前状态和回发期间要保留的值将序列化为 base64 编码的字符串。

2024-04-18 20:55:38 201 1

原创 [渗透测试学习] Monitored-HackTheBox

MIB文件中的变量使用的名字取自ISO和ITU管理的对象标识符(object identifier)名字空间。一个特定对象的标识符可通过由根到该对象的路径获得,一般网络设备取iso节点下的对象内容。任何一个被管理的资源都表示成一个对象,称为被管理的对象。MIB是被管理对象的集合。它定义了被管理对象的一系列属性:对象的名称、对象的访问权限和对象的数据类型等。可以控制服务,注意到npcd文件可控,并且能够以root用户执行npcd服务的开启和关闭,因此可以在npcd服务中加入一段反弹shell来提权。

2024-04-18 20:49:59 210 2

原创 [渗透测试学习] Headless-HackTheBox

说明思路没错,那么我们可以利用xss注入得到admin的cookie值,payload如下。发现只有admin才可以,我们注意到cookie值为JWT加密,拿到揭秘网站验证下猜想。都是payload触发点,但是message参数值的不同。有的是下图这样而有的是。cookie为user用户,那么我们要想访问必须拿到admin的cookie。而我们在根目录下并没有找到该sh文件,那么我们可以简单利用一下。路径存在类似提交留言的功能,应该是存在xss注入。经过多次尝试,发现我触发payload的条件必须在。

2024-04-18 20:44:32 140

原创 [NKCTF 2024]web解析

create内为null,并且也没有其他可以引用的对象,这时候想要逃逸我们要用到一个函数中的内置对象的属性arguments.callee.caller,它可以返回函数的调用者。本题是考察如何沙箱逃逸实现RCE,waf过滤很多,process被办意味着我们需要用别的手段去得到process对象,中括号被办就不能利用js特性拼接绕过,接下来是最为精彩的一步,利用javascript内置函数去返回一个属性描述符(PropertyDescriptor)对象,其中包括value也就是属性值。

2024-03-25 22:59:52 1203

原创 [HGAME 2023 week2]Designer

路由接受POST传参,如果满足if条件则返回flag,,注意到token值会包含flag。创建新的页面,并且将req.body对象编码为查询字符串导航到所给的本地url,接着执行js代码。然后我们插入xss代码,借助eval函数和atob函数(用来base64解码,不能有=)去执行。我们要想得到flag,就得拿到正确的token值,也就是为admin用户并且ip是本地。路由中的对本地的请求外带到我们自己服务器上,从而得到他跳转时的正确token。jwt解一下会发现是假的flag,那么我们只需要借助。

2024-03-25 22:54:55 243

原创 [NSSRound#18 Basic]web解析

也就是说需要门酱自己网站的链接去跳转,由于我们通过xss语句已经插入到img的src中实现跳转到元梦之星。按照提示和php开发仓库入侵有关,搜出来刚好是对应题目php版本,可以利用。我们要跳转到元梦之星用到location去跳转,最基础的payload。点开评论区不难发现应该是想玩元梦之星,这里有个评论功能可以上传图片。所以我们只需要抓包跳转时的界面,就可以得到门酱跳转时的请求参数值。nc连接的靶机上传脚本比较麻烦,所以我们写马利用蚁剑上传。打开题目提示在/root里面,应该是最后要提权。

2024-03-15 16:02:51 613

原创 [渗透测试学习] Hospital - HackTheBox

直接下载shell.php然后上传,用bp将php后缀改为phar(后面测试了一下发现pht后缀会有问题,只能显示源码不解析)文件构造curl命令我们本地的nc程序,然后Brown使用解释器打开后触发该命令下载nc程序;由于我们前面namp扫描出3389端口是ms-wbt-server服务,我们就可以尝试连接一下。那么我们可以在刚刚连接的windows靶机上,curl我们本地的shell文件来实现RCE。我们查看当前用户的哈希值,发现有drwilliams的。

2024-01-15 22:55:21 292

原创 [NSSCTF Round#16 Basic]RCE但是没有完全RCE

不过我们可以试试利用数组绕过正则,然后如何让eval函数接收的参数为字符串而不是数组格式。所以思路可以是找到参数shell中的函数可以解析cmd参数的嵌套函数,或者是直接system函数利用最直接的命令绕过(试验后发现走不通),又或者是绕过正则判断而使得eval函数命令执行的时候不报错。,想要利用system直接读取flag会发现正则绕不过去,如果在cmd参数的值包含了嵌套的函数就会仅仅被当成字符串从而无法解析,比如。这里会先把GET传参的参数md5_1和md5_2变成字符串,然后MD5函数处理要强等于;

2024-01-14 18:02:52 607

原创 [渗透测试学习] Surveillance -HackTheBox

仔细分析此payload的执行过程,原来是调用的call_user_func函数只有一个参数,想反弹shell就卡住了。那么我们添加下域名然后访问80端口,发现是企业网站尝试扫描子域名和目录无果后,用Wappalyzer插件看看。具体是指参数user的值可以为文件,那么我们可以上传shell脚本然后利用其user参数实现getshell。使用工具LinPEAS,我们现在本地开启http服务,然后使用curl命令去弹。本地转发的777端口为target,然后1028为nc监听的端口。

2024-01-11 22:56:28 275

原创 [渗透测试学习] Redeemer - HackTheBox

Redis(Remote Dictionary Server)是一种开源的内存数据结构存储系统,也被称为键值存储数据库。Redis 是什么类型的数据库?从以下选项中进行选择:(i) 内存数据库,(ii) 传统数据库。连接到Redis服务器后,使用哪个命令来获取Redis服务器的信息和统计信息?select+index(索引号,此处选择0号索引)表示选择索引为0的数据库。使用哪个命令在 Redis 中选择所需的数据库?目标机器上使用的Redis服务器版本是什么?哪个命令用于获取数据库中的所有密钥?

2024-01-11 16:27:32 325

原创 [渗透测试学习] Appointment - HackTheBox

我们在 Gobuster 中使用什么开关来指定我们要发现目录,而不是子域?返回的网页第一个单词是什么?HTTP 协议的默认端口是80,HTTPS 协议的默认端口是443,因此HTTP服务器在这些端口上等待请求。Nmap 报告在目标的 80 端口上运行的服务和版本是什么?MySQL 中可以使用什么单个字符来注释掉一行的其余部分?“未找到”错误的 HTTP 响应代码是什么?最常见的 SQL 漏洞类型之一是什么?HTTPS 协议使用的标准端口是什么?Web 应用程序术语中的文件夹是什么?SQL 缩写代表什么?

2024-01-11 16:25:06 249

原创 [渗透测试学习] Crocodile - HackTheBox

问题: 我们从FTP服务器下载的“allowed.userlist”中听起来权限更高的用户名是什么?问题:匿名连接到FTP服务器后,我们可以使用什么命令下载在FTP服务器上找到的文件?问题:我们可以用目录暴力识别哪个PHP文件,从而提供向web服务进行身份验证的机会?问题:使用FTP客户端连接到FTP服务器后,当提示匿名登录时,我们提供什么用户名?问题:我们可以在Gobuster中使用什么开关来指定我们正在寻找特定的文件类型?问题:在扫描过程中,什么NMAP扫描开关使用默认脚本?

2024-01-11 16:22:12 398 1

原创 [渗透测试学习] Responder - HackTheBox

问题:“page”参数的以下哪个值是利用本地文件包含(LFI)漏洞的示例:“french.html”、“//10.10.14.6/somefile”、“…/windows/system32/drivers/etc/hosts”、“minikatz.exe”问题:“page”参数的以下哪个值是利用远程文件包含(RFI)漏洞的示例:“french.html”、“//10.10.14.6/somefile”、“…问题:当使用IP地址访问web服务时,我们被重定向到的域是什么?问题: 管理员用户的密码是什么?

2024-01-11 16:20:56 434

原创 [渗透测试学习]Three - HackTheBox

使用命令通过指定的 S3 端点连接到 s3.thetoppers.htb,然后列出 thetoppers.htb 存储桶中的对象。问题:在没有DNS服务器的情况下,我们可以使用哪个Linux文件将主机名解析为IP地址,以便能够访问指向这些主机名的网站?问题:哪个命令行实用程序可以用于与在发现的子域上运行的服务交互?问题: 网站“联系人”部分提供的电子邮件地址的域是什么?问题:此服务器配置为运行用何种web脚本语言编写的文件?问题:在进一步枚举期间发现哪个子域?问题:发现的子域上运行的是哪个服务?

2024-01-11 16:19:08 349

原创 [渗透测试学习] Clicker - HackTheBox

NFS最大的功能就是可以透过网络,让不同的机器、不同的操作系统、可以彼此分享个别的档案(share files)。这个NFS服务器可以让你的PC来将网络远程的NFS服务器分享的目录,挂载到本地端的机器当中,在本地端的机器看起来,那个远程主机的目录就好像是自己的一个磁盘分区槽一样(partition),使用上相当的便利。否则,将会构建一个 MySQL 命令并执行它,因为拼接的路径为。很明显,保存的数据中只有nickname可以让我们写马,而如何修改nickname的值就和刚刚修改role一样的办法。

2024-01-10 20:16:27 828

原创 ejs默认配置 原型链污染

我们已经知道当编译模板时,它会使用多个配置元素来处理模板中的代码片段,并将其转换为可执行的 JavaScript 函数。不过其中大多数都使用。因此,对于用户提供的对象来说情况并非如此,从 EJS 维护者的角度来看,用户向库提供的输入不是 EJS 的责任。所有这些都发生在最终被调用的 Template 类的编译函数中,在这种情况下,当创建模板对象时,将使用受感染的选项。路由下,接收GET参数并赋值给data变量,然后黑名单检测,调用ejs模板进行渲染其中解析data的json数据,说明ejs配置可控。

2024-01-06 18:06:54 1223 3

原创 [ctfshow 2023元旦水友赛]web题解

按照waf_in_waf_php对name的值进行waf以及waf_in_waf_php中的hint是base64,并且结合。简单点讲,就是我们先对我们的chu0的值进行加密也就是标记,然后拼接在一起后进行过滤器解析,利用最后的base64-decode无法解析前面ctfshowshowshowwww的垃圾字符被去除掉,而我们的chu0的值则会被正确解析并保留。有一个特性,当GET和POST有相同的变量时,匹配POST的变量,那么就可以同时传参GET和POST即可绕过,也就是POST传参数字。

2024-01-05 15:33:49 2993 4

原创 [NSSRound#3 Team]This1sMysql

可是关键点是我们并不知道flag的位置以及文件名,所以无法直接include包含flag,那么我们尝试写入一句话木马,然后include包含它实现RCE。思路正确的,那么我们先解决注入的目录路径,这里利用option的**我们的思路就是上传phar文件,然后利用function.php的参数mysqlpath去phar伪协议读取然后命令执行。我们接着往下看,接收参数mysql包括对应键名进行sql数据库连接,可是我们并不知道具体的信息。然后我们POST上传,注意ip和端口是我们内网穿透的。

2024-01-05 15:20:26 838

原创 [SDCTF 2022]jawt that down!

时成功回显S,那么不妨大胆猜测下通过迭代的路径就是flag,比如。说明令牌有效时间只有两秒,我们可以尝试写脚本来实现绕过令牌过期。初步测试发现并不存在sql注入漏洞,只好扫一下目录发现有。我们将cookie中的值解密一下,发现验证失败。运行脚本后回显S,当我们修改为访问。看一下,搜索得到用户名和密码。通过查询json参数可以知道。点进去提示token错误。打开题目,存在登录框。登陆成功后发现有个N。

2024-01-03 14:44:05 487

原创 [GKCTF 2020]ez三剑客-eztypecho

如果有GET传参finish,则进入下面代码,如果有session值,那么unserialize函数反序列化,我们跟进到Typecho_Cookie::get()我们通过POST上传PHP_SESSION_UPLOAD_PROGRESS使得将上传文件信息保存到session,上传的文件就是files。得到payload后解决如何构造session,用的是PHP中的特性PHP_SESSION_UPLOAD_PROGRESS。的赋值逻辑,如果cookie存在key参数,那么该参数值赋值给。

2024-01-02 14:46:38 647

原创 [XDCTF 2015]filemanager

update命令涉及到参数newname以及从数据库中查找参数oldname值,而后面进行rename()的时候是文件名(不包括拓展名),并且后面拼接路径是从数据库中查找拓展名,那么是不是可以文件名为1.php,然后拓展名为空即可实现getshell。至于为什么选择在oldname注入,是因为文件上传的时候虽然做了转义但是文件名并不会发生改变,然后在rename的时候oldname是从数据库中找到,而我们在newname注入的话,会发生转义导致文件路径包含\。是从数据库中得到的,也就是说文件名。

2024-01-02 00:11:32 628

原创 [NCTF 2023] web题解

e /readflag命令中的e参数是用来执行一个外部命令的。第一个我们前文已经知道banned_users_regex()函数的具体执行过程,test()返回一个布尔值,由于我们刚刚测试过设置了全局标志,连续的执行 test() 方法会使其布尔值发生改变,我们往下看在app.use处发现会更新封禁用户正则信息。果然是扫出来几个插件,重点看向all-in-one-video-gallery和drag-and-drop-multiple-file-upload-contact-form-7以及对应的版本。

2023-12-31 09:14:15 1310

原创 [GKCTF 2021]easynode

要想得到token就必须登陆成功,我们注意到遍历黑名单进行匹配是弱等于,那么我们可以用数组绕过,但是后面调用substr会报错。username和password参数都需要验证,限制截取长度为20,然后进行sql语句查询返回结果。接收POST传参用户和密码,但是会经过safeQuery()函数处理,如果result[0]不为空则登陆成功返回token。符号,用foreach遍历黑名单去进行匹配,如果匹配到则替换成。本题是ejs模板注入,而addDIV是这样定义的。,然后key又是由data决定,也就是。

2023-12-28 12:10:06 692

原创 [NCTF 2022]calc

不过本地试了下不行,但是这种遍历赋值的方式对于字典的处理上不太一样,可以直接覆盖指定key的值,所以在对于我们的目标,覆盖os.environ是完全可行的。最后就是如何绕过os的检测,考点是python在处理utf-8中的非ascii字符的时候,会被转化成统一的标准格式。前两个条件肯定是满足的,后三个条件是用户可控的,所以这个if语句是肯定可以进入的。由于环境变量中是以字典的形式存在的,我们需要用到for来进行变量覆盖。我们抓包,然后将payload编码一下即可,成功反弹shell。只需要满足下面情况,

2023-12-27 13:14:50 518

原创 [渗透测试学习] Manager - HackTheBox

扫出来很多端口,其中80端口有http服务,88端口是采用一个身份验证协议kerberos,以及NetBIOS-SSN(端口139)和Microsoft-DS(端口445)都与SMB有关。如果我们已经满足了此攻击的先决条件,我们可以首先请求基于 SubCA 模板的证书。如果您只有“管理 CA”访问权限,则可以通过将您的用户添加为新官员来授予自己“管理证书”访问权限。但是会出现报错,重要的是通过与Kerberos同步时间来解决这些错误。通过管理 CA 和管理证书,我们可以使用 ca 命令和。

2023-12-25 10:57:59 1194

原创 pickle反序列化

与PHP类似,python也有序列化功能以长期储存内存中的数据。pickle是python下的序列化与反序列化包。python有另一个更原始的序列化包marshal,现在开发时一般使用pickle。与json相比,pickle以二进制储存,不易人工阅读;json可以跨语言,而pickle是Python专用的;pickle能表示python几乎所有的类型(包括自定义类型),json只能表示一部分内置类型且不能表示自定义类型。

2023-12-22 19:42:45 1627

原创 [MTCTF 2022]easypickle

这里虽然禁用操作符使得难以绕过,但是waf存在逻辑漏洞,也就是说pickle的对象是ser_data,而不是a,所以我们opcode中有os虽然被替换成Os,但是我们还是能执行opcode。因为反弹shell中是需要用到i参数的,而i参数会被检测,但是V操作码是可以识别\u的所以我们可以把我们的代码进行unicode编码然后放入payload中。接着进行if判断Rirb是否存在变量a中,然后进行pickle反序列化。路由下判断是否为admin如果是则先进行关键字替换和if判断,然后pcikle反序列化。

2023-12-22 19:39:17 583

原创 [渗透测试学习] Zipping - HackTheBox

只能说靠意识了,我们通过strace可以知道调用.so文件并且该文件不存在(也可以直接sudo运行该命令发现无限循环),所以我们自己写一个可以getshell的.so文件,调用即可拿到root权限。这个靶机打了两天,原因就在于文件上传的漏洞被修复了不能用截断攻击绕过(早点知道就好了hhh),然后至于密码为什么是那个。的文件,但是我们在该目录下并未找到此文件,那么我们可以利用动态链接库劫持,实现提权。要求是上传zip文件,那我们试试zip软链接读取文件。我们随便买一件商品,去到购物车的页面,bp抓包。

2023-12-21 14:47:43 1411

原创 [AFCTF 2021]google authenticator

然后就是提权,由于我们是反弹shell,而redis-cli需要交互模式,但是反弹shell不是交互模式,我们需要将非交互模式变为交互模式(就是进入终端)这里用的是redis-cli结合定时任务来反弹root权限的shell提权。利用redis提权方式有几种,主从复制版本问题用不了,写马权限不够。然后开启监听,过一会就会发现反弹shell成功并且是root权限。连接上后发现权限不够,开始想用suid提权发现不行。我们下载下载该项目,然后按照给的exp修改一下。开启监听,过一会反弹成功得到root权限。

2023-12-20 12:39:29 505

原创 urllib2 HTTP头部注入

可以看到引入urllib2模块,题目逻辑比较清晰,就是要登录admin才能获取flag,admin的密码就在redis数据库中,然后input中使用了urllib2.open().info().headers应该是可以利用SSRF来注入redis修改admin的密码的。,然后修改Redis的数据库文件名为 evil,路径为默认端口的。我们以redis数据库为例,当存在SSRF时我们伪造以下请求。解码一下,执行过程就是将修改Redis的工作目录为。然后就可以执行相关操作,比如修改用户的密码。

2023-12-19 23:51:17 765

原创 Undefsafe 模块原型链污染(CVE-2019-10795)

Undefsafe 是 Nodejs 的一个第三方模块,其核心为一个简单的函数,用来处理访问对象属性不存在时的报错问题。也就是说当undefsafe()函数的第 2,3 个参数可控时,我们便可以污染 object 对象中的值。在编程时,代码量较大时,我们可能经常会遇到类似情况,导致程序无法正常运行,发送我们最讨厌的报错。可以知道引入undefsafe模块,由前文可以知道是存在原型链污染漏洞(CVE-2019-10795),那么我们来分析如何利用漏洞来实现rce的。那么如果访问不存在的属性呢,修改部分代码。

2023-12-19 11:41:52 413

空空如也

空空如也

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

TA关注的人

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