- 【web | CTF】攻防世界 Web_php_unserialize
星盾网安
CTF-Webphp开发语言
天命:这条反序列化题目也是比较特别,里面的漏洞知识点,在现在的php都被修复了天命:而且这次反序列化的字符串数量跟其他题目不一样file=$file;}//销毁时候触发,相当于是打印flag文件出来function__destruct(){echo@highlight_file($this->file,true);}//这个方法不会触发,估计是旧版本的php,满足某些情况所以没有触发//纯碎用来吓
- 【攻防世界】Web_php_unserialize
Miracle&
webweb安全网络安全
1.信息收集:从题目:知道反序列化;2.源码审计:file=$file;}function__destruct(){//析构函数在对象被销毁时自动调用,用于执行一些清理操作或释放资源。echo@highlight_file($this->file,true);}function__wakeup(){//在反序列化对象时自动调用if($this->file!='index.php'){//these
- Web_php_unserialize(攻防世界)
ha0cker
php开发语言web安全
1.打开环境,审计代码。file=$file;}function__destruct(){echo@highlight_file($this->file,true);}function__wakeup(){if($this->file!='index.php'){//thesecretisinthefl4g.php$this->file='index.php';}}}if(isset($_GET[
- 攻防世界-Web_php_unserialize
roast mouse
php网络安全
攻防世界-Web_php_unserialize分析php代码file=$file;}//析构函数function__destruct(){//打开指定文件,并高亮文件中内容,第二个为return参数,为true,函数将返回高亮显示的代码字符串,而不是直接输出到浏览器。echo@highlight_file($this->file,true);}//wakeup魔法函数,在反序列化之前调用。fun
- 【网络安全 | CTF】攻防世界 Web_php_unserialize 解题详析
秋说
CTFCTF网络安全web安全
文章目录代码审计解题思路wakeup绕过preg_match绕过base64绕过GET传参方法二代码审计这段代码首先定义了一个名为Demo的类,包含了一个私有变量$file和三个魔术方法__construct()、__destruct()和__wakeup()。其中:__construce()方法用于初始化$file变量__destruce方法用于输出文件内容__wakeup()方法检查当前对象的
- 攻防世界 Web_php_unserialize
Cyan1u
#攻防世界php
Web_php_unserializePHP反序列化看看代码file=$file;}function__destruct(){echo@highlight_file($this->file,true);}function__wakeup(){if($this->file!='index.php'){//thesecretisinthefl4g.php$this->file='index.php';
- 攻防世界-Web进阶区-unserialize3
hangshao0.0
Web安全PHPweb安全安全
题目相关内容之前其实就记录过一篇反序列化的。PHP反序列化-(web_php_unserialize)那个反序列化的题目,比这个复杂一些。既然好久没练,而且在攻防世界上看到了这个unserialize3的题目,就复习一下反序列化吧。解题步骤先new一个对象,然后将其序列化,代码如下:序列化的结果如下:"xctf":1:表示序列化的对象中只有一个属性,如果待反序列化的字符串中,属性个数与实际不符合,
- 攻防世界web进阶区Web_php_unserialize,序列化大详解
無名之涟
CTF
攻防世界web进阶区Web_php_unserialize详解题目详解正则魔术方法CVE-2016-7124wakeup绕过不同属性的对象序列化后字符格式是不一样的题目题目是一个php反序列化,这里放出了一个源码审计详解1-如果我们第一步匹配到了o或者c:数字:那么他会停止运行,停止运行后,会触发__destruct(),【问为什么,见魔术方法讲解】2-我们如何绕过__wakeup()呢?那么就是
- 攻防世界-Web_php_unserialize
mysmartwish
网络安全
原题解题思路注释说了flag存在f14g.php中,但是在wakeup函数中,会把传入的文件名变成index.php。看wp知道,如果被反序列话的字符串其中对应的对象的属性个数发生变化时,会导致反序列化失败而同时使得__wakeup失效(CVE-2016-7124的漏洞),所以这题其实是一个反序列化的题目。preg_match函数判断是否包含类似o:2的字符串,如果存在则中断程序执行,否则调用@u
- WEB:Web_php_unserialize
sleepywin
攻防世界网络安全
背景知识反序列化函数及绕过正则表达式及绕过题目源码解析(参考链接在最后)file=$file;}function__destruct(){echo@highlight_file($this->file,true);}function__wakeup(){if($this->file!='index.php'){//wakeup函数返回index.php所以必须绕过次函数//thesecretisi
- Web_php_unserialize,XCTF-Web_php_unserialize
段丞博
题目题目如下可以看出来这是一道关于反序列化的题目分析题目看一下题目的代码首先判断GET参数“var”是否存在,然后通过base64解码传入变量var,如果不存在就输出网页源码对var进行一个正则过滤,如果通过正则过滤便会进行反序列化,否则响应信息’stophacking!’题目中出现的魔术方法题目中存在一个demo类__contrust()见名知意,构造方法。具有构造方法的类会在每次创建新对象前调
- PHP反序列化+代码审计-xctf-Web_php_unserialize
菜爽哥
web安全php
启动靶场,发现没有其他地方可以利用,给了php代码,故审计代码。这里定义了一个Demo类,私有变量$file初始化为index.php,然后是2个PHP中的魔术方法:__construct(),创建时自动调用,用得到的参数覆盖$file__destruct(),销毁时调用,会显示文件的代码,题目提示flag在fl4g.php中,故这里要显示fl4g.php。__wakeup(),反序列化时调用,会
- PHP反序列化-(web_php_unserialize)
hangY0.0
ctf-web
题目内容代码分析可以很明显地看出这是一道PHP反序列化地题目首先判断当前是否存在GET参数”var”,若存在则对其进行Base64解码后存入$var变量.若不存在则输出当前页面源码对$var进行一个正则过滤,若通过正则过滤,则对其进行反序列化操作,否则响应提示信息1.题目中给出一个Demo类,需要注意一下其中三个魔术方法__wakeup()该方法是PHP反序列化时执行的第一个方法,unserial
- unserialize与__destruct、__wakeup
whisper_ZH
攻防世界:Web_php_unserialize**知识:PHP__wakeup()函数漏洞在程序执行前,serialize()函数会首先检查是否存在一个魔术方法__sleep.如果存在,__sleep()方法会先被调用,然后才执行串行化(序列化)操作。这个功能可以用于清理对象,并返回一个包含对象中所有变量名称的数组。如果该方法不返回任何内容,则NULL被序列化,导致一个E_NOTICE错误。与之
- 攻防世界xctf web Web_php_unserialize和warmup
caiji仔
Web_php_unserialize观察代码题目需要绕过__wakeup和preg_match(’/[oc]:\d+:/i’,$varfile=$file;}function__destruct(){echo@highlight_file($this->file,true);}function__wakeup(){if($this->file!='index.php'){//看到__wakeup
- 【攻防世界】——WEB高手进阶--Web_php_unserialize
c h e n�
上来就给了源码,一看就是代码审计file=$file;}function__destruct(){echo@highlight_file($this->file,true);}function__wakeup(){if($this->file!='index.php'){//thesecretisinthefl4g.php$this->file='index.php';}}}if(isset($_
- 关于攻防世界Web_php_unserialize 中的__weakup绕过
ackeri
笔记
手机码字,好累~刚刷完这道题,觉得挺有意思,做一下笔记。打开题目有一段PHP代码,大致看了一下需要用到反序列化。两点需要解决:绕过正则绕过__weakup首先序列化file=$file;}function__destruct(){echo@highlight_file($this->file,true);}function__wakeup(){if($this->file!='index.php'
- 2020.3.31xctf(Web_php_unserialize)③
藏蓝色的达达
web安全
file=$file;}function__destruct(){echo@highlight_file($this->file,true);}function__wakeup(){if($this->file!='index.php'){//thesecretisinthefl4g.php$this->file='index.php';}}}if(isset($_GET['var'])){$va
- 记xctf_web Web_php_unserialize,关于php反序列化的思考
fly夏天
ctf
先来看题目,题目说是php_unserialize可见是php序列化的题目。打开网页时一段源码file=$file;}function__destruct(){echo@highlight_file($this->file,true);}function__wakeup(){if($this->file!='index.php'){//thesecretisinthefl4g.php$this->
- XCTF--WEB Web_php_unserialize
LHK~~
CTF
Web_php_unserialize打开题目发现是一段php代码我对其进行审计如图:进行反序列化得:“O:4:“Demo”:1:{s:10:“Demofile”;s:8:“fl4g.php”;}”正则匹配的就是O:4,在这里我们将4改为+4即可绕过在反序列化后会执行_wakeup()将file的值修改导致文件读取失败此处把序列化语句中的1替换成2,即当序列化字符串中表示对象属性个数的值大于真实的
- 攻防世界Web_php_unserialize
亓心╰宝贝
解题一打开就是代码,代码审计file=$file;}function__destruct(){echo@highlight_file($this->file,true);}function__wakeup(){if($this->file!='index.php'){//thesecretisinthefl4g.php$this->file='index.php';}}}if(isset($_GE
- XCTF 攻防世界 web 高手进阶区
萌新中的扛把子
攻防世界
文章目录ics-07shrine(flask+jinja2的SSTI)easytornado(模板注入)upload(文件名注入)supersqli(堆叠注入)php_rce(ThinkPHP5框架getshell漏洞)warmupWeb_php_include(php文件包含)Web_php_unserialize(wakeup()的绕过,序列化+号绕过正则)Web_python_templat
- 攻防世界之php_rce、Web_php_include
qq_42728977
ctf-Web
Web_php_unserialize反序列化,反序列化漏洞还需再做几个题php魔法函数php魔法函数正则表达源码:file=$file;}function__destruct(){//类被删除或停止调用的时候调用echo@highlight_file($this->file,true);}function__wakeup(){//反序列化的时候调用if($this->file!='index.p
- Web_php_unserialize
怪味巧克力
CTF—web
知识点:1、__construct():当对象创建(new)时会自动调用。但在unserialize()时是不会自动调用的。(构造函数)2、__destruct():当对象被销毁时会自动调用。(析构函数)3、__wakeup():unserialize()时会自动调用。首先拿到题目看到给出一段PHP源码file=$file;}function__destruct(){echo@highlight_
- 攻防世界XCTF:Web_php_unserialize
m0c1nu7
CTF_WEB_Writeup
file=$file;}function__destruct(){echo@highlight_file($this->file,true);}function__wakeup(){if($this->file!='index.php'){//thesecretisinthefl4g.php$this->file='index.php';}}}if(isset($_GET['var'])){$va
- 攻防世界进阶篇– Web_php_unserialize – WriteUp
giaogiao123
先是一串代码审计看的出来要get一个var=??里要满足3个条件1要绕过wakeup函数2要绕过正则表达式3必须是base64加密首先有关PHP其它魔术方法的内容可以参考PHP官方文档有关PHP反序列化漏洞的内容可以参考PHP反序列化漏洞那么开始正解题目wakeup这个函数大家都了解过那么我们先序列化这个var而正则匹配的规则是:在不区分大小写的情况下,若字符串出现“o:数字”或者"c:数字’这样
- 攻防世界 web部分的Web_php_unserialize的writeup
隐藏起来
CTF#web
这个题就是三个点:1、$file改成fl4g.php;2、绕过:preg_match('/[oc]:\d+:/i',$var)3、跳过__wakeup()。步骤如下:代码执行得:TzorNDoiRGVtbyI6Mjp7czoxMDoiAERlbW8AZmlsZSI7czo4OiJmbDRnLnBocCI7fQ==执行即可:flag即为:ctf{b17bd4c7-34c9-4526-8fa8-a07
- XCTF-WEB进阶区Web_php_unserialize
Sure_lis
CTF
打开题目是一堆源码:主要看preg_match('/[oc]:\d+:/i',$var)'和unserialize($var)这两处,给上一个大佬的脚本:file=$file;}function__destruct(){echo@highlight_file($this->file,true);}function__wakeup(){if($this->file!='index.php'){//t
- [wp] 攻防世界 Web_php_unserialize
MercyLin
网安
先是一段代码审计:file=$file;}function__destruct(){echo@highlight_file($this->file,true);}function__wakeup(){if($this->file!='index.php'){//thesecretisinthefl4g.php$this->file='index.php';}}}if(isset($_GET['va
- Web_php_unserialize
怪味巧克力
知识点:1、__construct():当对象创建(new)时会自动调用。但在unserialize()时是不会自动调用的。(构造函数)2、__destruct():当对象被销毁时会自动调用。(析构函数)3、__wakeup():unserialize()时会自动调用。首先拿到题目看到给出一段PHP源码file=$file;}function__destruct(){echo@highlight_
- windows下源码安装golang
616050468
golang安装golang环境windows
系统: 64位win7, 开发环境:sublime text 2, go版本: 1.4.1
1. 安装前准备(gcc, gdb, git)
golang在64位系
- redis批量删除带空格的key
bylijinnan
redis
redis批量删除的通常做法:
redis-cli keys "blacklist*" | xargs redis-cli del
上面的命令在key的前后没有空格时是可以的,但有空格就不行了:
$redis-cli keys "blacklist*"
1) "blacklist:12:
[email protected]
- oracle正则表达式的用法
0624chenhong
oracle正则表达式
方括号表达示
方括号表达式
描述
[[:alnum:]]
字母和数字混合的字符
[[:alpha:]]
字母字符
[[:cntrl:]]
控制字符
[[:digit:]]
数字字符
[[:graph:]]
图像字符
[[:lower:]]
小写字母字符
[[:print:]]
打印字符
[[:punct:]]
标点符号字符
[[:space:]]
- 2048源码(核心算法有,缺少几个anctionbar,以后补上)
不懂事的小屁孩
2048
2048游戏基本上有四部分组成,
1:主activity,包含游戏块的16个方格,上面统计分数的模块
2:底下的gridview,监听上下左右的滑动,进行事件处理,
3:每一个卡片,里面的内容很简单,只有一个text,记录显示的数字
4:Actionbar,是游戏用重新开始,设置等功能(这个在底下可以下载的代码里面还没有实现)
写代码的流程
1:设计游戏的布局,基本是两块,上面是分
- jquery内部链式调用机理
换个号韩国红果果
JavaScriptjquery
只需要在调用该对象合适(比如下列的setStyles)的方法后让该方法返回该对象(通过this 因为一旦一个函数称为一个对象方法的话那么在这个方法内部this(结合下面的setStyles)指向这个对象)
function create(type){
var element=document.createElement(type);
//this=element;
- 你订酒店时的每一次点击 背后都是NoSQL和云计算
蓝儿唯美
NoSQL
全球最大的在线旅游公司Expedia旗下的酒店预订公司,它运营着89个网站,跨越68个国家,三年前开始实验公有云,以求让客户在预订网站上查询假期酒店时得到更快的信息获取体验。
云端本身是用于驱动网站的部分小功能的,如搜索框的自动推荐功能,还能保证处理Hotels.com服务的季节性需求高峰整体储能。
Hotels.com的首席技术官Thierry Bedos上个月在伦敦参加“2015 Clou
- java笔记1
a-john
java
1,面向对象程序设计(Object-oriented Propramming,OOP):java就是一种面向对象程序设计。
2,对象:我们将问题空间中的元素及其在解空间中的表示称为“对象”。简单来说,对象是某个类型的实例。比如狗是一个类型,哈士奇可以是狗的一个实例,也就是对象。
3,面向对象程序设计方式的特性:
3.1 万物皆为对象。
- C语言 sizeof和strlen之间的那些事 C/C++软件开发求职面试题 必备考点(一)
aijuans
C/C++求职面试必备考点
找工作在即,以后决定每天至少写一个知识点,主要是记录,逼迫自己动手、总结加深印象。当然如果能有一言半语让他人收益,后学幸运之至也。如有错误,还希望大家帮忙指出来。感激不尽。
后学保证每个写出来的结果都是自己在电脑上亲自跑过的,咱人笨,以前学的也半吊子。很多时候只能靠运行出来的结果再反过来
- 程序员写代码时就不要管需求了吗?
asia007
程序员不能一味跟需求走
编程也有2年了,刚开始不懂的什么都跟需求走,需求是怎样就用代码实现就行,也不管这个需求是否合理,是否为较好的用户体验。当然刚开始编程都会这样,但是如果有了2年以上的工作经验的程序员只知道一味写代码,而不在写的过程中思考一下这个需求是否合理,那么,我想这个程序员就只能一辈写敲敲代码了。
我的技术不是很好,但是就不代
- Activity的四种启动模式
百合不是茶
android栈模式启动Activity的标准模式启动栈顶模式启动单例模式启动
android界面的操作就是很多个activity之间的切换,启动模式决定启动的activity的生命周期 ;
启动模式xml中配置
<activity android:name=".MainActivity" android:launchMode="standard&quo
- Spring中@Autowired标签与@Resource标签的区别
bijian1013
javaspring@Resource@Autowired@Qualifier
Spring不但支持自己定义的@Autowired注解,还支持由JSR-250规范定义的几个注解,如:@Resource、 @PostConstruct及@PreDestroy。
1. @Autowired @Autowired是Spring 提供的,需导入 Package:org.springframewo
- Changes Between SOAP 1.1 and SOAP 1.2
sunjing
ChangesEnableSOAP 1.1SOAP 1.2
JAX-WS
SOAP Version 1.2 Part 0: Primer (Second Edition)
SOAP Version 1.2 Part 1: Messaging Framework (Second Edition)
SOAP Version 1.2 Part 2: Adjuncts (Second Edition)
Which style of WSDL
- 【Hadoop二】Hadoop常用命令
bit1129
hadoop
以Hadoop运行Hadoop自带的wordcount为例,
hadoop脚本位于/home/hadoop/hadoop-2.5.2/bin/hadoop,需要说明的是,这些命令的使用必须在Hadoop已经运行的情况下才能执行
Hadoop HDFS相关命令
hadoop fs -ls
列出HDFS文件系统的第一级文件和第一级
- java异常处理(初级)
白糖_
javaDAOspring虚拟机Ajax
从学习到现在从事java开发一年多了,个人觉得对java只了解皮毛,很多东西都是用到再去慢慢学习,编程真的是一项艺术,要完成一段好的代码,需要懂得很多。
最近项目经理让我负责一个组件开发,框架都由自己搭建,最让我头疼的是异常处理,我看了一些网上的源码,发现他们对异常的处理不是很重视,研究了很久都没有找到很好的解决方案。后来有幸看到一个200W美元的项目部分源码,通过他们对异常处理的解决方案,我终
- 记录整理-工作问题
braveCS
工作
1)那位同学还是CSV文件默认Excel打开看不到全部结果。以为是没写进去。同学甲说文件应该不分大小。后来log一下原来是有写进去。只是Excel有行数限制。那位同学进步好快啊。
2)今天同学说写文件的时候提示jvm的内存溢出。我马上反应说那就改一下jvm的内存大小。同学说改用分批处理了。果然想问题还是有局限性。改jvm内存大小只能暂时地解决问题,以后要是写更大的文件还是得改内存。想问题要长远啊
- org.apache.tools.zip实现文件的压缩和解压,支持中文
bylijinnan
apache
刚开始用java.util.Zip,发现不支持中文(网上有修改的方法,但比较麻烦)
后改用org.apache.tools.zip
org.apache.tools.zip的使用网上有更简单的例子
下面的程序根据实际需求,实现了压缩指定目录下指定文件的方法
import java.io.BufferedReader;
import java.io.BufferedWrit
- 读书笔记-4
chengxuyuancsdn
读书笔记
1、JSTL 核心标签库标签
2、避免SQL注入
3、字符串逆转方法
4、字符串比较compareTo
5、字符串替换replace
6、分拆字符串
1、JSTL 核心标签库标签共有13个,
学习资料:http://www.cnblogs.com/lihuiyy/archive/2012/02/24/2366806.html
功能上分为4类:
(1)表达式控制标签:out
- [物理与电子]半导体教材的一个小问题
comsci
问题
各种模拟电子和数字电子教材中都有这个词汇-空穴
书中对这个词汇的解释是; 当电子脱离共价键的束缚成为自由电子之后,共价键中就留下一个空位,这个空位叫做空穴
我现在回过头翻大学时候的教材,觉得这个
- Flashback Database --闪回数据库
daizj
oracle闪回数据库
Flashback 技术是以Undo segment中的内容为基础的, 因此受限于UNDO_RETENTON参数。要使用flashback 的特性,必须启用自动撤销管理表空间。
在Oracle 10g中, Flash back家族分为以下成员: Flashback Database, Flashback Drop,Flashback Query(分Flashback Query,Flashbac
- 简单排序:插入排序
dieslrae
插入排序
public void insertSort(int[] array){
int temp;
for(int i=1;i<array.length;i++){
temp = array[i];
for(int k=i-1;k>=0;k--)
- C语言学习六指针小示例、一维数组名含义,定义一个函数输出数组的内容
dcj3sjt126com
c
# include <stdio.h>
int main(void)
{
int * p; //等价于 int *p 也等价于 int* p;
int i = 5;
char ch = 'A';
//p = 5; //error
//p = &ch; //error
//p = ch; //error
p = &i; //
- centos下php redis扩展的安装配置3种方法
dcj3sjt126com
redis
方法一
1.下载php redis扩展包 代码如下 复制代码
#wget http://redis.googlecode.com/files/redis-2.4.4.tar.gz
2 tar -zxvf 解压压缩包,cd /扩展包 (进入扩展包然后 运行phpize 一下是我环境中phpize的目录,/usr/local/php/bin/phpize (一定要
- 线程池(Executors)
shuizhaosi888
线程池
在java类库中,任务执行的主要抽象不是Thread,而是Executor,将任务的提交过程和执行过程解耦
public interface Executor {
void execute(Runnable command);
}
public class RunMain implements Executor{
@Override
pub
- openstack 快速安装笔记
haoningabc
openstack
前提是要配置好yum源
版本icehouse,操作系统redhat6.5
最简化安装,不要cinder和swift
三个节点
172 control节点keystone glance horizon
173 compute节点nova
173 network节点neutron
control
/etc/sysctl.conf
net.ipv4.ip_forward =
- 从c面向对象的实现理解c++的对象(二)
jimmee
C++面向对象虚函数
1. 类就可以看作一个struct,类的方法,可以理解为通过函数指针的方式实现的,类对象分配内存时,只分配成员变量的,函数指针并不需要分配额外的内存保存地址。
2. c++中类的构造函数,就是进行内存分配(malloc),调用构造函数
3. c++中类的析构函数,就时回收内存(free)
4. c++是基于栈和全局数据分配内存的,如果是一个方法内创建的对象,就直接在栈上分配内存了。
专门在
- 如何让那个一个div可以拖动
lingfeng520240
html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml
- 第10章 高级事件(中)
onestopweb
事件
index.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/
- 计算两个经纬度之间的距离
roadrunners
计算纬度LBS经度距离
要解决这个问题的时候,到网上查了很多方案,最后计算出来的都与百度计算出来的有出入。下面这个公式计算出来的距离和百度计算出来的距离是一致的。
/**
*
* @param longitudeA
* 经度A点
* @param latitudeA
* 纬度A点
* @param longitudeB
*
- 最具争议的10个Java话题
tomcat_oracle
java
1、Java8已经到来。什么!? Java8 支持lambda。哇哦,RIP Scala! 随着Java8 的发布,出现很多关于新发布的Java8是否有潜力干掉Scala的争论,最终的结论是远远没有那么简单。Java8可能已经在Scala的lambda的包围中突围,但Java并非是函数式编程王位的真正觊觎者。
2、Java 9 即将到来
Oracle早在8月份就发布
- zoj 3826 Hierarchical Notation(模拟)
阿尔萨斯
rar
题目链接:zoj 3826 Hierarchical Notation
题目大意:给定一些结构体,结构体有value值和key值,Q次询问,输出每个key值对应的value值。
解题思路:思路很简单,写个类词法的递归函数,每次将key值映射成一个hash值,用map映射每个key的value起始终止位置,预处理完了查询就很简单了。 这题是最后10分钟出的,因为没有考虑value为{}的情