完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
赛题类型主要包括:逆向、漏洞挖掘与利用、Web 渗透、密码、隐写、安全编程等类别,考察参赛者不同维度的网络安全理论、威廉希尔官方网站
水平。
签到 下载附件后,看到readme.txt打开后提示会有摄像头,打开qiandao.exe,解压并运行软件,对准两个聚焦圆圈,回车输出 flag。 saleae 题目名saleae,是一个逻辑分析工具,不仅可以记录数字和模拟两种信号,还可以解码 SPI、I2C、串行、1-Wire、CAN、Manchester、I2S 等协议。 下载安装软件,然后下载logicdata文件,用saleae打开,发现有4个频道。观察波形,发现channel0是具有周期性的方波,应为时钟信号。 根据时钟频率以及通讯方式猜测是属于 SPI 通讯,并且SPI协议正好使用了芯片上的4个引脚,猜测logicdata文件应该用SPI协议进行分析。 分析数据处出现flag,导出数据并用文本编辑器处理,得到flag。 SPI、I2C、USART是三种不同的通讯方式: SPI英文全称是Serial Peripheral Interface,是串行外接口的缩写,它的通讯方式特点是全双工工作、同步且高速传输,用这种通讯的话一般有一个主机和多个从机一起工作,如果是双向传输的话需要四根线,分别是:SDI(数据输入)、SDO(数据输出)、SCLK(时钟)、CS(片选)四根。因此用这种方式通讯的话一般都是有多个从机设备,像人机交互界面之类。 I2C英文全称是Inter-Integrated Circuit,它是一种串行总线方式。它通讯只需要两根线,一根是数据线(SDA),一根时钟线(SCL),这种通讯方式是主机和从机没有明确区分出来,但是工作时候只能有一个主机,看电路实际工作需要的方式。因为这种方式只需要两根线,因此这种连接方式应用的比较广泛,特别是一些小型产品上面,像家电类、医疗等方面。 USART英文全称是Universal Synchronous/Asynchronous Receiver/Transmitter,它是一种全双工的串行接收和发送模块,它需要数据发送器、接收器以及时钟发生器三部分才能工作,而且这种工作方式很灵活,这种方式在STM系列芯片经常用到,我们日常生活当中计算机与电视连接等。 24c 同样使用saleae进行分析,将结果导出为文本格式,读取文本,发现有’ ‘f163bdf4e}flag{c46d9e10-e9b5-4d90-a883-41ctac 由题名24c得知是基于IIC协议(I2C)的EEPROM存储芯片 24c02,IIC 操作 24c02 的时候要先发送开始操作的地址,以及 NAK 停止符。 空格字符转为十进制的ASCII码为32,读取到c后为NAK且这部分正好有32个字符,因此第一部分接在读到这部分的后面。 t 不是字符,其对应的 ASCII 是 9,也就是从第 9 号位‘9’开始将”9e”替换为 ac,得到flag。 u***asp 一样使用saleae软件进行分析,且仍然是SPI协议。打开logicdata文件,由于题干中有“一键暴打出题人”,MOSI、MISO、时钟3条线直接按0、1、2顺序默认设置,题干中有“升级固件”,修改使能(Enable)设置。 DaysBank 知识点:区块链 题干给出的合约是测试网Rospten上的DaysBank, 合约地址为 0x455541c3e9179a6cd8C418142855d894e11A288c, 此外还给出了合约的部分源码 broken.so: contract DaysBank { mapping (address =》 uint) public balanceOf; mapping (address =》 uint) public gift; constructor() public { owner = msg.sender; } event SendFlag(uint256 flagnum, string b64mail); function payforflag(string b64email) public { require (balanceOf[msg.sender] 》= 10000); emit SendFlag(1, b64mail); } 根据题目给出的部分源码,我们获取的信息有: 合约定义了两个mapping变量(address =》 uint), balanceOf 和 gift,还有为构造函数,以及发送flag的事件。 我们需要利用合约其他未开源的部分将修改balanceOf[msg…sender]以绕过payforflag函数中的检测: require (balanceOf[msg.sender] 》= 10000) 从而触发事件SendFlag。 修改完balanceOf[msg.sender]之后,调用payforflag函数时需要将自己的邮箱经过base64转码作为参数传递进去,若能触发事件SendFlag,很快就能收到包含flag的邮件了。 |
|
|
|
只有小组成员才能发言,加入小组>>
4274个成员聚集在这个小组
加入小组3275 浏览 0 评论
航顺(HK)联合电子发烧友推出“近距离体验高性能Cortex-M3,免费申请价值288元评估板
4216 浏览 1 评论
4221 浏览 0 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-10 22:49 , Processed in 0.536188 second(s), Total 75, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号