GitHub - natro92/SecSec: SecSec - 一个简单的安全论坛本地Markdown格式保存工具(先知、Freebuf、补天)如果有问题欢迎提issue,如果觉得好用欢迎star,谢谢! SecSec 是一个简单的安全论坛本地保存工具,可以将安全论坛的帖子保存到本地,方便查看和搜索。 开发原因有的时候一些好文章会被删除,或者某些内网环境需要搭建知识库。最开始打算使用html2pdf的方式,但是感觉对于本地搜索的功能的强度会较弱。所以打算使用爬虫的方式,将一些安全论坛的帖子保存到本地,方便查看和搜索。对于CTF离线环境的话,直接使用Obsidian等工具,可以直接将markdown文件夹导入,方便查看。由于版权的问题,这里不放出爬取结果,仅放出源码。 支持平台 Freebuf 先知社区 补天论坛 目前只选择了这三个规模较大论坛,其他内容待补充… 使用方法使用时建议使用venv环境,避免污染全局环境。 安装依赖 1pip install -r requirements.txt 首先先初始化生成chrome文件,可能需要一段时间,可以通过挂载代理 ...
这几天没有更新也是因为参加了这个,只能说自己太菜了,前几名的分就和刷的一样,最后靠学弟们近源打到点,勉强没有倒数第一,太强了orz。CTF和实战差点还是有点多,还是得学啊。 一脚踢进蜜罐,好悬没给我李宁干开线因为最开始要考六级,所以就晚了三天来了,后来发现根本打不到点。好不容易找个weblogic弱口令,刚踹进去,就被溯源了。后来一看网页,发现全是溯源api,什么获取各种cookie啊、ip之类的。其实如果看了一眼就能发现是蜜罐,但当时打的时候也没合计啊,它绑在官方子域名下,它表面是个Weblogic服务,用弱口令weblogic/Oracle@123就能登录进去。 12.Weblogic 弱口令 && 后台getshell漏洞 - bmjoker - 博客园 然后就是按照后台getshell一把嗦。后来才发现,和教程里的流程一模一样的。一套流程下来,也就顺理成章的被逮到。本来还是有点怀疑的,真的这么顺利吗,但是当上shell之后,过了两分钟关站重启了,我以为是被应急了,最后一点怀疑也都没了,现在想想,应该是蜜罐的定时重启。后面扫内网的时候发现,同时扫到若干个不同家 ...
前言最后是第五名,只能说缺少绿盟根本不太可能进决赛,FW了,纯靠PWN✌。 吐槽说实话办的不咋地,加固没有权限,浪费了一上午时间。中午十二点半刚开靶机就放开打了。因为权限的问题,没法修改PWN和Java的题目,就没让Check这两个,但是最后事实上三个服务的没有check。而且据B神说,好像有的服务器,在两个端口开了两个服务。当时没注意,如果真是这样的话我只能呃呃了。SSH一直在被人改,但是由于也没有修和check的环节,登上了也没有权限,所以意义不大。在这里点名批评绿盟的交flagapi,cookie过期的太快了,后面都是手动交的flag。而且最后半个小时中的两轮都没有刷新flag。可能刷不刷新也没啥区别了。但是由于没有php这些的权限,就导致WAF这些都没上了,但是似乎有的队还是开起来了。而且刚Fix的阶段,就有人在一直往服务器里面写不死马,因为开了文件检测,能看到后台一直在删除。问裁判,比赛结束都没给个回应。而且打的Java,他们开的通防改的flag,举报了裁判这边也没有啥办法解决。后面Pwn还不会批量打,靠PWN一个一个ip打,一个一个交吃的保底分混过的。 Webphp除了那个 ...
Python
未读问题前几天看到关于页面的部分图片不显示,当时全部换语雀的图床时候没注意。 尝试解决后来发现没加载出来的代码都是因为加载的图的位置是背景图,也就导致不能使用之前的禁用referrer策略来绕过防盗链。比如:这里使用了css来设定背景图,或者:都是使用css来设定url内容。就导致修改插件并没有检测到img元素,没有使用替代策略。首先想到的解决方案是给元素加上禁用策略,但是后面读了文档之后发现:无论用不用css,禁用策略只对a、img、area等起作用。所以即使添加上了还是加载不出来。再然后考虑就是单独开请求访问,fetch的参数上使用禁用策略,虽然这种方式可以,但是会加重前端的压力,我现在用的这个主题,已经很笨重了,再加几个js,可能会更卡,所以这个方案也后考虑。然后就考虑换图床,但是其他的图片都直接使用的语雀的,单独为几张图片开一个付费图床不太值。有考虑放在静态文件位置,但是会加速vercel的流量消耗,而且因为cdn比较差,使用效果也不太好。因此别的方法都不行的话再考虑这个。 解决方案后面就想到用vps将图片解析并缓存,类似cdn的方式。但是突然想到可以让一些放开引用策略的网站去获取 ...
简单Spring项目开一个简单的Spring项目,设置Server URL为https://start.aliyun.com/spring.io的启动没有java8,记得修改构建模式为Maven。选择一个基础的Spring Web依赖就可以。然后为其添加一个TestController 123456789101112131415package com.natro92.springtest.demos.web;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.ResponseBody;@Controllerpublic class TestController { @ResponseBody @RequestMapping("/") public String test() ...
前言看到某个题里面用了,但是还没学过,这里就系统地学习一下Java的内存马,这部分再重学一下基础,并且复习一下开发这部分。跟着调试一下里面的细节。其中部分内容、学习路线来自于: GitHub - W01fh4cker/LearnJavaMemshellFromZero: 【三万字原创】完全零基础从0到1掌握Java内存马 讲的真不错,推荐一下。 准备知识 Tomcat 架构原理解析到架构设计借鉴_牛客博客 Tomcat的四种容器中,Engine、Host、Context、Wrapper中关系如下。如果需要访问一个https://domain1.xx.com:8080/user/list 首先请求到Tomcat服务器,Tomcat的每个连接器都监听着不同的端口。例如HTTP连接器默认监听8080端口,AJP连接器监听8009端口。因此这里被HTTP连接器接收,而HTTP连接器是属于Service组件,而有一个Service中有一个容器组件,Service中的Engine也被选中。 Service和Engine被确定了之后,Mapper(保存着容器组件和访问路径的映射)会 ...
BlueTeam
未读前言前段时间面试了某个蓝中,问了个流量辨别,但是准备的不太好,问了两个问题就被拿下了。因此这里简单学习分析一下常见的蚁剑和冰蝎3的流量特征。后面可能会补充其他的几个。 Antsword 蚁剑测试方法antsword代理设置为yakit的miit抓包端口: shell内容1<?php class G40yQ75K { public function __construct($H8744){ @eval("/*Z#h*u@!hyP709104P*/".$H8744."/*Z#h*u@!hyP709104P*/"); }}new G40yQ75K($_REQUEST['123']);?> default模式分析正常执行命令:ls请求包 12345678POST /antsword.php HTTP/1.1Host: 192.168.111.11:9290Accept-Encoding: gzip, deflateContent-Length: 4878Content-Type: ...
前言当时打长城杯复赛的时候不会修Jar包,解压开了后面就不会弄了,导致虽然知道怎么改代码,但是后面让人一直被打扣分,正巧这几天看到了一个相关的教程,就学习一下。这里从长城杯复赛的jar文件测试(DocToolKit)。 冷补丁修改jar包-方法一准备反编译所需要的jar文件: cfr-0.152.jar 用来将class文件反编译为java文件 百度网盘 DocToolkit 密码:PASS 需要操作编译的jar文件 然后使用decompile.sh脚本,批量转换class文件: 123456789101112131415#!/bin/bash# WSL运行# 设置CFR JAR文件的路径CFR_JAR="cfr-0.152.jar"# 设置class文件的根目录CLASS_ROOT="src/main/java"# 查找所有的class文件并反编译为java文件find $CLASS_ROOT -name "*.class" | while read class_file; do # 获取class文件的目录和文件 ...
前言最后排名是58,又被爆杀了,全程被队友抬了,不出意外的话应该能进复赛。 Web 以下内容为赛后总结,并非比赛时wp。 simple_php1234567891011121314<?php ini_set('open_basedir', '/var/www/html/');error_reporting(0);if(isset($_POST['cmd'])){ $cmd = escapeshellcmd($_POST['cmd']); if (!preg_match('/ls|dir|nl|nc|cat|tail|more|flag|sh|cut|awk|strings|od|curl|ping|\*|sort|ch|zip|mod|sl|find|sed|cp|mv|ty|grep|fd|df|sudo|more|cc|tac|less|head|\.|{|}|tar|zip|gcc|uniq|vi|vim|file|xxd|base64|dat ...
前言当时打这个的时候有事没看,现在复现一下。 Please_RCE_Me123456789101112131415<?phpif($_GET['moran'] === 'flag'){ highlight_file(__FILE__); if(isset($_POST['task'])&&isset($_POST['flag'])){ $str1 = $_POST['task']; $str2 = $_POST['flag']; if(preg_match('/system|eval|assert|call|create|preg|sort|{|}|filter|exec|passthru|proc|open|echo|`| |\.|include|require|flag/i',$str1) || strlen($str2) != ...