龙空技术网

2020 ISG“观安杯”管理运维赛技术题目官方解答(下)

SecMind安全管家 105

前言:

现时大家对“rabin算法c语言实现”大致比较关心,朋友们都需要剖析一些“rabin算法c语言实现”的相关内容。那么小编同时在网络上汇集了一些有关“rabin算法c语言实现””的相关资讯,希望咱们能喜欢,小伙伴们一起来了解一下吧!

喂~您的Write(下)已送达,麻烦点个签收啦。

按照惯例,感谢以下出题专家们对本次比赛的大力支持(排名不分先后):

复旦大学计算机学院副教授:张源(白泽战队)

华住酒店集团安全负责人:王彬

上海看雪科技有限公司总经理:段刚

上海豌豆信息技术有限公司CSO:李睿

上海豌豆信息技术有限公司:王六六、小黑

以及理论考试的各位出题专家们(排名不分先后):

上海工业控制安全创新科技有限公司技术总监:刘虹

中国银行信息科技运营中心(上海)主管:张强

中国福利会国际和平妇幼保健院信息安全主管:陈昌杰

万国数据股份有限公司解决方案架构师:刘周

同时还有各个支持单位提供的竞赛系统支持!

一、Huazhu

想了解黑客是怎么把木马上传到服务器上的吗,那就看看这题咯。

1、访问页面:存在一个图片上传的功能。

2、上传功能存在任意文件上传漏洞,可通过上传漏洞获取webshell。

上传要求:任意文件上传限制必须检测上传文件为图片文件头

举例说明:可通过合成图片+一句话木马,形成一个图片一句话木马。

3、图片马合成

将***jpg和flag文本放置同一目录,cmd到当前目录。

输入命令:copy ***.png /b + ***.txt /a secrity.jpg

可得到合成的secrity.jpg文件

4、上传图片马,路径可以改为其他的,也可以在upload 下面,并且ext参数添加要上传的文件后缀。

5、通过webshell管理工具连接一句话木马后,发现存在一个目录下面有很多图片:

5、下载图片到本地查看,缩略图打开,看到二维码,扫码得到flag。

二、Huarongdao

看着简单的移动安全,也不简单~

1、审计代码,在manifest中没有发现异常的receiver,只有一个启动的activity,进入到activity中,可以发现其他类的行为比较正常,同时在同一个包中有一个被混淆的类a:

2、发现在GameLayout有对类a的调用,结合apk在运行的时候,如果对任意关卡通关之后会有位置权限的动态权限申请的提示,在类a中寻找获取地理位置信息的代码,可以发现在b函数中对一个byte数组使用固定seed的随机数流进行了异或:

3、然后将字符串和地理位置进行拼接并通过http报文的形式进行发送;

对字符串进行异或,可以得到flag为:

flag{3@Sy_R3_by_Whitzard^_^}

三、Webshell is very danger

这可能。。。是史上。。。内容最丰富的ctf题了。

当前网站被黑客篡改了首页,请通过技术方法,获取黑客的攻击记录,并复现黑客攻击过程,获取系统中存在的flag。

1、访问解题页面

2、通过查看源代码,发现隐藏的url文件路径

3、访问该路径

4、构造文件包含,读取/etc/passwd文件,发现存在后门用户hacker。

file.php?f=/etc/passwd

5、通过构造伪协议,读取当前file.php源码

192.168.98.135:8081/file.php?f=php://filter/read=convert.base64-encode/resource=file.php

6、通过base64解密,获取file.php的源码,获取提示,读取bash_history文件

7、构造文件包含语句,读取hacker用户的bash_history文件nei内容

192.168.98.135:8081/file.php?f=/home/hacker/.bash_history

8、在bash_history文件中,发现,在web目录下,生成了一个隐藏的后门

目录名为4z3f_hack,文件名为server.php

9、通过浏览器访问这个webshell,发现需要密码

10、通过文件包含伪协议,读取server.php这个webshell的源码

192.168.98.135:8081//file.php?f=php://filter/read=convert.base64-encode/resource=4z3f_hack/server.php

11、通过解base64获取源码内容

12、源码中使用了rot13,unpack、base64的混淆方式,通过解混淆代码,获取最后的明文代码内容

13、获取密码为chcp437,使用密码访问webshell,列出了/tmp目录下所有的文件

14、使用文件包含访问http_apache_log.txt文件

192.168.98.135:8081/file.php?f=/tmp/http_apache_log.txt

15、是一段访问的日志,使用全局搜索功能,搜索先前发现的webshell后门地址,定位到当前攻击者IP 59.127.238.44

16、搜索59.127.238.44,这个IP的访问记录,发现进行了一系列的爆破行为。

17、根据当前IP 、 访问的状态码来进行筛选,删除404状态码,搜索200状态码,获取恶意IP的操作,定位到一个POST请求,访问了一个上传页面,路径为/2cx6f/upload.php,状态码为200

18、根据路径,访问web目录,找到一个隐藏的上传页面

19、通过直接上传php文件,上传一句话木马

20、访问自己的一句话木马

21、通过webshell连接工具进行访问

22、执行系统命令,在目录下找到flag.txt文件,获取当前flag(这里有一个假flag哦)

但是但是可但是,这个题在出的时候没考虑到一个bug。。。

本地文件包含直接得flag,相当于500白送。。。

四、Aug_mid

我知道,这题就是嘲讽我这种学渣的o(╥﹏╥)o

本题是公钥密码学算法题,相当于RSA 的拓展。题目主要考察:Rabin 公钥算法(合数 N 的二次剩余)。

Flag 格式记作: flag{a-b-c} ,a,b,c 是 hex numbers, 非 0

答案是:

a =300BA37306A7A01

b = 190C12C5CCB00CB

c = 16FF90AD39F7936

1、题目里固定一个RSA N ,N 是一个 161bits 的RSA Number, 用RDLP 测试过,大约 8 秒可以分解这个大整数为两个素数因子。

N(160) = 1000000000000000000246618FBD1DBF3A404CCA1

P(80)= F1F2F3F4F5F6F7F8F907 P(81)= 10EDDF1342FB88D4BEB17

2、提示中已经给了,接下来看题目。

3、题目里有一个已知常量 H, 是如下字符串的hash:

msg = "rdyu@2020Aug"

H= md5(msg) = fff6fba22d6942e3683d445c003c0a95

4、题目验证二次剩余方程,其解法相当于 Rabin 公钥算法:

方程如下: x* HH *(HH + x) = S mod N

其中 HH = h*h mod N 已知, S 已知。N 是模,前面说了可以因子分解,

x = a^2 + b, 并且有条件 0 < b < 2a , 等价于 a^2 < x < a^2 + 2a < (a+1)^2

5、解 Rabin 算法即可,这里谨提供 2 个思路,可以任选其一(选手有其余合理的方法也行):

方法1:方程转化为 X*(HH+X) = S/HH mod N, 可用RDLP 求解 C= M(M+B) 形式的方程。

方法 2:二次剩余,分别 mod Q, mod P 求解,用 CRT 中国剩余定理合并。

6、这里以方法 1 举例,解法如下:化简:

HH = h*h mod N = 1C94929BA70478748F34356EC30657DAA2A9D0F S = 2559EAB849C791C032340B2E6ED59202DE2FCB6B

S/HH mod N

= S * inverse_mod(HH, N) mod N = 4E9AF6614619AD01884FA00C009E453ACEB66118

7、这就是一个形如 X(X+B) = C mod N 的二次剩余方程, 已知 B, C , N,求 X。

B=1C94929BA70478748F34356EC30657DAA2A9D0F C=4E9AF6614619AD01884FA00C009E453ACEB66118 N=1000000000000000000246618FBD1DBF3A404CCA1

P= F1F2F3F4F5F6F7F8F907 Q=10EDDF1342FB88D4BEB17

8、以 上 参 数 , 代 入 RDLP 即 可 解 出 4个 解 : X1=3CE3B6757D54D705469EBDA03CBA9523D2C06824 X2=7E36B6D64586B41AE4883298F9F5CCD82813D475 X3=9045DD296BD1C97C2BBA3FFC3F4CC X4=41530060C83AE1737080321554FDF3585517611D

9、根据 X < H, 取唯一合适的解,也就是最小的那个解 X3.然后通过开方X, 得到正的整数 a,b

X = a^2 + b

a = [ sqrt(x) ] b = X – a*a

a = 300BA37306A7A01 b = 190C12C5CCB00CB

c= a – b = 16FF90AD39F7936

10、整理得到完整的 flag:

flag{300BA37306A7A01-190C12C5CCB00CB-16FF90AD39F7936}

RDLP 解题截图:

五、Npcrackme

想知道黑客怎么破解软件的吗?看看这题咯。

1、查看文件,是PE格式,32位

2、运行程序会提示让你输入一些东西

3、打开ida静态分析,按shift+F12查找字符串

4、跳转到当前位置按x查找引用这段字符串的函数:

5、跳转后发现程序主逻辑(按F5可反编译为C语言):

6、分析代码可知流程就是读取输入字符串,符合“XXXX-XXXX”形式,分别按16进制逆序转换成2个数a和b,要求满足(a%10000000-1)*8==a和(b%10000000+1)*8==b则注册成功。

7、依据逻辑写代码脚本:

for i in range(10000000):

a = i * 8 % 10000000

if ((a - i == 1) or (i - a == 1)):

print(i)

2秒钟穷举完毕,只有2个数:

a1=2857143

b1=7142857

8、再计算出原始a和b:

a=a1*8=22857144=0x8B5CC51

b=b1*8=57142856=0x84EE763

逆序排列得到注册码:8B5CC51-84EE763

9、输入得到flag

以上就是2020年ISG“观安杯”管理运维赛的技术题目全部内容啦~

感谢参加比赛的所有团队及选手,也希望各获奖选手再接再厉,携手为网络安全筑起一道坚实、牢固的保护墙。

亲爱的选手们!我们明年再见!

点击了解技术支持单位之一:

关注我们获取更多安全资讯,关注同名公众号(ID:SecMind安全管家)还可使用【漏洞扫描】、【反薅羊毛】等等网络安全产品!

标签: #rabin算法c语言实现