首页
社区
课程
招聘
[原创]【2019看雪CTF】Q1赛季 第三题影分身之术 WP
发表于: 2019-3-23 13:07 5930

[原创]【2019看雪CTF】Q1赛季 第三题影分身之术 WP

2019-3-23 13:07
5930

本题是delphi写的程序。试运行了下,发现有些似曾相识的感觉。后想起去年也出了个有很多地方类似的题,看了下作者是同一人,想来是去年的增强版。
这次题目分两部分,一部分还是web页面及js代码,第二部分是编码后的代码逐步解码并执行,应该算是一种VM吧。

第一部分页面代码及脚本代码如下(部分是解后的代码):

从上面的脚本代码能看出,输入的前10字节为simpower91,后面的输入通过#sptWBCallback:id=xxxxx;eventName=xxxxx;params=optionstr这种形式的“url”参数id传回应用。

0x492088处的函数解析url参数,然后调用493F70处函数。
493F70函数先检查了传入的输入长度是否为4:

然后检查data.txt是否存在(这个应该是测试时带的功能),如果存在就读取内容作为VM代码解析执行;不存在就读取文件结尾的VM代码解析执行。

VM代码解析执行前先解码,解码比较简单,就是按字节取反或与0xff异或。4734B0应该是VM相关处理的入口。VM代码分为两种,一种是需要handler处理的,一种是直接的机器码,示例如下:

VM的解析并写机器码在472EAC中实现,中间竟然还出现了相应汇编字串。

这个VM当时没完全看明白,但是校验算法可以看出来是传入参数按字节加0x7f后与常量比较,可在4734F1处下断跟踪。得到后4字节为a123

最终flag为simpower91a123


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 1
支持
分享
最新回复 (3)
雪    币: 236
活跃值: (10)
能力值: ( LV3,RANK:23 )
在线值:
发帖
回帖
粉丝
2
看了几个解析,楼主这个是说的最清晰的了。
2019-3-25 19:07
0
雪    币: 2428
活跃值: (159)
能力值: ( LV11,RANK:198 )
在线值:
发帖
回帖
粉丝
3
下次还会增强哦,本系列题目将会不断进化,欢迎再来
2019-3-27 09:45
0
雪    币: 13713
活跃值: (2851)
能力值: ( LV15,RANK:2663 )
在线值:
发帖
回帖
粉丝
4
simpower 下次还会增强哦,本系列题目将会不断进化,欢迎再来[em_1]
期待
2019-3-27 12:27
0
游客
登录 | 注册 方可回帖
返回
//