XSS跨站脚本攻击以及SQL注入攻击实验报告
XSS跨站脚本攻击
学号/工号查询
输入正确的信息后,我们会得到正确的输出结果。如果输入的名字在数据库中不存在,则无法查询到结果。
XSS跨站脚本攻击
根据判断,我们可以用一段JavaScript语言写的代码“”或者“
SQL注入攻击
学号查询功能的SQL注入攻击
我们先查看一下query.php程序代码
发现其19行,33行,47行查询语句是一样的,形式为
$query=”select id from admins where name=’’’.$name.’’’’’’
其中,$name是用户输入的字符串,如果输入内容为’or’1’=’1’#,那么该SQL语句变成了无条件查询语句。效果如下
造成这样情况的原因在于代码执行条件发生了变化,只要’1’=’1’就可以运行,而我们知道’1’=’1’的值为真,所以成为了无条件查询语句,会把所有结果都输出。此处要注意原代码的单双引号闭合问题。在有了代码后,我们可以针对引号数量不同,改写我们的字符串,但是在实际中,要进行尝试。
用户登录的SQL注入攻击
我们先查看login.php的程序代码
在第39行其查询用户名和密码的SQL语句为
$query="selsect * from".$t_name."where (id='".$id."')"."and(pass='".$pass."')";
我们是在$id处输入用户名。
当我们输入’or’1’=‘1’); 时,就会显示用户信息。
实现效果如下
此时输入的括号是为了和之前的匹配。