CVE-2019-12272 OpenWrt图形化治理界面LuCI敕令注入剖析 | 申博官网
登录
  • 欢迎进入申博官网!
  • 如果您觉得申博官网对你有帮助,那么赶紧使用Ctrl+D 收藏申博官网并分享出去吧
  • 这里是申博官方网!
  • 申博官网是菲律宾sunbet官网品牌平台!
  • 申博开户专业品牌平台!

CVE-2019-12272 OpenWrt图形化治理界面LuCI敕令注入剖析

申博_新闻事件 申博 104次浏览 已收录 0个评论

破绽简介

· OpenWrt LuCI是一款用于OpenWrt(Linux发行版)的图形化设置界面。

· OpenWrt LuCI 0.10及之前版本中的admin/status/realtime/bandwidth_status和admin/status/realtime/wireless_status端点存在敕令注入破绽。该破绽源于外部输入数据组织可实行敕令历程当中,网络系统或产物未准确过滤个中的特别元素。攻击者可应用该破绽实行不法敕令。

环境搭建

· 因为OpenWrt中自带LuCI,只须要运用虚拟机一般运转OpenWrt即可,在这里运用VMware运转OpenWrt虚拟机。

· OpenWrt版本:Chaos Calmer OpenWrt 15.05.1

· 下载地点:https://archive.openwrt.org/chaos_calmer/15.05.1/x86/generic/openwrt-15.05.1-x86-generic-combined-ext4.img.gz
装置胜利后胜利接见LuCI主页:

CVE-2019-12272 OpenWrt图形化治理界面LuCI敕令注入剖析

设置上岸密码后胜利上岸:

CVE-2019-12272 OpenWrt图形化治理界面LuCI敕令注入剖析 

为了直接剖析LuCI源码,在虚拟机中找到LuCI的地点并运用tar打包:

CVE-2019-12272 OpenWrt图形化治理界面LuCI敕令注入剖析 

因为openwrt中没有文件下载工具,而LuCI已把目次映照了,直接将打包文件挪动至http映照目次下,走http下载LuCI源码:

CVE-2019-12272 OpenWrt图形化治理界面LuCI敕令注入剖析 

POC

传入Payload: http://192.168.153.4/cgi-bin/luci/admin/status/realtime/bandwidth_status/eth0$(id>cmd):

CVE-2019-12272 OpenWrt图形化治理界面LuCI敕令注入剖析 

胜利实行敕令:

CVE-2019-12272 OpenWrt图形化治理界面LuCI敕令注入剖析 

破绽剖析

· LuCI采用了典范的MVC三层架构,并运用Lua剧本开辟;在剖析要求时,起首进入admin/status.lua中的controller进口举行路由,然后挪用响应的model举行处置惩罚。
而破绽的触发点是在controller的bandwidth_status函数中,该函数将用户传入的字符串直接格式化到敕令中并实行,造成了RCE。

· 代码详细实行历程以下: 运用HTTP接见途径/admin/status/realtime/bandwidth_status(或wireless_status)/[param],起首进入index entry举行路由,在路由中运用dispatcher的call函数挪用了action_bandwidth函数: Controller/index.lua:

CVE-2019-12272 OpenWrt图形化治理界面LuCI敕令注入剖析 

dispatcher.lua中的call函数:

CVE-2019-12272 OpenWrt图形化治理界面LuCI敕令注入剖析 

​极客必知:iPhone备份番外篇

如果你长期混迹于密码破解的第一线,那么就非常清楚破解相同内容的不同文件格式对破解的速度的影响是非常大的。例如,破解保护RAR文档密码所需的时间是破解具有相同内容的ZIP文档密码的十倍,而破解保存在Office 2016中的Word文档需要的

然后,进入action_bandwidth函数,url剖析路由以后的部份将被当作参数传入,未过滤而运用%q直接将参数格式化到字符串中。%q将在iface外包裹双引号。
运用io.popen实行敕令,在bash下,双引号中的$()或“会实行,从而到达敕令实行的目标:

CVE-2019-12272 OpenWrt图形化治理界面LuCI敕令注入剖析 

此处相当于实行敕令:sh -c luci-bwc –i “eth0$(id>cmd)” 2>/dev/null:

CVE-2019-12272 OpenWrt图形化治理界面LuCI敕令注入剖析 

运用EXP实行ping敕令后,可以在openwrt下检察到实行的敕令:

CVE-2019-12272 OpenWrt图形化治理界面LuCI敕令注入剖析 

exp剧本

剧本已上传:https://github.com/HACHp1/LuCI_RCE_exp 实行结果:

CVE-2019-12272 OpenWrt图形化治理界面LuCI敕令注入剖析 

斜杠绕过

在实行的敕令中须要斜杠(/)时,因为途径剖析的题目,斜杠没法运用,此时可以斟酌运用bash内置变量来替换。

碰到的坑

· 最最先的时刻斟酌运用${HOME:0:1}来替换。然后发明并不能胜利。然则直接在敕令行中、从新开一个lua剧本实行、直接在lua交互处实行却都可以实行。

· 末了发明题目竟然是在LuCI中$HOME变量没有值,然则在一般状况是有值的,在此处卡的时候很长。

解决办法

在LuCI中,${PATH:0:1}是没有被变动的,可以直接运用。测试payload为:ls ${PATH:0:1}。

破绽修复计划剖析

检察源码修复破绽的处所,新的源码运用gsub将iface中的单引号去掉,并在最外层加上了单引号,如许全部iface参数就仅作为字符串而不会被实行:

CVE-2019-12272 OpenWrt图形化治理界面LuCI敕令注入剖析 

在源码中输出一下:

CVE-2019-12272 OpenWrt图形化治理界面LuCI敕令注入剖析 

Iface参数被单引号包裹,作为r参数传入luci-bwc,不会实行ls敕令:

CVE-2019-12272 OpenWrt图形化治理界面LuCI敕令注入剖析 

写在末了

· 全部破绽与半年前爆出的thinkphp RCE都与路由剖析和controller相干,可见MVC构建的controller处比较轻易涌现安全破绽。因为MVC模子的特征,Controller是MVC形式函数挪用的进口,假如攻击者可以掌握controller或许可以注入并应用controller,就轻易涌现破绽。

原文地点: https://www.4hou.com/vulnerable/19135.html


申博|网络安全巴士站声明:该文看法仅代表作者自己,与本平台无关。版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明CVE-2019-12272 OpenWrt图形化治理界面LuCI敕令注入剖析
喜欢 (0)
[]
分享 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址