首页
论坛
专栏
课程

[原创]第一题流浪者WP

2019-3-16 09:44 267

[原创]第一题流浪者WP

2019-3-16 09:44
267

1.运行程序发现是提交密码。

2.用OD打开,Run到程序开始处,查看所有函数间相互调用

   发现strlen,strcmp函数。果断下断点

   

3. 查看所有相关字符串发现

 

4.单步跟踪下去,发现对输入进行处理,将a-z 减去0x57,将0-9 减去ord(‘0’),将A-Z 减去0x1D,

5.继续跟踪,发现在strcmp 前,将第4步处理过的值当作索引,在字符串"abcdefghiABCDEFGHIJKLMNjklmn0123456789opqrstuvwxyzOPQRSTUVWXYZ" 中取值代替。

6.最后将第五步的值与字符串 "KanXueCTF2019JustForhappy" 比较是否一致。

7.针对上述步骤,构成以下代码。找到序列号”j0rXI4bTeustBiIGHeCF70DDM”。

     在原程序上进行验证,通过。提交。

 Python代码如下。import requests

import string

import time

import re

charset="abcdefghiABCDEFGHIJKLMNjklmn0123456789opqrstuvwxyzOPQRSTUVWXYZ"

flag="KanXueCTF2019JustForhappy"

low_min=ord('a')-0x57

low_max=ord('z')-0x57

num_min=ord('0')-ord('0')

num_max=ord('9')-ord('0')

up_min =ord('A')-0x1D

up_max =ord('Z')-0x1D

char=''

string=''

for c in flag:

i=charset.index(c)

if i in range(num_min,num_max+1):

char=chr(i+ord('0'))

elif i in range(low_min,low_max+1):

char=chr(i+0x57)

elif i in range(up_min,up_max+1):

char=chr(i+0x1D)

else:

char='\n'

string+=char

print(string)



[招聘]欢迎市场人员加入看雪学院团队!

最后于 2019-3-25 13:29 被kanxue编辑 ,原因:
最新回复 (0)
游客
登录 | 注册 方可回帖
返回