reverse-crackme1&&web(呱呱呱&&膜ctf?&&机器蛇)

这道题的flag让人觉得很意外,或者说把问题复杂化了。下面是本题的题解:

拿到的是一个32位的pe文件,直接放进IDA,定位主函数:

int main_0()
{
  int v0; // eax
  signed int v2; // [esp+50h] [ebp-18h]
  _DWORD *v3; // [esp+54h] [ebp-14h]
  signed int i; // [esp+58h] [ebp-10h]

  v3 = operator new(0x1Cu);
  v2 = strlen("2410488");
  for ( i = 0; i < v2; ++i )
    v3[i] = ((2 * a2410488[i] - 96) / 4 + 3) % 10;
  sub_401285((int)&unk_47BE90, "flag:");
  sub_401041(v3);
  v0 = sub_4011E0(&sub_4010CD);
  sub_401285(v0, "怎么一直在变???");
  sub_4011E0(&sub_4010CD);
  Sleep(0x7D0u);
  return 0;
}

主函数比较简洁,但有一堆不知道干嘛的函数,先不用管他,其中对flag做变换的即使开始的for循环:

  v3 = operator new(0x1Cu);
  v2 = strlen("2410488");
  for ( i = 0; i < v2; ++i )
    v3[i] = ((2 * a2410488[i] - 96) / 4 + 3) % 10;

跟踪到下面可以大致分析得出v3即是flag的值,所以剩下的工作就是解出v3的值,脚本如下:

key = "2410488"
flag = []
for i in key:
	flag.append(str(int(((2*ord(i)-96)/4+3) % 10)))
flag = ''.join(flag)
print(flag)

运行即得到flag,这里的flag值是一段数字,并不是字符串所以结果出来会感觉怪怪的。

web1 一道水题

打开链接发现是一堆图片,也没有其他什么东西:

 打开控制台一看,即发现flag:

 web 2 还是一道水题

打开题目链接发现让输入moctf,但输入框并不允许输入:

还是打开控制台,发现输入被禁止:

这里只需要将input标签的这一属性删除就好了,此外还可以给value直接赋值,不用再在输入框输入:

之后提交即得到flag:

disabled属性:

web3 机器蛇

进入页面是一个网页游戏,完了一下没发现什么特别之处:

照常打开控制台:

 发现robots.txt,添加至地址栏:

得到flag的地址:

访问:

得到flag:

Robots协议(百度百科)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章