首页
社区
课程
招聘
[原创]参加 看雪·TSRC CTF 2018 防守 题目提交
2018-11-19 19:39 2916

[原创]参加 看雪·TSRC CTF 2018 防守 题目提交

2018-11-19 19:39
2916
智能硬件PWN设计
qemu中基于linux的mips32位程序

版主,你好:
原题已经在
https://bbs.pediy.com/thread-228478.htm
发了,但是,因为原题有京东字样。所以对题目做了修改,同时,修复了原题有多个答案的bug,参加此次看雪·TSRC CTF 2018 防守赛。

1. 题目答案: 3f43ed6ff36724ca56e16038e692b5d75f1524ad31c1c5667111e3d30e553e0e

2. 题目设计说明:
题目使用素域64bit弱椭圆曲线,曲线参数如下:
p:  "8d5b53dd2e70fc93",
a:  "348020e40410f914",
b:  "22bb96de83b3eb71",
Gx: "1323f564d7976e65",
Gy: "2a193d3e7a6b1e29",
n:  "8d5b53dd4b7d51eb",
h:  "01"

该参数可以通过查看二进制文件的字符串直接获得;

答案分为两部分:
第一部分为根据字符串"Welcome to KanXue CTF 2018"使用椭圆曲线算法(ECDSA)进行签名所得到的签名值的R和S.
生成R和S需要曲线私钥, 为了减少破解时间,题目使用弱私钥0xF377F,私钥可以使用暴力穷举在1分钟内得到;
公钥可以通过反汇编程序得到.同时,(因为ECC可以有不同的签名)为了防止出现多组答案,会对输入的头16个字符
和xor加密后的答案进行比较。另外,程序中有关于ECDSA的提示:"hint:k is 5532091271463842210;", 其中k值是ECC标准
X9.62中用于计算签名R值的k。

第二部分为椭圆曲线上的点A的X坐标和Y坐标, 该点与椭圆曲线上的固定点B相加得到椭圆曲线上的固定点C;
求该点的办法为执行椭圆曲线减法: A=C-B
点B和点C的值可以通过查看二进制文件的字符串直接得到.

题目运行时需要先安装qemu。
题目运行命令如下:
qemu-system-mips -kernel ./vmlinux -hda  rootfs.img -append "root=/dev/sda console=ttyS0" -serial stdio -m 256

题目提供两个文件:
rootfs.img:  文件系统文件
vmlinux      linux内核文件

需要反编译的文件在文件系统/bin/kanxuectf2018中,大小为246k,使用mips指令集
文件系统为ext4文件格式.

题目有两种反调试手段:
 # ptrace反调试
 # SIGTRAP反调试


3. 破解思路
3.1 通过反汇编拿到曲线参数, 曲线公钥,C点坐标, B点坐标;
3.2 暴力穷举得到私钥,进行签名,得到答案第一部分;
3.3 C- B 得到答案第二部分.



[培训]二进制漏洞攻防(第3期);满10人开班;模糊测试与工具使用二次开发;网络协议漏洞挖掘;Linux内核漏洞挖掘与利用;AOSP漏洞挖掘与利用;代码审计。

最后于 2018-12-27 13:20 被kanxue编辑 ,原因:
上传的附件:
收藏
点赞1
打赏
分享
最新回复 (1)
雪    币: 7241
活跃值: (2635)
能力值: (RANK:520 )
在线值:
发帖
回帖
粉丝
netwind 13 2018-11-19 19:49
2
0
感谢提交!
游客
登录 | 注册 方可回帖
返回