代码规范系列|黑盒挖掘-命令注入
1、前言
命令注入是什么?
程序员使用脚本语言(比如PHP)开发应用程序过程中 , 脚本语言开发十分快速、简洁 , 方便 , 但是也伴随着一些问题 。 比如说速度慢 , 或者无法接触系统底层 , 如果我们开发的应用,特别是企业级的一些应用需要去调用一些外部程序 。 当应用需要调用一些外部程序时就会用到一些执行系统命令的函数 。
当用户可控点可以使用管道符进行命令拼接 , 或者参数点的过滤不严格 , 从而可以被绕过 , 就有可能会导致Web服务器程序权限被继承 , 去执行系统命令、读写文件、反弹shell、甚至控制整个服务器等危害
【代码规范系列|黑盒挖掘-命令注入】PHP常见命令执行函数:system()、exec()、shell_exec()等
2、常见的命令
拼接符单管道符(|)
将前面一条命令的执行结果 , 作为后面一条命令的执行参数

文章图片
双管道符(||)
或命令 , 执行前面的命令 , 如果前面的命令执行结果错误 , 则执行后面的命令并返回输出 , 如果前面的命令执行正确 , 则只执行前面的命令

文章图片
双连字符(&&)
与命令 , 如果前面的命令执行成功则执行后面的命令 , 反之不执行

文章图片
3、案例
在某站点使用账号密码进行登录 , 然后购买某个服务

文章图片
填写信息--->商标图样自动生成处存在命令注入

文章图片
在商家名称处输入单引号 , 页面报错

文章图片
刚开始 , 尝试测试SQL注入 , 但是发现常见函数均未定义 , 沉思ing…
仔细看了看报错信息 , 发现有提示Commandfailed , 和‘curl’命令 , 并且有一些参数设置 , 开始思考是否存在命令注入
拼接命令
cmd命令

文章图片
得知当前用户权限是root
4、防御技巧
禁用部分敏感函数
严格过滤关键字符(管道命令)
使用自定义函数或函数库来代替外部命令
最小特权原则返回搜狐 , 查看更多
责任编辑:
- 小米|小米最强影像旗舰!小米12S系列海报泄密:徕卡标变白了
- 小米|小米12S系列官宣7月4日正式发布:小米与徕卡联合研发
- 疑似iQOO 10系列渲染图被曝:背部拼接设计辨识度拉满
- 红米手机|红米两款新机曝光,Note12系列和K50 Ultra已安排,拍照大幅提升
- GeForce|英伟达GeForce RTX 4090系列渲染图曝光:FE版将超过三槽规格
- 无边框|华硕灵耀X 13体验:AMD锐龙6000系列加持 超轻薄的本子也很能打
- iqoo|iQOO 10系列搭载蓝厂自研V1 ISP芯片 有望首发天玑9000+新机版本
- 腾讯|Reno8系列发布新色花仙紫:工艺全新升级,暑假换机还有限时礼盒
- iPhone14|苹果iPhone 14系列参数全确认,果粉不淡定了:太丑、太逗!
- 6月23日消息|讯飞AI翻译笔P20系列发布:单词、课文全能扫
