解决nginx 反代 tomcat 应用不能获取到正确域名 技术文章
今天在帮朋友迁移部署tomcat应用得时候遇到了这么个问题:原来是在Windows服务器上直接使用tomcat部署到80端口的,新机器是Linux+宝塔面板,要是直接部署到80端口,其他网站或者nginx这类的就只能换端口,很是不方便,我就建议她使用nginx反代tomcat应用,那么问题就来了,我不是第一次使用nginx反代,但是之前都是反代后端的网络应用,不存在这些问题,使用宝塔添加了网站后,把应用上传到tomcat的webapps目录下,名称为shop,在网站设置启用tomcat,但是测试的时候就发现后端不能获得网站使用者正确的请求域名,获取的是本地的,http://127.0.0.1:8080/shop/xxxxxx,导致出现一些bug,返回的路径是本地的:
经过初略阅读+搜索应用源代码,找到了关键代码:
想吐槽一下这个程序员,不合格!!!这都9102年了,判断居然没有443???WTF!!!不让程序使用SSL???什么操作。。。
先说一下这个 request.getServerName() ,根据API上写的:
Reconstructs the URL the client used to make the request. The returned URL contains a protocol, server name, port number, and server path, but it does not include query string parameters.
也就是说, getRequestURL() 输出的是不带query string的路经(含协议 端口 server path等信息).
并且,还发现:
request.getScheme() //总是 http,而不是实际的http或https request.isSecure() //总是false(因为总是http) request.getRemoteAddr() //总是 nginx 请求的 IP,而不是用户的IP request.getRequestURL() //总是 nginx 请求的URL 而不是用户实际请求的 URL response.sendRedirect( 相对url ) //总是重定向到 http 上 (因为认为当前是 http 请求)
接下来就该批斗宝塔了!
看看默认的启用tomcat的配置里面没有 proxy_set_header Host $host;
最关键的就是没有这个,导致后端的Java程序的 request.getServerName() 获取不到正确的域名!
所以解决办法也简单,那就是在你的反代location里面加上 proxy_set_header Host $host; 后端就可以正确获取到当前的浏览器域名了。完事儿。
最后说一下,如果后端不是我上面说的那个不合格的程序员写的没有判断HTTPS的话,只需要在location里面添加 proxy_set_header X-Forwarded-Proto $scheme; 即可正确处理HTTPS了。
日常踩坑记录。。。
参考:
https://www.cnblogs.com/interdrp/p/4881785.html
https://blog.csdn.net/tpkey/article/details/18550039
Shodan 庆祝成立10周年,会员优惠1$ 资源分享
不多说,如果你搞渗透测试或者信安,这些东西不知道Shodan的话,就不用看了。
今天在Shodan 的官方twitter看到,他们的活动通知,
在UTC时间23号一天里只需要1$即可购买成为会员,算成北京时间就是明天早上八点结束。
可以使用PayPal或者是信用卡支付,你也可以找人代付,但是这个只有20次下载,但是你可以不用下载,自己写脚本用API查询,导出数据。活动地址,shodan.io/store/member 快上车,其他时间只有一年一度的黑五优惠,是5$,100次。
最新iCloudBypass一键移除iphone 5s — iphone x 的ID锁 业界新闻
注:此方法适用于破解忘记ID密码的设备,支持iphone 5s — iphone x的全版本系统设备。
目前只能在Mac os系统环境下执行 (黑苹果可以而安装虚拟机则无法使用)
iphone 5s — iphone x
图文简要教程
使用checkra1in工具越狱:
手机连电脑,点start——next,start,跟着提示手动进DFU就好了
https://github.com/crazymind90/iCloudBypassCA
如果不能安装,提示未知来源之类等,解决方法:登录管理员用户,从 Apple 菜单中选取“系统偏好设置”选取“安全性与隐私”打开,选择仍要打开,(勾选上任何来源,就不会显示通知了,但是不建议这么做!)不会设置的参考:https://support.apple.com/zh-cn/HT202491 ,还不会就不要折腾了。。。
安装后打开安装iCloudbypass后打开如图:
-
复制上图上的1所指小框框的内容,粘贴,回车
-
待跑完代码后,复制上图上的2所指小框框的内容,粘贴,回车
-
最后点击“Move iCloud to Trash”即可
https://youtu.be/qSXzgrVhWgE
视频下载:
链接: https://pan.baidu.com/s/1BAzN0jw3iYFMpxHBSCIv5A 提取码: mrxn
最后:
如果没有忘记ID密码的设备,不要自己加难度,强行试验,根本没有必要!
此工具为第三方工具,理论上是有风险的,使用需谨慎。
CVE-2019-12409/Apache Solr由于错误配置JMX RMI导致远程代码执行漏洞 业界新闻
0x1 背景
Solr是apache的顶级开源项目,它是使用java开发 ,基于lucene的全文检索服务器。
Solr仅新版本 8.1.1, 8.2.0受到该漏洞影响,Solr用户不应该把自身的 Solr 集群暴露于公网之中。
在Linux 下的环境下的Apache Solr 8.1.1和8.2.0版本中默认启用不安全配置(ENABLE_REMOTE_JMX_OPTS="true"),如果开启JMX监听服务,可能导致远程代码执行的风险,建议使用Apache Solr的用户尽快更新到无漏洞版本或
由于 Solr 新版默认启动时开启JMX服务,如果你的服务器是在公网上,请立即做好环境网络配置自查工作,或关闭JMX相关功能。
0x2 漏洞详情
Java ManagementExtensions(JMX)是一种Java技术,为管理和监视应用程序、系统对象、设备(如打印机)和面向服务的网络提供相应的工具。
JMX 作为 Java的一种Bean管理机制,如果JMX服务端口暴露,那么远程攻击者可以让该服务器远程加载恶意的Bean文件,随着Bean的滥用导致远程代码执行。
CVE-2019-12409漏洞:在Linux 下的环境下的Apache Solr 8.1.1和8.2.0版本存在默认不安全配置(ENABLE_REMOTE_JMX_OPTS="true"),通过该配置开启RMI服务(默认监听在TCP 18983端口)后,攻击者可利用网上公开的JMX漏洞利用工具进行远程代码执行(RCE)攻击,从而获取服务器权限。
1.启动一个可以被用于远程类加载的 MLet web服务
2.使用JMX服务使目标服务器远程加载恶意类
3.调用恶意 Bean 实现代码执行
0x3 漏洞证明
0x4 修复&缓解措施
临时缓解措施:
本次官方更新主要更新配置选项ENABLE_REMOTE_JMX_OPTS为false,因此在不影响业务系统正常运行的情况下,可以直接修改Apache Solr的bin目录里的solr.in.sh配置文件中的ENABLE_REMOTE_JMX_OPTS字段值为false,修改完配置需要重启服务才能生效。
附漏洞POC利用地址:
https://github.com/jas502n/CVE-2019-12409
参考地址:
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-12409
https://nosec.org/home/detail/2544.html
https://www.n0tr00t.com/2015/04/17/JMX-RMI-Exploit-Demo.html
https://github.com/mogwailabs/mjet
配合chrome浏览器console解密一段JSFuck代码["\x66\x69\x6c\x74\x65\x72"] 技术文章
在测试某个项目的时候,发现一段JavaScript代码,省略不重要的部分如下:
// 原内容如下,只知道有个正则
['mmh']["\x66\x69\x6c\x74\x65\x72"]["\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x6f\x72"](((['mmh'] + [])[
"\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x6f\x72"]['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'][
'\x61\x70\x70\x6c\x79'](null,
"33s102Y117y110O99L116H105n111u110Z40g41U123u102m117c110M99m116T105y111d110"
'\x73\x70\x6c\x69\x74')))('mmh');
// 在JavaScript中对于\x66这种开头的,\x代表这是一个16进制,直接在console里面打印出来就ok
// console.log('\x66\x69\x6c\x74\x65\x72') => filter
// 然后依次打印所有的类似字节即可得到如下转码后的JavaScript代码
// 如果你到这里不知道如何下手的话,怎么办?搜索啊!Google搜索以下 XXXX是什么 就有结果了
// 或者把全部\x66这种解密后得到的相关字符串去搜索就有结果了
// 下面看一下jsfuck对照表,然后解密
// false => ![]
// true => !![]
// undefined => [][[]]
// NaN => +[![]]
// 0 => +[]
// 1 => +!+[]
// 2 => !+[]+!+[]
// 10 => [+!+[]]+[+[]]
// Array => []
// Number => +[]
// String => []+[]
// Boolean => ![]
// Function => []["filter"]
// eval => []["filter"]"constructor"()
// window => []["filter"]["constructor"]("return this")()
// 解码后的代码如下,为了节省字符,使用mrxn123代替代码中的超长字符串
['mmh']["filter"]["constructor"](((['mmh'] + [])["constructor"]['fromCharCode']'apply'))('mmh');
// 根据jsfuck对照表,我们去掉mmh,这样就是熟悉的原滋原味的jsfuck格式的代码了
[]["filter"]["constructor"]((([] + [])["constructor"]['fromCharCode']'apply'))();
// 根据eval对照[]["filter"]"constructor"(),我们只需要把code部分代码直接console.log()出来就好
console.log(((([] + [])["constructor"]['fromCharCode']'apply')));
// 输出:{
// 同样的姿势将开始用mrxn123替换掉的字符串替换回去,回车,OK!JavaScript源码就出现在控制台了
Burp Suite Professional 2.1.05及burp-loader-keygen-2_1_05.jar下载 安全工具
其实Burp Suite Professional 2.1.05及burp-loader-keygen-2_1_05.jar出来好几天了,差不多就在burp官方portswigger 5号更新后第三天就流出来了,先上一张最新版的截图吧!必须要有图,哈哈
但是最近很忙没有第一时间更新,知道的,要过年了!努力加班挣过年钱啊,没钱的年就和难过了啊!最近国内环境也不好,整个大环境也不太好,各方面的都收紧了。不可能暴富,那就只有积累了,不管是你的长辈积累还是自己积累都需要时间,见过娱乐圈内好几个暴富的都进去了!(Helen 进去了,他其实还不算暴富。。。)
子曰:君子爱财,取之有道;贞妇爱色,纳之以礼。——《增广贤文》
哔哔这么多只是想说:做个遵纪守法的好P民!不要信什么鬼闷声发大财,这就是赌博,简直是豪赌!如果你的运气好的爆棚自己搞,在下佩服,兄嘚牛逼!别后悔就行!
好了,言归正传,本次更新根据官网的说明,主要有以下几点:
1.支持在扫描时使用内嵌的Chromium 浏览器,一边支持使用JavaScript动态生成渲染的数据页面。
2.支持JavaScript的表单单击提交事件等等
3.burp内置的JRE升级到了Java12
但是也有很多的注意事项:
1.性能差,在接下来慢慢优化
2.支持链接和表单的JavaScript点击事件
3.接收XHR异步请求但是不会审查
4.在不和服务器交互的情况下,不能正确处理某些DOM
5.不支持Frames 和iframes
6.不支持文件上传
总之,不推荐使用,如果希望尝鲜,就看下面的:
说一下最新版的Burp Suite Professional 2.1.05如何使用。
首先,所有的破解、汉化或使用burpsuite都是在你配置好了Java环境的前提下!!!推荐使用Java8比较稳定。
不知道如何配置Java环境的,GitHub项目里有一份如何在64位Windows 10下安装java开发环境的教程,请按照操作,其他的系统自行Google或者是多吉搜索(又名狗狗搜索,https://www.dogedoge.com/),百度搜教程真的是百毒。。。
在配置好了Java环境后,就可以开始破解burp、汉化、创建快捷方式等等操作。这些都有教程,具体的请在我的GitHub项目查看,项目在这篇文章已经说过:BurpSuite Pro破解版[BurpSuite Cracked version]+汉化脚本(windows)+常用插件(sqlmap.jar,bypasswaf.jar等)分享
Burp Suite Professional 2.1.05 2.1.04 1.7.37都可以在项目的release下载到,但是release默认没有打包插件和书籍这些。
大家可以关注我GitHub,star,fllow我!拉一波票 (~o ̄3 ̄)~,我一般是最新更新GitHub,博客最后看心情更新。