信息安全实训:SQL注入与命令注入分析

需积分: 0 0 下载量 20 浏览量 更新于2024-08-05 收藏 801KB PDF 举报
"1713010552田靖宇-8月17日日志1" 这篇日志记录了作者在进行信息安全实训过程中的发现和学习,主要涉及两个练习(ics-04和ics-05)。在ics-04中,作者通过SQL注入技术来获取管理员权限,而在ics-05中,他发现了文件包含漏洞并利用PHP内置协议读取源代码,进一步探索可能存在的命令注入漏洞。 对于ics-04部分,作者首先注意到一个登录页面,推测管理员用户可能持有关键的“flag”。在尝试注册并登录普通用户失败后,他发现了一个密码找回功能。通过输入特定的SQL语句(如`1' OR (1) OR '1'`),他绕过了用户名的验证,从而进入了SQL注入阶段。由于直接的orderby操作被过滤,他转而使用了`UNION SELECT`来尝试获取信息。最终,他成功执行了`1' UNION SELECT 1, 2, GROUP_CONCAT(schema_name), 4 FROM information_schema.schemata#`,揭示了数据库名为“cetc004”。接着,他通过`UNION SELECT`获取了用户名和密码的明文,以及密保问题的答案。解密密码后,他成功登录并获得了flag。 ics-05的挑战中,作者注意到一个只显示部分内容的“index.php”页面,并在源代码中找到了一个名为“page”的GET参数,这可能意味着文件包含漏洞。他尝试使用PHP内置的`php://filter`协议来读取源代码,通过`/index.php?page=php://filter/read=convert.base64-encode/resource=index.php`获取了base64编码的源码。解密后,他观察到源码中的`preg_replace`函数,这是一个用于字符串替换的正则表达式函数,这提示可能存在命令注入的漏洞。然而,具体的命令注入测试和利用方法在这个日志中并未详述。 这篇日志展示了SQL注入和文件包含漏洞的基本利用步骤,以及对PHP安全函数的理解,这些都是网络安全和Web应用渗透测试中的关键技能。通过这样的实训,作者能够深入理解这些常见漏洞的工作原理,并提高自己的安全防护意识。