步骤1:Web前端环境搭建与表单制作。 利用phpstudy_pro软件启动Apache服务。编写HTML文件,设计包含用户名和密码输入框的表单。在表单中添加onsubmit事件调用JavaScript函数validateForm。编写JS代码获取输入框的值,若为空则在id为tips的标签中显示“没有输入用户名”或“没有输入密码”;若输入正确,则显示“欢迎+用户名”。验证方法:在浏览器打开页面,测试空值和正常值的提示效果。
步骤2:MySQL数据库的配置与初始化。
启动phpstudy_pro中的MySQL服务。打开命令行进入mysql安装目录,执行命令mysql -u root -p并输入密码登录。依次执行CREATE DATABASE 20192414_database;创建数据库,USE 20192414_database;切换库,CREATE TABLE 20192414_table(username VARCHAR(50), password VARCHAR(50));创建表。执行INSERT INTO 20192414_table VALUES('admin', '123456');插入测试数据。验证方法:执行SELECT * FROM 20192414_table;,确认数据插入成功。
步骤3:编写PHP脚本实现用户认证。
创建hello_php.php作为登录页,表单action指向check.php。编写check.php,使用mysqli_connect连接数据库,参数为本地地址、root用户、密码及数据库名。获取POST提交的用户名和密码,构造SQL语句SELECT * FROM 20192414_table WHERE username='$username' AND password='$password'并执行查询。通过mysqli_num_rows判断结果行数,若大于0输出“登录成功”,否则输出“用户名或密码错误”。验证方法:输入正确的admin/123456显示成功,输入错误显示失败。
步骤4:SQL注入与XSS攻击测试。
在登录页的用户名字段输入' or 1 =1 #,密码任意,点击提交,验证显示“登录成功”,实现SQL注入。接着进行XSS测试,在用户名输入<script>alert(1);</script>,配合万能密码登录。验证方法:登录后页面成功弹出警告框,证明存在JavaScript注入漏洞;输入<h1>test</h1>则验证HTML注入。
步骤5:基于Pikachu平台的综合攻防演练。
访问本地搭建的Pikachu靶场。在SQL注入-数字型关卡,输入1 or 1=1,查看页面是否显示所有数据。在字符型关卡,输入' or 1=1#进行测试;在xx型关卡输入) or 1=1#。在反射型XSS (GET)关卡,由于输入框限制长度,使用Burp Suite抓包,将message参数修改为<script>alert(1);</script>后重放。验证方法:观察页面是否回显所有数据库信息或弹出弹窗,确认攻击有效。
实验结果 实验成功搭建了Web安全测试环境,实现了PHP连接MySQL的用户认证功能。通过构造恶意SQL语句和脚本代码,成功在自编网站和Pikachu靶场上实施了SQL注入绕过登录、XSS弹窗等攻击,验证了输入过滤缺失带来的安全漏洞,所有预期攻击测试均达到预期效果。
个人收获 实验深入理解了Web前后端交互逻辑,直观掌握了SQL注入与XSS攻击的原理及防御盲点。通过实战演练,提升了对漏洞特征的识别能力,掌握了Burp Suite工具的基本使用,为后续开发安全Web应用及构建防御体系积累了宝贵经验。
本文作者:Linxiong
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!