Sky's blog

Sky's blog

热爱Web的蒟蒻一叶飘零/Flappypig&Whitzard

2019西湖论剑AD攻防Web题解
前言上周参加了西湖论剑线下赛,在AD攻防赛中喜迎冠军,以下是AD攻防赛中2道web的题解。 Web1 - typecho整体源码如下因为是typecho CMS,所以肯定有已知CVE,由于之前审计过,这就不重新分析了,只分析人为加入的。 漏洞1 - 反序列化CVE1https://skysec.top/2017/12/29/cms%E5%B0%8F%E7%99%BD%E5%AE%A1%E8%AE%A1-typecho%E5%8F%8D%E5%BA%8F%E5%88%97%E6%BC%8F%E6%B4%9E/ 可参加我以前分析的这篇文章,构造如下序列化,进行RCE1234567891011...
从PHP底层看open_basedir bypass
前言有国外的大佬近日公开了一个php open_basedir bypass的poc,正好最近在看php底层,于是打算分析一下。 poc测试首先测试一下:我们用如上源码进行测试,首先设置open_basedir目录为/tmp目录,再尝试用ini_set设置open_basedir则无效果,我们对根目录进行列目录,发现无效,返回bool(false)。我们再尝试一下该国外大佬的poc发现可以成功列举根目录,bypass open_basedir。那么为什么一系列操作后,就可以重设open_basedir了呢?我们一步一步从头探索。 ini_set覆盖问题探索为什么连续使用ini_set不会...
Some Trick About LFI
前言最近遇到一些文件包含的题目,在本篇文章记录两个trick~ 环境背景复现环境还是很容易搭建的:例题1(php7)index.php12345678<?php$a = @$_GET['file'];echo 'include $_GET[\'file\']';if (strpos($a,'flag')!==false) { die('nonono');}include $a;?> dir.php123456<?php$a = @$_GET['dir'];if(!$a){$a = '/tmp';}var_dump(scandir(...
Pwnhub-Always be with U-Writeup
前言正逢pwnhub有比赛,于是做了一下题目,以下是题解 Happy Tree Friends题目概述拿到题目12345678910111213141516171819#!/usr/bin/env python3import zlibfrom Crypto.Cipher import AESimport sysimport osfrom hashlib import md5flag = open("flag.txt").read()while True: data = input() data = "message: %s, flag: %s" % (data, flag) ...
PHP Parametric Function RCE
前言最近做了一些php 无参数函数执行的题目,这里做一个总结,以便以后bypass各种正则过滤。大致思路如下:1.利用超全局变量进行bypass,进行RCE2.进行任意文件读取 什么是无参数函数RCE传统意义上,如果我们有1eval($_GET['code']); 即代表我们拥有了一句话木马,可以进行getshell,例如但是如果有如下限制123if(';' === preg_replace('/[^\W]+\((?R)?\)/', '', $_GET['code'])) { eval($_GET['code']);} 我们会发现我们使用参数则无法通过正...
2019 0CTF Web WriteUp
前言二刷0ctf,去年被虐的很惨,今年还是一样 :( Ghost Pepperjolokia/list发现karaf,动态路由安装webconsole……直接结束 Wallbreaker Easy拿到题目12345Imagick is a awesome library for hackers to break `disable_functions`.So I installed php-imagick in the server, opened a `backdoor` for you.Let's try to execute `/readflag` to get the f...
2018 Code Breaking(4) & phpmagic
前言前些日子有些忙,没有继续做,现在跟进,先看下之前做的几道题:2018 Code Breaking(1) & function :关于\的trick2018 Code Breaking(2) & pcrewaf:关于正则回溯的bypass手段2018 Code Breaking(3) & phplimit:php无参数函数执行RCE今天研究一下phpmagic这道题 题目概述拿到题目1http://106.14.114.127:24004/?read-source=1 发现源代码如下1234567891011121314151617181920212223242...
2018 Code Breaking(3) & phplimit
前言本次是phplimit这道题,本篇文章提供了3种解法,即如何利用无参数函数进行RCE/任意文件读取 题目概述题目源码如下:123456<?phpif(';' === preg_replace('/[^\W]+\((?R)?\)/', '', $_GET['code'])) { eval($_GET['code']);} else { show_source(__FILE__);} 代码非常清晰,首先1preg_replace('/[^\W]+\((?R)?\)/', '', $_GET['code']) 代码会将$_G...
2018 Code Breaking(2) & pcrewaf
题目概述题目源码如下123456789101112131415161718<?phpfunction is_php($data){ return preg_match('/<\?.*[(`;?>].*/is', $data);}if(empty($_FILES)) { die(show_source(__FILE__));}$user_dir = 'data/' . md5($_SERVER['REMOTE_ADDR']);$data = file_get_contents($_FILES['file']['tmp_n...
2018 Code Breaking(1) & function
前言Code Breaking是ph牛搭建的代码审计挑战赛:https://code-breaking.com刚发布的时候一直忙于开展研究生的生活和一些琐事,没法认真研究和学习,最近闲下来了,于是打算填下这个坑~题目ph牛均已开源至github:https://github.com/phith0n/code-breaking(必须star XD) 题目概述123456789<?php$action = $_GET['action'] ?? '';$arg = $_GET['arg'] ?? '';if(preg_match('/^[a-z0-9_]*$/isD', $action)...
avatar
一叶飘零
苟有恒,何必三更眠五更起。