记录黑客技术中优秀的内容,传播黑客文化,分享黑客技术精华

漏洞简析——CWE-259:使用硬编码的密码漏洞

2021-08-28 05:33

对于硬编码密码,Immunity公司威胁情报负责人曾表示,这项常见的开发者漏洞不仅广泛存在,而且在短时间内似乎也不太可能被彻底解决。早在2016年Fortinet防火墙发现硬编码后门,尽管该公司否认硬编码密码是后门,称这个漏洞是一个管理身份认证问题,但还是非常可疑。倘若攻击者利用此漏洞,可以直接获取Fortigate最高管理权限,控制设备进行如抓取流量监听、DNS欺骗、建立隧道进入企业内网等攻击行为。



一、什么是使用硬编码的密码?

软件包含一个硬编码的密码,该密码用于自己的入站身份验证或与外部组件的出站通信。

这种处理方式一方面不易于程序维护,在代码投入使用后,除非对软件进行修补,否则无法修改密码。另一方面会削弱系统安全性,硬编码密码意味着拥有代码权限的人都可以查看到密码,可以使用密码访问一些不具有权限的系统,更严重的是如果攻击者能够访问应用程序的字节码,利用一些反编译工具就能阅读到代码,可以轻易获得密码。



二、使用硬编码的密码漏洞的构成条件有哪些?

程序中采用硬编码方式处理密码。



三、使用硬编码的密码漏洞会造成哪些后果?

如果使用硬编码的密码,攻击者将很可能通过该帐户获得访问权限。由于硬编码密码允许我们无需用户名或者验证实现设备登录,因此其往往会带来多种潜在使用途径,甚至会泄漏部分敏感信息。



四、使用硬编码的密码漏洞的防范和修补方法有哪些?

对于入站身份验证:对密码应用强单向散列,并将这些散列存储在具有适当访问控制的配置文件或数据库中。

对于出站身份验证:将密码存储在代码之外的一个经过严格保护的、加密的配置文件或数据库中,该配置文件或数据库不会被所有外部人员访问,包括同一系统上的其他本地用户。



五、使用硬编码的密码漏洞的防范和修补方法有哪些?

以下代码使用硬编码的密码连接到数据库:

public static void main(String[] args)

{

CreateDB db = new CreateDB();

Connection connection = null;

try

{

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();

}

catch (Exception e)

{

System.out.println("Failed to load DB driver");

e.printStackTrace();

}

try

{

connection = DriverManager

.getConnection("jdbc:odbc:;DRIVER=Microsoft Access Driver (*.mdb);DBQ=c:/webgoat.mdb;PWD=webgoat","webgoat", "webgoat");

db.makeDB(connection);

}

catch (Exception e)

{

System.out.println("Driver Manager failed!");e.printStackTrace();

}

……

使用Wukong软件代码安全检测修复系统检测上述程序代码,则可以发现代码中存在着“使用硬编码的密码”的安全漏洞。请见下图:

 

使用硬编码的密码在CWE中被编号为:CWE-259:Use of Hard-coded Password

文章来源于互联网:漏洞简析——CWE-259:使用硬编码的密码漏洞


知识来源: https://secvery.com/6313.html

阅读:673166 | 评论:0 | 标签:漏洞

想收藏或者和大家分享这篇好文章→复制链接地址

“漏洞简析——CWE-259:使用硬编码的密码漏洞”共有0条留言

发表评论

姓名:

邮箱:

网址:

验证码:

黑帝公告 📢

十年经营持续更新精选优质黑客技术文章Hackdig,帮你成为掌握黑客技术的英雄

客黑业创的万千入年个一

❤用费0款退球星,年1期效有员会

🧠富财控掌,知认升提,长成起一💡

标签云 ☁