4.用户登录的 SQL 注入攻击
查看 login.php 程序代码,在第 39 行是查询用户名和密码的 SQL 语句,形式为:$query="select * from ".$t_name." where (id='".$id."')"." and (pass='".$pass."')";其中, $id 是用户输入的学号/工号, $pass 是用户输入的密码,用户可以在输入学号/工号和密码时,使用特殊符号,从而改变 SQL 查询语句的含义。
如果输入的用户名为'or'1'='1');#时,则会显示不同类型用户的第一个用户的信息。如果选择管理员用户类型,在用户名处输入'or'1'='1');#,则管理员用户 SQL 注入攻击的显示如图 6.10 所示;如果选择老师用户类型,在用户名处输入'or'1'='1');#,则老师用户 SQL注入攻击的显示如图 6.11 所示;如果选择学生用户类型,则学生用户 SQL 注入攻击的显示如图 6.12 所示。
在用户名为正常学号/工号的前提下,如果输入密码为'or '1'='1');#时,则以学号/工号账户的身份登录系统,这个密码被称为该系统的万能密码,只要学号/工号正确,则可以成功登录系统并进行各种操作。如若使用老师的工号 2002 和万能密码组合登录系统,则万能密码的 SQL 注入攻击的显示如图 6.13 所示。
6.6 文件上传漏洞攻击实验
6.6.1 实验目的
文件上传漏洞攻击实验要求理解文件上传漏洞的基本原理,掌握文件上传漏洞攻击的基本方法。
6.6.2 实验环境
文件上传漏洞攻击实验用于实现攻击学生成绩管理系统中的学生作业递交功能。当学生用户登录系统后,学生用户上传文件操作显示的效果如图 6.8 所示。登录学生用户可以选择要上传的文件,然后单击“递交作业”按钮,其效果如图 6.14所示。