20222426 2021-2022-2 《网络与系统攻防技术》实验八实验报告
20222426 2021-2022-2 《网络与系统攻防技术》实验八实验报告
1.实验内容
(1)Web前端HTML
能正常安装、启停Apache。理解HTML,理解表单,理解GET与POST方法,编写一个含有表单的HTML。
数据传递方式:GET方法的参数包含在URL中,而POST方法的参数则放在请求体中。
安全性:虽然POST方法在数据传递上更安全,但仍需使用HTTPS协议来保护数据传输。GET方法由于参数暴露在URL中,更容易受到攻击。
数据量:POST方法没有数据长度的限制,可以传输大量数据;而GET方法由于URL长度的限制,传递的数据量有限。
缓存:GET请求默认允许缓存响应结果,而POST请求则不会。
幂等性:GET请求是幂等的,多次执行相同的请求不会对服务器状态产生影响;而POST请求则不是幂等的,每次执行都可能对服务器状态产生影响。
(2)Web前端javascipt
理解JavaScript的基本功能,理解DOM。
在(1)的基础上,编写JavaScript验证用户名、密码的规则。在用户点击登陆按钮后回显“欢迎+输入的用户名”
尝试注入攻击:利用回显用户名注入HTML及JavaScript。
JavaScript最初是为了在浏览器中运行客户端脚本而设计的。它允许网页在不需要重新加载整个页面的情况下,更新部分内容,从而实现动态和交互式的网页。
(3)Web后端:MySQL基础:正常安装、启动MySQL,建库、创建用户、修改密码、建表
MySQL是一个开源的关系型数据库管理系统。关系型数据库将数据保存在不同的表中,每个表由行和列组成,具有表头、行、列、键、值等要素。这种结构增加了数据访问的速度和灵活性。
(4)Web后端:编写PHP网页,连接数据库,进行用户认证
PHP(Hypertext Preprocessor,超文本预处理器)是一种广泛使用的开源服务器端脚本语言,特别适合用于Web开发,并可以嵌入到HTML中。PHP网页是指使用PHP语言编写的网页,这些网页通常包含HTML、CSS和JavaScript等前端技术,以及PHP代码来处理服务器端逻辑。
(5)最简单的SQL注入,XSS攻击测试
SQL注入是一种常见的安全漏洞,黑客可以通过注入恶意代码来攻击数据库和应用程序。
XSS(跨站脚本)攻击是指攻击者通过向Web页面注入恶意脚本,从而在用户浏览该页面时执行攻击者控制的脚本代码。
(6)安装DVWA或WebGoat平台,并完成SQL注入、XSS、CSRF攻击。
DVWA是一个故意设计得极易受到攻击的Web靶场,主要用于安全教育和渗透测试培训。它包含了多种常见的Web安全漏洞,如SQL注入、跨站脚本(XSS)、跨站请求伪造(CSRF)、文件包含等。
CSRF,全称Cross-site request forgery,翻译过来就是跨站请求伪造,是指利用受害者尚未失效的身份认证信息(cookie、会话等),诱骗其点击恶意链接或者访问包含攻击代码的页面,在受害人不知情的情况下以受害者的身份向(身份认证信息所对应的)服务器发送请求,从而完成非法操作(如转账、改密等)。
2.实验过程
(1)Web前端HTML
能正常安装、启停Apache。理解HTML,理解表单,理解GET与POST方法,编写一个含有表单的HTML。
Apache之前已经安装成功,使用service apache2 start命令打开Apache服务。
在浏览器输入 127.0.0.1,可以打开Apache的默认网页,成功。
输入cd /var/www/html,新建一个HTML文件login.html。
使用浏览器打开制作的网页,在浏览器输入localhost/login.html,如图。
(2)Web前端javascipt
理解JavaScript的基本功能,理解DOM。
在(1)的基础上,编写JavaScript验证用户名、密码的规则。在用户点击登陆按钮后回显“欢迎+输入的用户名”
尝试注入攻击:利用回显用户名注入HTML及JavaScript。
在login.html加上一段JavaScriptdiam,来判断用户是否填写了用户名和密码。即修改login.html。
如果不填写用户名直接登陆,会提示“请输入用户名”。
没有输入密码,会提示“请输入密码”。
在用户点击提交按钮后回显“欢迎!20222426”。
注入攻击如下:
(3)Web后端:MySQL基础:正常安装、启动MySQL,建库、创建用户、修改密码、建表
正常安装、启动MySQL,建库、创建用户、修改密码、建表。
验证操作是否成功,可以看到成功实现了上面的要求。
(4)Web后端:编写PHP网页,连接数据库,进行用户认证
创建一个20222426.php文件和修改login.html文件的action修改为20222426.php。
用户名:20222426why,密码:2426,登录成功。
如图,不满足用户名:20222426why,密码:2426,登录失败。
(5)最简单的SQL注入,XSS攻击测试
SQL注入 用户名:' or 1=1#,密码任意。
XSS攻击测试 用户名:,密码任意。
(6)安装DVWA或WebGoat平台,并完成SQL注入、XSS、CSRF攻击。
安装DVWA。
SQL Injection——Union注入
可以看到:Surname: admin。
可以看到:Surname: dvwa。
可以看到:Surname: users,Surname: guestbook。
可以看到:Surname: user_id,first_name,last_name,user,password,avatar,last_login,failed_login。
输入:1' UNION SELECT 1,group_concat(user,0x3a,avatar) from users#
可以看到:Surname: admin:/dvwa/hackable/users/admin.jpg,gordonb:/dvwa/hackable/users/gordonb.jpg,1337:/dvwa/hackable/users/1337.jpg,pablo:/dvwa/hackable/users/pablo.jpg,smithy:/dvwa/hackable/users/smithy.jpg
XSS攻击
发现:submit。
输入why,可以看到Hello why。
结果可以看到server没有对输入进行过滤,而是直接将内容传给浏览器。
CSRF攻击
首先观察URL。
修改密码,get型提交的参数会显示,并提示密码修改成功,URL:
http://127.0.0.1/dvwa/vulnerabilities/csrf/?password_new=20222426&password_conf=20222426&Change=Change#
浏览器中打开新页面访问上面的URL。
修改密码,URL变为:
http://127.0.0.1/dvwa/vulnerabilities/csrf/?password_new=123456&password_conf=123456&Change=Change#
返回原页面,点击TEST,用户名输入admin,密码输入123456,登录成功。
用户名输入admin,密码输入20222426,登录失败。
3.问题及解决方案
- 问题1:
使用MySQL不成功。 - 问题1解决方案:使用以下命令处理:
apt install mariadb-client-compat
即可正常使用。 - 问题2:刚开始不会使用DVWA靶场。
- 问题2解决方案:查阅相关博客,结合理解原理,就学会使用DVWA了。
4.学习感悟、思考等
通过本次实验,我不仅掌握了Web前端和后端的基本技能,还体会到了Web应用安全性的重要性,在编写Web应用时,必须注意防范相关的网络攻击。同时,在安装了DVWA平台后,我进行了SQL注入、XSS和CSRF攻击的实战演练。这些攻击方式让我体会到了Web应用安全性的复杂性。特别是CSRF攻击,它可以利用受害者的身份认证信息执行非法操作,具有极高的隐蔽性和危害性。通过演练,我学会了如何识别和防范这些攻击,并提高了自己的安全意识。
参考资料
posted on 2024-12-18 22:15 20222426魏宏宇 阅读(6) 评论(0) 编辑 收藏 举报