网鼎杯 2024
好抽象的比赛(👍)充满了遗憾
写出来的没写出来都好好整理整理思路
Misc
Misc1
某单位网络遭到非法的攻击,安全人员对流量调查取证之后保存了关键证据,发现人员的定位信息存在泄露,请对其进行分析。flag为用户位置信息进行32位md5哈希值
这里提到了四种协议先搜索DIAMETER
DIAMETER协议主要为应用程序提供认证、鉴权、计费框架,即AAA,并支持本地AAA和漫游场景下的AAA。
搜索 DIAMETER Protocol MME
进入发现有三个,挨着看看
E-UTRAN-Cell-Global-Identity AVP ( 1602 )
The E-UTRAN-Cell-Global-Identity AVP contains the E-UTRAN Cell Global Identification of the user which identifies the cell the user equipment is registered.
Tracking-Area-Identity AVP ( 1603 )
The Tracking-Area-Identity AVP contains the Tracking Area Identity of the user which identifies the tracking area where the user is located.Age-Of-Location-Information AVP ( 1611 )
The Age-Of-Location-Information AVP contains the the elapsed time in minutes since the last network contact of the user equipment.
MISC4
??? > 摘自 师傅博客
可能是按照皮亚诺曲线对附件中的图像重排像素。
如上3x3为单位的皮亚诺曲线迭代5次后正好为729x729,且皮亚诺曲线的走向与附件图像中相近颜色像素的排布类似,说明附件图像很可能是将原图像中的像素按皮亚诺曲线重新排列得到的(也许需要考虑皮亚诺曲线的起点和方向)。
关于3x3为单位的皮亚诺曲线的皮亚诺坐标与自然数秩转换的算法可以参考这里:
https://people.csail.mit.edu/jaffer/Geometry/PSFC
1 | def Peano(k, x, y): |
Reverse
Re01
apk文件,用jadx打开,没啥有用的,发现程序调用Native
直接拿出来so文件,扔IDA里分析
唉,没看出来是SM4,硬逆,没写对程序,一直没弄出来(急死了)
比赛完知道了,一看密钥、两个表、密文,唉,出了
1 | enflag[] =[ |
Revers02
四个部分分别加密,分别是乘法、异或、换表Base64、AES
1 | s2 = [0xc6,0x70,0xcc,0x66,0x68,0x60,0xc2,0x70] |
ps:别抄错数据。。
Pwn
pwn1
听说是道rust的re:
椰奶✌恢复的一部分符号:
pwn2
似乎是道栈迁移——
32位、无地址随机化、不可执行、无Canary保护、延迟绑定
主函数判断账号密码(明文判断)接着进入vuln函数:
只溢出了8个字节,刚好覆盖ebp和ret
翻书:stack pivoting
攻击者控制ESP和EBP值,通过伪造栈上的返回地址进而控制执行流。可用于NX或者处理占空间过小的问题
构造ROP链
好,ROP
之前利用栈溢出,只需将返回地址覆盖为jmp esp指令的地址,在其后加shellcode;如果引入NX保护,数据所在内存也不可执行,注入新代码不可行,那么就复用程序中已有的代码;而一个一个调用libc(或别的库)的函数,线性执行,且只能使用程序text段和libc中已有的函数,通过移除这些特定的函数就可以限制攻击,所以引入新的攻击技术——返回导向编程(ROP)
使用:扫描文件,提取出可用的gadget片段(通常以ret结尾),将gadget根据所需的功能进行组合
很好的gift👍
1 | from pwn import * |