[FlareOn6]DnsChess WriteUp
今天科恩面试当晚就拒了...还是水平太低, 有一点点小委屈...
华为阿里字节都表示不要24届实习生..., 说到底还是水平不够的婉拒吧.. 废话就到这儿
----
!(https://tianyu.xin/usr/uploads/2022/03/1966599587.png)
看着题目名字和文件感觉应该蛮有意思, 给了个流量包, 一个ELF和一个so, 先从流量包看看
!(https://tianyu.xin/usr/uploads/2022/03/3296757599.png)
清一色的DNS流量, 感觉值得关注的一个是域名的nonce, 域名的棋子名字, 一个是IP, 还有一个是Transcation ID. 这个ID不知道是协议默认还是自定义的包, 查一下
(http://c.biancheng.net/view/6457.html)
看了一下就是为了对应请求和应答的, 那应该没什么用, 主要还是关注nonce和IP
这是ELF, 感觉没啥用, 函数都在so里, 除了3AB0
!(https://tianyu.xin/usr/uploads/2022/03/1819151215.png)
看出来用了很多libgtk, 看看是啥, 查了一下应该是一个GUI库, 安一个
!(https://tianyu.xin/usr/uploads/2022/03/3397763725.png)
emm, 我感觉应该是我们得搞个有图形界面的来, 换vm吧.. 但是感觉基本就是按pcap里的这个移动棋子模拟一下, 另外pawn是卒, bishop是象, rook是车(原谅我的没文化)
!(https://tianyu.xin/usr/uploads/2022/03/2102025218.png)
so里感觉这个比较有用, 回到UI去看看哪儿用的
!(https://tianyu.xin/usr/uploads/2022/03/266977018.png)
这两个结合看可以猜测出来NextMove里肯定是不能走return2的,不然直接destroy了., 如果是0应该是继续走下一步, 1应该是胜利之类的
D120能判断出来应该是个循环变量, 游戏步数之类的, v3, v2和ptr+8虽然是匿名的, 但是感觉应该是起始位置-目标位置-移动棋子名字中的一个, 不知道顺序, 去so里看看怎么用的
!(https://tianyu.xin/usr/uploads/2022/03/2592926211.png)
注意到这了吧, 基本可以确定a2是名字, a3起始, a4目标
!(https://tianyu.xin/usr/uploads/2022/03/2629853059.png)
DNS结果要有, 第一节是0x7F, 第四节要是偶数, 第三节和0xF与之后要正好等于步数, 返回值是第四节的最高位
!(https://tianyu.xin/usr/uploads/2022/03/3757777040.png)
这个a5存了ip相关的两个东西, 还有一句跟step相关的骚话
!(https://tianyu.xin/usr/uploads/2022/03/2998948621.png)
一共十四句, 推测14步, 看看ip相关返回来干嘛了,
!(https://tianyu.xin/usr/uploads/2022/03/3986403750.png)
4AE0和4B60的参数, 暂时不关心, 我们还是考虑考虑怎么win, err, 回到ip的第四位的最高位, 需要是1
解析一下pcap, 把符合要求的都拿出来, 我个人喜欢导出成json然后直接操作json
直接筛选一下回复的包, python解析
```python
import json
data = json.load(open("out.json", "r", encoding="utf-8"))
cnt = 0
for i in data :
block = i['_source']['layers']['dns']['Answers']
key = list(block.keys())
name = block["dns.resp.name"]
ip = block["dns.a"]
ip = ip.split('.')
if ip != '127' or int(ip) & 1 == 1 :
continue
print(cnt, name, int(ip)&0xF, int(ip) >> 7)
cnt += 1
```
```pt
0 knight-g1-f3.game-of-thrones.flare-on.com 4 0
1 pawn-c2-c4.game-of-thrones.flare-on.com 1 0
2 bishop-f1-e2.game-of-thrones.flare-on.com 6 0
3 bishop-c1-f4.game-of-thrones.flare-on.com 5 0
4 bishop-c6-a8.game-of-thrones.flare-on.com 11 0
5 pawn-e2-e4.game-of-thrones.flare-on.com 3 0
6 pawn-e5-e6.game-of-thrones.flare-on.com 12 0
7 queen-d1-h5.game-of-thrones.flare-on.com 13 0
8 bishop-f3-c6.game-of-thrones.flare-on.com 10 0
9 bishop-f4-g3.game-of-thrones.flare-on.com 8 0
10 pawn-e4-e5.game-of-thrones.flare-on.com 9 0
11 queen-h5-f7.game-of-thrones.flare-on.com 14 1
12 bishop-e2-f3.game-of-thrones.flare-on.com 7 0
13 knight-b1-c3.game-of-thrones.flare-on.com 2 0
14 pawn-d2-d4.game-of-thrones.flare-on.com 0 0
```
这个结果...过于完美, 直接把答案展示在了我眼前, 我感觉到这儿就结束了, 按它的顺序走一趟, 走到第15就win了
dns是通过改host的方式改的, 毕竟这也找不到真的dns对应去
flag:LooksLikeYouLockedUpTheLookupZ@flare-on.com
蛮有意思的题 好好好好好好好 加油!fighting 好好好好好好好好
页:
[1]