代码规范系列|黑盒挖掘-命令注入
1、前言
命令注入是什么?
程序员使用脚本语言(比如PHP)开发应用程序过程中 , 脚本语言开发十分快速、简洁 , 方便 , 但是也伴随着一些问题 。 比如说速度慢 , 或者无法接触系统底层 , 如果我们开发的应用,特别是企业级的一些应用需要去调用一些外部程序 。 当应用需要调用一些外部程序时就会用到一些执行系统命令的函数 。
当用户可控点可以使用管道符进行命令拼接 , 或者参数点的过滤不严格 , 从而可以被绕过 , 就有可能会导致Web服务器程序权限被继承 , 去执行系统命令、读写文件、反弹shell、甚至控制整个服务器等危害
【代码规范系列|黑盒挖掘-命令注入】PHP常见命令执行函数:system()、exec()、shell_exec()等
2、常见的命令
拼接符单管道符(|)
将前面一条命令的执行结果 , 作为后面一条命令的执行参数
文章图片
双管道符(||)
或命令 , 执行前面的命令 , 如果前面的命令执行结果错误 , 则执行后面的命令并返回输出 , 如果前面的命令执行正确 , 则只执行前面的命令
文章图片
双连字符(&&)
与命令 , 如果前面的命令执行成功则执行后面的命令 , 反之不执行
文章图片
3、案例
在某站点使用账号密码进行登录 , 然后购买某个服务
文章图片
填写信息--->商标图样自动生成处存在命令注入
文章图片
在商家名称处输入单引号 , 页面报错
文章图片
刚开始 , 尝试测试SQL注入 , 但是发现常见函数均未定义 , 沉思ing…
仔细看了看报错信息 , 发现有提示Commandfailed , 和‘curl’命令 , 并且有一些参数设置 , 开始思考是否存在命令注入
拼接命令
cmd命令
文章图片
得知当前用户权限是root
4、防御技巧
禁用部分敏感函数
严格过滤关键字符(管道命令)
使用自定义函数或函数库来代替外部命令
最小特权原则返回搜狐 , 查看更多
责任编辑:
- 今天|第二代骁龙8即将发布,小米13系列年底亮相
- oppo reno8|你以为只是颜值嘛,当然不,OPPO Reno8系列告诉你什么叫做高配!
- Java|人像大师的养成,有一部vivo X80系列机型就够了
- 全新的vivo S15系列值得买吗?看完大V点评就知道了
- iPhone|iPhone14系列爆料不断,配置汇总,好消息和坏消息各占一半
- 数码|高颜值让人直呼“绝绝子”!数码博主晒出vivo S15系列精致大片
- 华为荣耀|荣耀手表GS3时刻系列不仅仅是智能手表和健身管家,更是时尚与力量的美
- 息屏显示|iOS 16代码实锤:苹果iPhone 14 Pro支持AOD息屏显示
- 华为nova9系列于去年9月发布|华为nova10系列月底发布主打自拍和视频影像
- 华为|上市两年终于“下架”了!华为全新一代Mate50系列即将闪亮登场