JarvisOJ:实战渗透挑战与信息获取技术

需积分: 9 0 下载量 154 浏览量 更新于2024-07-05 收藏 6.73MB DOCX 举报
"JarvisOJ 是一个综合性的在线编程竞赛平台,提供了多种挑战环节以测试参赛者的技能。本文将介绍几个关键知识点: 1. JarvisOJ-WEB 部分:该部分强调了平台的安全性,特别是对访问控制的设置。题目要求使用特定端口(PORT51-100)访问,参与者需利用Kali Linux等工具,通过控制源端口为51进行通信。在这个过程中,通过curl命令并指定本地端口51访问服务器,成功获取了flag,这展示了对网络协议和端口理解的应用。 2. LOCALHOST:此环节关注IP验证,服务器通过检查header中的X-FORWARDED-FOR字段来判断访问来源。参赛者需要通过伪造IP地址并绕过这种检测,例如使用SQL注入技术,通过构造带有特定字符串(如`ffifdyop`)的查询语句,实现了注入攻击以获取flag。 3. Login 部分:涉及到表单登录,需要识别并利用MD5哈希函数的特性进行破解。由于`true`参数导致MD5返回原始16字符二进制格式,参赛者利用这个特性构造SQL注入语句,绕过了加密,成功拿到flag。 4. 神盾局的秘密:此部分涉及图像隐藏和文件读取。在`showing.php`中的图片被Base64编码,解码后发现名为`shield.jpg`的文件。进一步探索`showimg.php`和`index.php`,通过F12开发者工具审计代码,最终在`pctf.php`中找到真正的flag。隐藏在源代码中的注释揭示了flag的内容。 5. API调用:这部分挑战涉及API接口的理解和操作。抓包分析显示,API返回的是XML格式的信息,包含了一些预定义的结构。参赛者需要使用重发器修改Content-Type头,将其改为"text/xml",以便正确解析XML文档并发现隐藏的flag。在XML文档中,flag的信息以注释形式存在,如`<!--?php //TrueFlag... -->`。 JarvisOJ提供了丰富的安全测试场景,参赛者不仅需要扎实的编程基础,还需要对网络协议、加密算法、文件操作和HTTP请求头有深入理解,才能完成各种挑战并获取flag。"