tengfe 发表于 2017-12-2 11:26

湖南网络安全比赛的一个CTF题目

本帖最后由 tengfe 于 2017-12-2 11:41 编辑

大家看看吧,要求找出falg,不知道怎么设置不要积分,不好意思

whklhh 发表于 2017-12-9 02:20

nuodun 发表于 2017-12-9 00:09
怎么判断v7这个变量是第4个值?
根据堆栈结构,IDA分析的函数最顶端有各个变量的真实地址(我的图上没有截到),v7的地址=输入的变量的地址+3,所以是input即第4个值
或者动态调试,输入校验字符串如“123456789”,在OD中可以发现'0'和'4'进行比较,所以可以推断出是第四个值

whklhh 发表于 2017-12-2 21:17

本帖最后由 whklhh 于 2017-12-2 21:20 编辑


check1里是二元一次方程组(有一个三元的,问题不大)
check2里是变换大小写,很容易得出后几个字符

方程组手算应该也不难,根据flag一个一个推就是了

我懒,直接用Z3约束求解器跑了
from z3 import *

flag =

s = Solver()
result = []
s.add(And((flag) +flag == 126,flag+ (2 * (flag)) == 308,(flag) +(flag) +(flag) == 318,(flag) +(flag) == 201,(flag) -(flag) == 51,(flag) ==(flag)), flag==ord('0'))
for i in range(7):
    s.add(flag > 32)
    s.add(flag < 127)
if(s.check()==sat):
    m = s.model()
    for i in range(7):
      print(chr(m].as_long()), end='')
print("_YnCtF")


Nsf0cus_YnCtF

这个东西解方程贼好用{:301_986:}虽然它要是知道被用来搞二元一次的话 估计会哭吧


说起来,最近就打了个湖湘杯,湖南还有啥别的比赛啊?

邓功涛 发表于 2017-12-2 11:43

前排出售瓜子,注册了一年,几乎没发过贴6

tengfe 发表于 2017-12-2 11:55

邓功涛 发表于 2017-12-2 11:43
前排出售瓜子,注册了一年,几乎没发过贴6

....我只看看

busebox 发表于 2017-12-2 11:59

我也是 没发过帖子

抢我所爱的你 发表于 2017-12-2 12:08

我也是,潜水了很久

zbnysjwsnd8 发表于 2017-12-2 12:30

tengfe 发表于 2017-12-2 13:00

zbnysjwsnd8 发表于 2017-12-2 12:30


牛逼了,

tengfe 发表于 2017-12-2 13:01

tengfe 发表于 2017-12-2 13:00
牛逼了,

发下思路被

feixizhang 发表于 2017-12-2 13:21

哈哈,不懂啊,还是看看吧

Dispa1r 发表于 2017-12-2 15:29

zbnysjwsnd8 发表于 2017-12-2 12:30


星斗师傅强啊,湖湘杯的那个
页: [1] 2 3 4
查看完整版本: 湖南网络安全比赛的一个CTF题目