cwe - 290:认证绕过被欺骗
视图定制的信息:
此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
相关的视图”研究概念”(cwe - 1000)
相关观点“软件开发”(cwe - 699)
简化映射的相关视图”缺点漏洞发布”(cwe - 1003)
相关视图”架构概念”(cwe - 1008)
不同模式的引入提供了信息如何以及何时可以纳入这一弱点。生命周期的阶段识别点的介绍可能发生,而相关的报告提供了一个典型的场景介绍在给定的阶段。
这个表指定不同的个人相关后果的弱点。标识应用程序范围的安全领域侵犯,而影响了负面的技术影响,如果敌人成功利用这个弱点。可能提供的信息如何可能的具体结果预计将看到列表中相对于其它后果。例如,可能会有高可能性,缺点将被利用来实现一定的影响,但较低的可能性,它将被利用来实现不同的影响。
示例1 下面的代码对用户进行身份验证。
(坏的代码)
例如语言:Java
字符串sourceIP = request.getRemoteAddr ();
如果(sourceIP ! = null & & sourceIP.equals (APPROVED_IP)) {
验证= true; }身份验证机制实现依赖于源验证的IP地址。如果攻击者能恶搞的IP,他们也许能够绕过身份验证机制。 示例2 这两个示例检查请求是否从一个值得信赖的地址之前回应请求。
(坏的代码)
例如语言:C
sd =插座(AF_INET SOCK_DGRAM 0);
serv.sin_family = AF_INET; serv.sin_addr。s_addr = htonl (INADDR_ANY); servr。sin_port = htons (1008); 绑定(sd (struct sockaddr *) &服务公司,sizeof(服务)); 而(1){
memset(味精,0 x0, MAX_MSG); }clilen = sizeof (cli); 如果(inet_ntoa (cli.sin_addr) = = getTrustedAddress ()) {
n = recvfrom (sd、味精、MAX_MSG 0 (struct sockaddr *) & cli &clilen); }
(坏的代码)
例如语言:Java
而(真){
DatagramPacket rp = new DatagramPacket (rData rData.length);
outSock.receive (rp); 字符串=新的字符串(p.getData (), 0, rp.getLength ()); InetAddress clientIPAddress = rp.getAddress (); int port = rp.getPort (); 如果(isTrustedAddress (clientIPAddress) & secretKey.equals () {
= secret.getBytes (); }DatagramPacket sp = new DatagramPacket (,。长度、IPAddress港口);outSock.send (sp); 只有验证地址的代码存储在请求数据包。攻击者可以恶搞这个地址,从而冒充一个可信的客户。 示例3 下面的代码示例使用DNS查找,以决定是否入站请求来自受信任的主机。如果攻击者可以毒DNS缓存中,他们可以获得信任的状态。
(坏的代码)
例如语言:C
struct hostent *惠普;struct in_addr myaddr;
char * tHost = " trustme.example.com "; myaddr.s_addr = inet_addr (ip_addr_string); 惠普= gethostbyaddr ((char *) &myaddr sizeof (struct in_addr) AF_INET); 如果惠普& & ! strncmp (hp - > h_name, tHost, sizeof (tHost))) {
信任= true; 其他}{
信任= false; }
(坏的代码)
例如语言:Java
字符串ip = request.getRemoteAddr ();
InetAddress addr = InetAddress.getByName (ip); 如果(addr.getCanonicalHostName () .endsWith (“trustme.com”)) {
信任= true; }
(坏的代码)
例如语言:c#
IPAddress hostIPAddress = IPAddress.Parse (RemoteIpAddress);
IPHostEntry hostInfo = Dns.GetHostByAddress (hostIPAddress); 如果(hostInfo.HostName.EndsWith (“trustme.com”)) {
信任= true; }IP地址比DNS名称更可靠,但他们也可以欺骗。攻击者可以很容易地建立发送的数据包的源IP地址,但响应数据包将返回到伪造IP地址。看到响应数据包,攻击者嗅受害者机器之间的交通和伪造IP地址。为了实现所需的嗅探,攻击者通常试图定位自己在同一子网的受害者的机器。攻击者可以绕过这个需求通过使用源路由,但源路由今天互联网的大部分地区是禁用的。总之,IP地址验证可以是一个有用的身份验证方案的一部分,但不应该把它所需的单因素身份验证。
这MemberOf关系表显示额外CWE类别和视图引用这个弱点作为成员。这些信息通常是有用的在理解一个弱点符合外部信息源的上下文中。
更多的信息是可用的,请选择一个不同的过滤器。
|
使用常见的弱点枚举(CWE)和相关的引用从这个网站的使用条款。CWE赞助的美国国土安全部(DHS)网络和基础设施安全机构(CISA)和管理的国土安全系统工程和发展研究所这是由(HSSEDI)manbetx客户端首页(斜方)。版权©2006 - 2023,斜方公司。manbetx客户端首页CWE、水煤浆、CWRAF, CWE标志是斜方公司的商标。manbetx客户端首页 |