CTFhub——RCE命令注入

守給你的承諾、 提交于 2021-01-13 07:29:12


文章源自【字节脉搏社区】-字节脉搏实验室

作者-墨子辰

扫描下方二维码进入社区

什么是命令行注入漏洞

命令行注入漏洞是指应用有时需要调用一些执行系统命令的函数, 如: 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

通知!

公众号招募文章投稿小伙伴啦!只要你有技术有想法要分享给更多的朋友,就可以参与到我们的投稿计划当中哦~感兴趣的朋友公众号首页菜单栏点击【商务合作-我要投稿】即可。期待大家的参与~

记得扫码

关注我们

本文分享自微信公众号 - 字节脉搏实验室(zijiemaiboshiyanshi)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!