2017 ISG 管理运维赛(克拉玛依十三年团队)解题思路报告 V1.1
公司文档编号:SSN-17-09
团队名称:克拉玛依 十三年(Karamay SSN)
提交时间:2017 年 9 月
声明
本文档是高级中学十三年社团为 ISG 竞赛组委会、上海市信息安全行业协会提交的 ISG2017 解题文档,文档的所有权归十三年所有,任何对本文档的修改、发布、传播等行为都需要获得十三年的授权,十三年保留对违反以上声明的组织或个人追究责任,直至诉诸法律的权力。
ISG2017 解题思路报告
一、签到题
题目分析
题目需对 16 进制数据进行转换,无复杂逻辑,直接解码即可。
解题步骤
查看题目给出的 16 进制数据截图:
使用 16 进制转文本工具对数据进行转换,得到最终结果。
二、Remix(WEB 题型)
题目分析
访问目标地址后,图片以 Base64 编码形式呈现,需解密并定位正确访问路径。
解题步骤
访问初始地址http://127.0.0.1:8792,发现图片为 Base64 编码:
对 Base64 编码进行解密,提示需更换本地访问域名:
将替换为,重新访问http://localhost:8792,成功获取 Flag:
解题结果
Flag:ISG{38820fbe7be38eefc6593f07225b858c}
三、WMWCMS(WEB 题型)
题目分析
初始登录用户test/test无有效权限,需通过文件泄露获取源码,再经代码审计挖掘漏洞。
解题步骤
登录测试:使用test/test登录系统,无关键功能权限:
文件泄露挖掘:访问robots.txt,发现源码下载路径,获取完整源码:
代码审计:
定位核心文件app.php,发现通过action参数调用其他功能文件,无有效过滤:
重点分析sql.php和img.php:
sql.php:可通过dsn参数控制数据库连接地址:
img.php:图片路径由数据库portrait字段决定,可篡改该字段指向 Flag 文件:
漏洞利用:
本地搭建数据库,导入源码中user.sql,添加test/test用户,将portrait字段设为 Flag 路径../server/flag;
构造请求访问 Flag:http://202.120.7.204:7242/app.php?action=img&dsn=本地数据库名;host=本地服务器地址,成功获取 Flag。
四、ISGCoinMarket(WEB 题型)
题目分析
题目涉及概率计算,需通过多次尝试调整购买策略,达到目标条件即可获取 Flag。
解题步骤
尝试不同购买金额,发现单次购买最少亏损约 2100;
反复调整购买策略,直至满足 Flag 触发条件,成功获取 Flag(无固定步骤,需结合概率尝试)。
五、Login(RE 题型)
题目分析
需通过 GDB 调试获取关键寄存器值,与固定地址数据异或得到 Flag。
解题步骤
使用 GDB 调试目标程序,在0x4007a8处下断点;
输入用户名admin、任意密码,运行程序,收集断点处RSI寄存器的值;
将RSI值与0x601080地址处的数据依次异或,得到 Flag。
六、RansonWare(Mobile 题型)
题目分析
图片经 AES 加密,需修改加密函数为解密函数,获取解密后的图片内容(含 Flag)。
解题步骤
反编译 APK,定位 AES 加密核心代码:Cipher v0 = Cipher.getInstance("AES"); v0.init(1, ((Key)v2)),其中init第一个参数1表示加密;
修改 Smali 代码:将init第一个参数1改为2(2表示解密);
回编译 APK,重新签名并安装;
运行修改后的 APK,解密图片,获取 Flag。
hy:给主办方一个建议,这个比赛时间能不能改改?每次都是开学报道的时间,我们社团是高中生社团,社员大都是初中生和高中生,这次参赛我都是在学校趁每节课课间瞥一眼题然后上课想思路,中午没午休答题,团队其他人也都是差不多如此。若把时间放在暑假,我想参赛队伍会更多,参赛的质量和水平也会大幅提高。最后非常感谢贵平台提供的比赛环境和平台,祝 ISG 越办越好!你们辛苦了!
注:此解题报告(WP)被比赛主办方选入官方微信平台,对社团给予了宣传和鼓励。
详情链接: