PHP反序列化之POP链
前言最近CTF比赛特别喜欢出反序列化的题目,主要涉及到PHP反序列化,JAVA反序列化,Python反序列化。作者第一次接触反序列化的题目的时候,当时能理出大概的思路。但是写链子的时候总是容易把自己绕晕,后来这样的题目做多了,也大致了解它的套路。作者打算把这篇文章做成一个专题,专门用来收集PHP反序列化的题目。
PHP序列化与反序列化定义序列化:把对象变成可以传输的字符串
反序列化:把被序列化的字符串还原为对象
public的属性在序列化时,直接显示属性名protected的属性在序列化时,会在属性名前增加0x00*0x00,其长度会增加3private的属性在序列化时,会在属性名前增加0x00classname0x00,其长度会增加类名长度+2
相关函数 序列化:serialize反序列化:unserialize
举个例子<?phpclass person{ public $name; public $age; public $sex;}$test = new person; //给person类定义一个对象$test->name = ...
漏洞复现-Log4j远程代码执行漏洞
漏洞编号:CVE-2021-44228
影响版本:Log4j 2.x <= 2.14.1
复现环境:Docker+Vulhub+VPS(Ubuntu)
Log4j介绍Apache Log4j 是 Apache 的一个开源项目,Apache log4j-2 是 Log4j 的升级,我们可以控制日志信息输送的目的地为控制台、文件、GUI组件等,通过定义每一条日志信息的级别,能够更加细致地控制日志的生成过程。
漏洞介绍Log4j-2中存在JNDI注入漏洞,当程序将用户输入的数据日志记录时,即可触发此漏洞,成功利用此漏洞可以在目标服务器上执行任意代码。
例如:
String a = "访问出错";LOGGER.info("日志信息:{}",a);
我们可以通过这样的语句输出了一句日志信息,其中{}内容由我们传进去的变量决定。因此可以利用这个特点,传入恶意代码,例如${java.os}这样的语句。虽然这里输入的信息是日志的信息,用户是看不到的,但是可以利用DNSLOG将回显结果带出来。
JNDI注入简单介绍JNDI ...
C++程序设计期末考的反思
引言这次期末的程序设计题整体来说难度不大,但是在第一题部分函数设计与实现上出了点问题,处理细节时没考虑周全。在离校前,打算把这题目单独拎出来再好好分析一下orz
题目总览
问题1设计一个成员函数NextDay,能实现将日期变更为下一天日期
分析
需要考虑闰年的情况
需要考虑二月的情况
需要考虑月份跨年的情况
需要考虑日期跨月的情况
问题解决void NextDay(int &year, int &month, int &day){ if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12) { if (day == 31) //跨月 { day = 1; month++; } else { day++; ...
CISCN2022初赛团队WP
前言参加CISCN的第一年,发现国赛比其他CTF赛事的题目要难好多,但是题目质量蛮高的(除了那三道非预期解的密码学题)。这次战队一共AC了六道题(其中一道为问卷题),全国排名406名,其实对于第一次打国赛的我们来说,已经是很好的结果了~~~,来年继续努力吧!
更新于6月3日:唔!居然晋级了,这是真的没有想到,看来又得要坐一天牢了:P
队友:808, nLesxw,R136a1
Miscez_usb
使用 wireshark 搜索 usb.src == “2.10.1” and usb.dst == “host” 只有第三个字节存在变化
筛选第三个
字节结果为 20 00 22 00 06 00 22 00 20 00 22 00 24 00 23 00 22 00 08 00 22 00 27 00 27 00 24 00 21 00 04 00 3 、去掉 00 , 然 后 使 用 该 文 档 https://www.usb.org/sites/default ...
CISCN培训-Day2
前言
今天老师结合一道真实环境下的WEB题,主要为我们梳理了渗透思路并演示了渗透方法(例如sql注入,未授权访问等漏洞)。另外,还为我们介绍了两款软件,下面将一一列出
工具推荐
DirSearch(WEB路径扫描器)
下载地址:https://github.com/maurosoria/dirsearch
blaster(弱密码隐患检测工具)
下载地址:https://github.com/jixing-lab/blaster
ZZCMS201910-重复安装漏洞
漏洞对象:ZZCMS201910
漏洞文件:zzcms/install/index.php
漏洞原因:未能对POST传递的参数做过滤,使得通过修改Http请求方式和POST数据来绕过安装验证
漏洞复现:
安装完zzcms后,再次访问zzcms/install/index.php,发现”安装向导已运行安装过,如需重安装,请删除 /install/install.lock 文件“
尝试用PHPSTORM搜索这句话出现的位置,经过全局搜索后发现这句话出现于/install/step_1.php
<?phpif(file_exists("install.lock")){echo "<div style='padding:30px;'>安装向导已运行安装过,如需重安装,请删除 /install/install.lock 文件</div>";}else{?><div class=& ...
CISCN培训-Day1
前言非常感谢EMHAK老师再次指导我们比赛(❤ ω ❤)
这里偷偷吹爆EMHAK老师,YYDS!!!
第一部分老师讲了很多关于安全的职业规划和职业发展。利益相关,这里就不细说了~嘿嘿🙈
第二部分老师给我们出了一道有关于SQL注入的题目,大致长这样子的:
据说这道题是魔改皮卡丘上的一道题目
我当时做的时候,思路不是很清晰,这里我把听完老师讲解后的做题思路列出来:
先习惯性地输入一个1‘,看看是否会爆出错误
这里给足了提示:我们看到了sleep(1),所以判断存在时间盲注
这里我用了tips给的Payload跑了一遍
url/login.php?name=kobe' and sleep(4)%23&submit=查询//看回显时间,发现确实存在时间盲注
我们尝试构造如下Payload,来测试是否存在过滤
IF( expr1 , expr2 , expr3 )
expr1 的值为 TRUE,则返回值为 expr2expr1 的值为FALSE,则返回值为 expr3
Payload:
url/login.php?name=kobe' a ...
SUSCTF2022-Misound
考察知识点:音频分析,未知算法推测
1.下载附件,发现是个wav文件,于是我们拖进AU进行频谱分析
通过放大观察到频谱里有间隔的字符,组成字符串可得:
AnEWmuLTiPLyis_etimes_willbEcomE_B
把字符串按照我们能读懂的英文拆开:a new multiply is “e” times “_” will become b翻译成中文就是有一种乘法是‘e’乘以‘_(下划线)’将会等于b
2.接着我们用音频隐写解密工具Silenteye,对音频进行解密:得到一串base64编码的字符串:
MjA3IDM1OSAyMjAgMjI0IDM1MiAzMTUgMzU5IDM3NCAyOTAgMzEwIDI3NyA1MDcgMzkxIDUxMyA0MjMgMzkyIDUwOCAzODMgNDQwIDMyMiA0MjAgNDI3IDUwMyA0NjAgMjk1IDMxOCAyNDUgMzAyIDQwNyA0MTQgNDEwIDEzMCAzNjkgMzE3
解码后得到:207 359 220 224 352 315 359 374 290 310 277 507 391 5 ...
浅谈C++文件操作
C++ 流和文件
前提声明:我是C++小白(确信),有些地方表达的不到位或者细节点写的不够专业的,还望各位大佬多多包涵🤔。同样也欢迎各位读者在评论区批评指正,这对于我C++的成长非常重要😜
1. 啥叫“流”? 提到“流”,就不得不提“输入输出”。我们第一次学习C++代码的时候,会习惯性地打上如下这段代码:
#include <iostream> //是不是闭着眼也能打出来了
上面这个代码的作用是引入I/O 库头文件(这里具体指<iostream>)
in—->input输入
out—->output输出
我们先来看看这个头文件的描述:
头文件
函数和描述
<iostream>
该文件定义了 cin、cout、cerr 和 clog 对象,分别对应于标准输入流、标准输出流、非缓冲标准错误流和缓冲标准错误流。
由于我们引入了这个头文件,我们便能成功读取用户从键盘设备中输入的内容和把内容输出到电脑屏幕上,例如:
#include <iostream> //引入标准输入输出流头文件using n ...
基于Qt图形库的学生每日体温健康登记系统
1 课题介绍1.1 课题内容 学生每日体温健康登记系统
1.2 选课意义 在疫情愈发严重的当下,防疫工作者对风险人群的精准排查是降低人群传播概率的关键。尤其是学校,校园防疫工作者在面对庞大的人群数量,要确保每个人都能被统计到并能够从中挑选出健康状况异常的学生,这是一件十分具有挑战的事情。如果有一个系统既能够对每个人健康情况进行统计储存,还能实时反应当前统计的人数与健康状况异常学生的数量,甚至可以把统计的学生信息数据全部导出到一个Excel文件里,那会对疫情排查工作带来不少便利,减轻了防疫工作者的压力。
1.3 选课目标 考虑到数据呈现的直观性与数据操作的精准性,我决定做一个图形化(GUI)的学生每日体温健康登记系统。可以实现学生信息的增删改查,实时统计,筛选特殊人群和数据导出等功能。
1.4 相关技术
图形化开发框架:Qt
Qt是一个跨平台的 C++开发库,主要用来开发图形用户界面(Graphical User Interface,GUI)程序
编程语言:C++
C++是一种面向对象的高级程序设计语言,是C语言的超集
代码仓库托管:Gitlab ...