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

  • A+
所属分类:逆向工程

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

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


一、Huazhu

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


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

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

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

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

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

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

 

3、图片马合成

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

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

可得到合成的secrity.jpg文件

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


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

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


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

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


 

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

 

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


 

二、Huarongdao

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

 

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

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


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

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


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

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

flag{[email protected]_R3_by_Whitzard^_^}

 

三、Webshell is very danger

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

 

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

1、访问解题页面;

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


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

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


3、访问该路径

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


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

file.php?f=/etc/passwd

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


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

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

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


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

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


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

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

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

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

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

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

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

http://192.168.98.135:8081/4z3f_hack/server.php

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

 

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


 四、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 的RSANumber, 用RDLP 测试过,大约 8 秒可以分解这个大整数为两个素数因子。

N(160) = 1000000000000000000246618FBD1DBF3A404CCA1

P(80)=F1F2F3F4F5F6F7F8F907

P(81)=10EDDF1342FB88D4BE


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

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

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

msg="[email protected]"

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 解题截图:

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

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


五、Npcrackme

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

 

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

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

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

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

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

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

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

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

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

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

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“观安杯”管理运维赛初赛技术赛题目官方解答(下)

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: