article cover

冰蝎Behinder 4.1 双击提示:本地机器上没有找到编译环境 技术文章

前言

前几天冰蝎更新了4.1 版本,新版本更新后 直接双击 Behinder.jar 提示 本地机器上没有找到编译环境,为了正常使用自定义传输协议功能,请使用JDK(而非JRE)环境打开本软件。.习惯双击启动的可能不是特别适应去软件目录命令行启动,最终在t00ls看到了解决方案,分享给大家,也方便大家.

标签: 分享 Java

admin 发布于  2023-8-27 12:42 

HCMendetool-HCM宏景加解密工具 技术文章

简介

适用于宏景HCM的加解密,比如其sql注入漏洞或任意文件读取


admin 发布于  2023-8-5 09:47 

mac 无法卸载java xpc连接错误 技术文章

前言

出现这个错误一半是在mac的系统设置界面里的Java选项中,打开其Java控制面板后,进行更新的时候,当下载更新后,会提示你是否删除缓存之类,然后你确认是,就会报这个错误。
无法卸载 Java:xPC连接错误。

标签: Java

admin 发布于  2023-3-25 10:54 

解决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,返回的路径是本地的

后端返回的url信息.png

经过初略阅读+搜索应用源代码,找到了关键代码:

程序里的request.getServerName().png 

想吐槽一下这个程序员,不合格!!!这都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

标签: nginx Java

admin 发布于  2019-11-28 16:14 

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 漏洞证明

CVE-2019-12409 shell.jpg

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

标签: 漏洞 Java rce

admin 发布于  2019-11-19 22:03 

自定义百度网盘分享密码 (Javascript) 杂七杂八

转载自:GIUEM

首先看下效果吧。(一不小心就开车了)

链接: http://pan.baidu.com/s/1gf4jcQZ 密码: mrxn

原理:

分析代码发现,百度网盘的自定义密码是在本地生成的

d47c1458974231.jpg

这也就给了我们玩耍的机会。

实现方法:

不二 和 LiesAuer 他们都是采用构造请求的方法,我觉得不够 hacker,而且不太方便。

所以我决定采用 JS 的方式修改密码。

方法很简单:修改 makePrivatePassword 这一函数即可。

具体代码

说明:代码可以转载,但请不要说是你原创之类的话!!!

压缩版

javascript:require(["function-widget-1:share/util/service/createLinkShare.js"]).prototype.makePrivatePassword=function(){return prompt("请输入自定义的密码","1234")}
原版
require(["function-widget-1:share/util/service/createLinkShare.js"]).prototype.makePrivatePassword = () => {
  return prompt("请输入自定义的密码", "1234")
}

使用方法 :

别急,你可别复制走代码就用了,一不小心就会出现这样的错误:

Uncaught Error: Cannot find module `function-widget-1:share/util/service/createLinkShare.js`(…)

首先,选择要分享的文件,点击分享按钮。 这时候,按 F12 打开控制台,切换至 Console ,输入代码按回车即可。

当然,你也可以存为书签,点一下书签。 然后点击创建私密链接,会弹出输入框,输入密码即可!

 注意使用代码前要先点一下 分享 按钮,相关模块才会载入,这时候用代码才有效果。

45441458974365.gif

密码类型

必须是 4 个字符。

如:

abcd

1234

ab12

啊a (中文加一个数字或字母)

其他类型请各位自己探索,可在下方给我留言。

好像如果密码有中文,第一次访问时会提示错误,刷新一下才正常。


admin 发布于  2016-3-28 09:00 

关于A+B+C问题三种语言的解决办法,Java、C语言、Python 代码人生

原题是这个样子的:

这是一个非常简单的题目,意在考察你编程的基础能力。千万别想难了哦。输入为一行,包括了用空格分隔的三个整数A、B、C(数据范围均在-40~40之间)。输出为一行,为“A+B+C”的计算结果。

样例1

输入:

22 1 3

输出:

26

由于我也是刚刚接触Python,所以代码有点长,希望有大神可以指出,帮助我改进,在此 感激不尽!下面就开始贴上我的代码吧,顺序分别是Java、C、Python

Java:

import java.util.Scanner;
class Main
{
   public static void main(String[] args)  
   {   
          int a,b,c;
         Scanner input=new Scanner(System.in);
        a=input.nextInt();
        b=input.nextInt();
        c=input.nextInt();
         if((a>=-40&&a<=40)&&(b>=-40&&b<=40)&&(c>=-40&&c<=40))
        System.out.println(a+b+c);
        else
        System.out.println("erro");
    }
}



C语言:

#include<stdio.h>
int main(void) {
    int a, b, c;
    scanf("%d%d%d", &a, &b, &c);
    if(a > 40 || a < -40 || b > 40 || b < -40 || c > 40 || c < -40)
        return 0;
    printf("%d", a+b+c);

    return 0;
}



Python:

lst = raw_input().split(' ')
sum = 0
for i in lst:
    sum = sum+int(i)
print sum


至于其他的语言,比如什么C++/Ruby,目前还不会。暂且略懂贴出来的这三种语言外加PHP。还希望高手多多指教。最近博主比较忙,也就是要学习Python了,所以,更新估计会慢,还请大家多多包含,多多支持!谢谢!



admin 发布于  2015-12-17 01:17