博文

目前显示的是标签为“安全”的博文

XXE漏洞解决记录

图片
        内网漏洞平台报了一个XXE漏洞,是我们一个服务域名的根路径,刚一看还以为是弄错了,查了一下代码,果然存在这样的跟路径Controller。看了下逻辑,该服务是用于接收微信的事件通知的,微信是以xml格式提交过来的请求,代码中对XML的解析没有做特殊处理,于是乎。。。         接到工单后,搜了一下xxe漏洞,简单作个了解,原因XML协议中允许引入外部实体声明。这个外部实体的引用就给了不法分子很大的想象空间。外部的实体引用是个url,写成内部文件路径,可以扫描系统任意路径的文件,写成黑各自己服务的路径,可以收集服务器的信息,写成内网服务地址,可以攻击内网服务,再随意更换ip和端口,可以扫描端口等等。小小一个漏洞,可以利用的地方居然这么多,赶紧修复。 先在本地用postman构造注入的xml内容,模拟注入请求,服务B按预期收到了服务A的请求。 SAXReader reader = new SAXReader(); reader.setFeature("http://xml.org/sax/features/external-general-entities", false);  reader.setFeature("http://xml.org/sax/features/external-parameter-entities", false);  Document document = reader.read(xml); 加上以上红色的代码后,再次发送注入请求,服务B不再收到服务A的请求。 自测没问题后,开始上线流程,上完线后,自己用微信关注,取关公众号,服务均能正常接收微信上报过来的事件报文,回归完毕。 参考: https://blog.csdn.net/zhengpeitao/article/details/82142869 https://www.cnblogs.com/r00tuser/p/7255939.html https://www.jianshu.com/p/77f2181587a4

记一次网络劫持问题排查与解决

问题爆露:用户反馈登录超时,一直登录不上站酷 我们自己测试登录正常,大部分用户登录也正常,远程到用户的机器上去 监控浏览器发送的ajax请求,看发送的数据及返回接收的数据,发现在回来的数据中嵌入了一段js代码 < script charset = "utf-8" async = "true" src = " http://t.5txs.cn/rb/i7.js "></script> 再回到我们的服务器上监控,看返回给用户的内容是没有这些脚本的 那猜测就是用户的运营商劫持了网站的返回数据强行插入广告 html页面返回的话,这段脚本会在页面的右下角加载出来广告 JSONP请求会因为这段脚本导致请求失败 到现在就遇到难点了, http://peterkwok.blog.51cto.com/272862/1793569 https://www.v2ex.com/t/286936 http://www.zhihu.com/question/20418863 https://qifu.me/at201602211724/ https://www.google.com.hk/?gws_rd=cr,ssl#newwindow=1&safe=strict&q=http:%2F%2Ft.5txs.cn%2F https://whois.aliyun.com/whois/domain/5txs.cn?spm=5176.8076989.339865.13.nWf9vs&file=5txs.cn 等等 也没有找到现成的可行的解决方案 想过投诉,想过报案,想过让用户去投诉他们的网络运营商,也想过各种技术方案,最终还是只能通过技术方案来缓解这个问题 之前想过技术解决方案,也总是觉着这个事,再改变技术实现,改框架等等,实现起来有点困难,有点不值 后来跟多个同事沟通,王杰,刘越,芦传,许立志,梁鹏,刘强,等等,最终强哥给了一个思路,自己实现jsonp,改写里面的处理逻辑, 之前王杰也提过这样的想法,但我认为jsonp是一个标准化的东西,是不可改的东西,这点评估有一定的失误,只是因为对jsonp的底层不是很了解 ...