长亭百川云 - 文章详情

第三届网鼎杯半决赛部分wp

Red0

54

2024-07-13

一、突破

  • SMPP   

METADATA文件中有一个example代码,修改绑定IP和端口,输入账号密码。(题干已给出) 

     

然后根据题干要求修改短信内容和源地址、目的地址,依次发送两个短信,刷新8888端口http服务,可以看到flag文件。

             

import logging            

二、共同防御

  •  地址计算  

掩码为255.255.0.0,网络地址取前16位,后16位置0,得到网络地址为:172.30.0.0,使用md5加密得到答案为:e945964770a0fd6f0dbbcd9622f2e63f。

  •  ospf密钥获取 

从pcap包中提取ospf密码hash值,借助kali的john工具进行md5爆破后即可得到密码。

      

             

             

答案即为flag{yuio}

  •  短信中心密码爆破

编写smpplib登录脚本,遍历密码字典中的密码,若登录异常则继续爆破,直到登录无异常,即得到正确的密码。

import logging            

             

答案为flag{sikx}

三、RHG(人工智能漏洞挖掘)

RHG部分我们没有准备自动化工具,全靠手速。

由于本次rhg题目大多为静态编译且去符号,为了更方便直观进行程序分析,我们在赛前下载了对应版本的sig(libc6_2.23-0ubuntu3_i386.sig)放入IDA安装目录的sig/pc目录下,在使用IDA分析时可导入sig,可自动帮助识别libc函数。

             

  • pwn02  

和上午测试的pwn01一样,简单的栈溢出。

             

直接ropchain一把梭。使用ROPgadget得到rop链后构造exp。

ROPgadget --binary r2 --ropchain
from pwn import *
  • pwn03  

溢出点和pwn02一样,但是加了限制,payload中不能有BINSHbinsh中的任意字符。

             

通过read函数将/bin/sh写入bss段中,再使用系统调用执行execve即可获得shell。

from pwn import *            
  • pwn04  

存在栈溢出点和后门函数,修改ret地址为shell地址即可。

             

             

from pwn import *            
  • pwn05  

根据代码可知,v0为输入字符串的第16个字符后的字符串,转为整数后+5计算得到,即为输入任意16个字符后,输入85140即可获得shell。

             

from pwn import *            
  • pwn06  

和pwn05逻辑差不多,输入12345即可拿到shell。

             

  • pwn07  

分析下来其实是一道嵌套了后门函数的迷宫题,从后门函数一步步回溯到入口函数,倒推回去即可得到正确的路径。

             

             

             

             

......

得到路径为:WSDWAAWDW

from pwn import *            
  • pwn08  

格式化字符串漏洞,利用pwntools的工具将0x80ebf9c处的变量改为28即可得到shell。

             

from pwn import *            
  • pwn09  

通过整数溢出绕过长度限制,构造长度为263的输入,263转为int8后由于溢出会变成7,strcpy即可造成v2缓冲区溢出。

             

from pwn import *
  • pwn10  

IDA分析程序,发现输入0时,会调用后门函数。

             

直接输入0即可获得shell。

四、RDG(实景防御)

  • babyshell   

    ===================

漏洞:free指针后未置空、堆内写入大小未作限制。

             

             

修复:

1.将free后的指针清空。

             

             

2.对写入堆中的长度做限制。

             

             

  • babymaze  

分析程序发现为迷宫题,并且可以对迷宫中所在位置的值进行修改。

             

迷宫如下所示,2为墙,由于四周的墙不完全封闭,可以导致坐标溢出到迷宫之外的地址,实现任意地址覆盖。

[2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0]            

修复方式即对坐标进行校验,如超出迷宫范围则退出。

在eh_frame段增加校验代码:

相关推荐
关注或联系我们
添加百川云公众号,移动管理云安全产品
咨询热线:
4000-327-707
百川公众号
百川公众号
百川云客服
百川云客服

Copyright ©2024 北京长亭科技有限公司
icon
京ICP备 2024055124号-2