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");...
java反序列化
0x01前言因为前面学习了java的一些基础知识,java反序列化也算是搁置了很久的知识点,所以就来学习一下关于这个java反序列化的知识点 参考文章和视频: JAVA反序列化漏洞总结-青叶 java序列化与反序列化全讲解 Java反序列化漏洞专题-基础篇(21/09/05更新类加载部分) 0x02正文什么是java反序列化Java 序列化是指把 Java 对象转换为字节序列的过程便于保存在内存或文件中,实现跨平台通讯和持久化存储,而反序列化则指把字节序列恢复为 Java 对象的过程。(这个的话在之前学ctfshow里头的反序列化篇也有详细的介绍过) 为什么需要序列化我们知道,当两个进程进行远程通信时,可以相互发送各种类型的数据,包括文本、图片、音频、视频等,...
SSTI的积累
前置知识模板引擎首先我们先讲解下什么是模板引擎,为什么需要模板 模板引擎可以让(网站)程序实现界面与数据分离,业务代码与逻辑代码的分离,这大大提升了开发效率,它可以生成特定格式的文档,利用模板引擎来生成前端的 HTML 代码,模板引擎会提供一套生成 HTML 代码的程序,然后只需要获取用户的数据,再放到渲染函数里,接着生成模板 + 用户数据的前端 HTML...
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: ...
极客大挑战2024wp--web
0x01前言极客2024没来得及比赛就结束了,所以下面的都是后面复现去做的 0x02赛题baby_uploadhint:Parar说他的黑名单无懈可击,GSBP师傅只花了十分钟就拿下了他的权限,你看看怎么绕过呢 先上传一个php文件看看 有过滤,把文件内容删掉后测试发现存在后缀名验证,先看看能不能绕过这个,后面我随便上传一个图片都显示上传失败,有点神奇 换个思路,先随便在url中传入一个路径 版本apache2.4.10,CVE-2017-15715,然后当时就复现了一下写在另一篇文章了,这里直接给payload 先上传我们的一句话木马然后抓包 12345678910111213141516171819202122232425262728293031323334353637POST /index.php HTTP/2Host: 80-74c251eb-096f-471b-ac79-241c6f54f8bc.challenge.ctfplus.cnCookie: _ga=GA1.1.143187499.1742196271;...
CVE-2017-15715漏洞复现
漏洞信息0x01漏洞描述Apache HTTPD是一款HTTP服务器,它可以通过mod_PHP来运行PHP网页。其2.4.0~2.4.29版本中存在一个解析漏洞,此漏洞的出现是由于 apache 在修复第一个后缀名解析漏洞时,用正则来匹配后缀。在解析 php 时 xxx.php\x0A 将被按照 php 后缀进行解析,导致绕过一些服务器的安全策略。 0x02影响版本Apache HTTPD 2.4.0~2.4.29 0x03漏洞分析index.php源码 12345678910111213141516171819202122232425262728293031323334<?phpif(isset($_FILES['file'])) { $name = basename($_POST['name']); $ext = pathinfo($name,PATHINFO_EXTENSION); if(in_array($ext, ['php', 'php3',...
极客大挑战2020wp--web(已做完)
web-Welcome#请求方法+sha1哈希绕过 打开是405错误,抓包后看到是Method Not Allowed 搜索后发现是请求方式错误,换成POST传参就可以拿到源码了 1234567891011121314<?phperror_reporting(0);if ($_SERVER['REQUEST_METHOD'] !== 'POST') {header("HTTP/1.1 405 Method Not Allowed");exit();} else { if (!isset($_POST['roam1']) || !isset($_POST['roam2'])){ show_source(__FILE__); } else if ($_POST['roam1'] !== $_POST['roam2'] &&...
CVE-2019-11043漏洞复现
漏洞信息漏洞描述Nginx 上 fastcgi_split_path_info 在处理带有 %0a 的请求时,会因为遇到换行符 \n 导致 PATH_INFO 为空。而 php-fpm 在处理 PATH_INFO为空的情况下,存在逻辑缺陷。攻击者通过精心的构造和利用,可以导致远程代码执行。 利用条件:nginx配置了fastcgi_split_path_info 受影响系统:PHP 5.6-7.x,Nginx>=0.7.31 那我们先来看一下nginx.conf中的具体配置 12345678910111213location ~ [^/]\.php(/|$) { ... fastcgi_split_path_info ^(.+?\.php)(/.*)$; fastcgi_param PATH_INFO $fastcgi_path_info; fastcgi_pass php:9000; ...} 解释一下 1fastcgi_split_path_info ^(.+?\.php)(/.*)$; 这一行将请求 URI...