首页 > 其他分享 >网络对抗实验8

网络对抗实验8

时间:2023-05-25 14:36:32浏览次数:45  
标签:Web 网络 用户 WebServer html 实验 对抗 输入 注入

《网络对抗技术》实验八:web综合

一、实践目标

1.Web前端HTML
能正常安装、启停Apache。理解HTML,理解表单,理解GET与POST方法,编写一个含有表单的HTML。
2.Web前端javascipt
理解JavaScript的基本功能,理解DOM。
在(1)的基础上,编写JavaScript验证用户名、密码的规则。在用户点击登陆按钮后回显“欢迎+输入的用户名”
尝试注入攻击:利用回显用户名注入HTML及JavaScript。
3.Web后端:MySQL基础:正常安装、启动MySQL,建库、创建用户、修改密码、建表
4.Web后端:编写PHP网页,连接数据库,进行用户认证
5.最简单的SQL注入,XSS攻击测试
6.选做Webgoat或类似平台的SQL注入、XSS、CSRF攻击各一例。

二、实践步骤

1.Web

1.1 Web前端HTML

kali默认已安装Apache,输入service apache2 start命令打开Apache服务,输入netstat -aptn查看端口信息,如果80端口被Apache2监听,则启动成功。

用虚拟机里的浏览器打开127.0.0.1,可正常打开Apache介绍网页,则开启成功。

终端输入 cd /var/www/html 进入Apache目录下,新建一个简单的含有表单的html文件
touch 1214.html(创建)
vi 1214.html(编辑)
编辑内容

20201214

Login





![](/i/l/?n=23&i=blog/2171774/202305/2171774-20230525142554516-1626931121.png)

在网页中输入/var/www/html/12114.html,显示一个网页表单

1.2 Web前端 :javascript

添加一段JavaScript代码,以完成对用户是否填写账号和密码的判断,在用户点击登陆按钮后回显“欢迎+输入的用户名”
在后添加如下代码

<body> <h2 align="center">myindex</h2> </body> </html> ![](/i/l/?n=23&i=blog/2171774/202305/2171774-20230525142630641-426247740.png)

尝试注入攻击

myindex

myindex

注入 html

hellolz

![](/i/l/?n=23&i=blog/2171774/202305/2171774-20230525142641223-858167796.png)

1.3 Web后端 :MySQL基础:正常安装、启动MySQL,建库、创建用户、修改密码、建表

输入 service mysql start开启MySQL服务
输入sudo mysql -u root -p使用mysql,默认密码是password

创建用户
CREATE USER lizhuang@localhost IDENTIFIED BY '20201214';

use mysql

输入set password for
root@'localhost'=password('20201214');,修改密码
输入create database LZ1;创建一个新的数据库lyf1,创建好之后查看一下show databases

Use lyf1
输入create table login(username VARCHAR(20),password VARCHAR(20));建立数据库表login,并设置字段基本信息
使用insert into 表名 values('值1','值2','值3'...);插入数据; insert into login values ('[email protected]', '20201214');
输入select * from login;查询表中的数据

在MySQL中增加新用户,输入grant select,insert,update,delete on lyf1.* to lizhuang@localhost identified by "20201214"; 命令在MySQL中增加新用户,这句话的意思是将对lyf1数据库的所有表的select,insert,update,delete权限授予当前主机localhost登录的用户,20201214是登录密码。

1.4 Web后端:编写PHP网页,连接数据库,进行用户认证

安装php
sudo apt-get install php
在/var/www/html目录下新建一个PHP测试文件phptest.php
vi phptest.php

输入
127.0.0.1/phptest.php

成功执行了 PHP 代码
连接数据库,进行用户认证
写 test.php 代码

connect_errno) { printf("Connect failed: %s\n", $mysqli->connect_error); exit(); } echo "connection ok!"; /* Select queries return a resultset */ if ($result = $mysqli->query($query_str1)) echo"
Success into database!"; echo$uname; if ($result = $mysqli->query($query_str)) { if ($result->num_rows > 0 ){ echo "
Welcome login Mr/Mrs:{$uname}:
"; } else { echo "
login failed!!!!
" ; } /* free result set */ $result->close(); } $mysqli->close(); ?>

将之前的 1214.html 中的中的 action 设为 test.php methond设为 POST
登录 127.0.0.1/4304.html 查看
但是这里我并未连接成功到数据库。

1.5最简单的攻击

(1)SQL 注入
输入' or 1=1#,密码随意

2、XSS攻击
在用户名输入,密码随便输

1.6.选做

(1)安装 Wdbgoat
参考博客[webgoat 安装教程(windows)] (https://article.itxueyuan.com/46nQXB)
(这个其实不需要windows+R那步,直接去浏览器打开http://127.0.0.1:8080/WebGoat就行)
(2)打开 Webgoat
(3)注册用户
(4)登录
(5)sql 注入
SQL Injection (intro) 第 10 页

(6)XSS
选择课程如下

由于 XSS 最终是要浏览器渲染的,因此,可以先按下 Purchase,看看哪个输入是会回显的
从上图可知,电话号码那个输入框的输入参数是会回显的在这个输入框中尝试输入

(7)CSRF
选择课程如下
这个任务是在保持当前页面(页面 1)打开的情况下,在新页面(页面 2)上创建以 csrf-为前缀的新用户,并以该新用户登录。然后在页面 1 上点击下图这个solved 按钮。但是在页面 2 上点击这个按钮也能通关,并且在页面 1 如果不重新登录根本点不了这个按钮,因为使用 csrf 用户登录需要先让原本的用户退出登录,而页面 2 上原本的用户退出了登录,页面 1 也会自动跳转到登录页面了。

三、基础问题回答

1.什么是表单
表单是一种用于收集和提交用户数据的交互式Web页面元素。它通常包含一系列输入字段,例如文本框、单选按钮、复选框、下拉列表和提交按钮。用户可以在表单中输入数据并将其提交到服务器进行处理。表单通常用于注册、登录、搜索、订购、调查等Web应用程序中。
2.浏览器可以解析运行什么语言
.浏览器可以解析运行多种语言,包括但不限于:
HTML:用于定义网页结构和内容。
CSS:用于定义网页的样式和布局。
JavaScript:用于实现网页的交互和动态效果。
PHP:用于服务器端编程,生成动态网页内容。
Python:用于服务器端编程和数据处理。
Ruby:用于服务器端编程和Web开发。
Java:用于服务器端编程和Web开发。
ASP.NET:用于服务器端编程和Web开发。

3 . WebServer 支持哪些动态语言

PHP:流行的WebServer Apache 和 Nginx 都支持 PHP,以及一些其他的WebServer,如 Lighttpd 和 Caddy 等。

Python: 有多种WebServer支持Python,其中包括当前最受欢迎的WebServer之一Gunicorn,nginx和Apache也支持Python解释器。

Ruby: WebServer支持Ruby,其中包括常见的服务器Puma,以及Passenger,Unicorn和Thin等服务器。

Node.js: 与其他语言不同,Node.js本身是一个WebServer,可以轻松地处理JavaScript应用程序。

Java: Java具有自己的WebServer,如Tomcat、JBoss和Jetty等。

总的来说,除了这些动态语言,WebServer还支持其他的一些语言,例如Perl、Lua、Go等。

4.防范注入攻击的方法有哪些?
注入攻击(Injection Attack)是一种常见的Web应用程序漏洞攻击,主要是通过将恶意代码注入到Web应用程序中,从而实现非法操作和获取数据。为了防止注入攻击,可以采取以下一些常见的方法:
输入校验:在接收输入数据时,对数据进行校验和过滤,防止包含恶意代码的输入,比如特殊字符、SQL和代码注入等。
参数化查询:采用参数化查询方式,确保输入的数据能够被正确处理,避免攻击者插入恶意代码。
代码审计:对网站的代码进行审计,查询是否存在注入漏洞,以期早期发现和及时修复漏洞。
最小化权限:在数据库设计时,为数据库用户分配最小化权限,仅给予访问必要表格的权限,减小数据库被攻击的损失。
加密机制:在网站中采用加密技术防止数据被黑客窃取,如使用SSL、TLS等方式实现加密传输。
更新补丁:及时安装网站开发厂商提供的升级补丁,确保程序版本更新至最新状态,以避免已知的漏洞被滥用。
安全培训:对开发人员、管理员和用户开展安全性培训,以提高其防范注入攻击的能力。
综上所述,防范注入攻击需要结合上述多种方法,且需要不断改进措施,保持警觉,以提高Web应用程序安全性保护。

四、实验体会

通过本次实验从另一个角度学习了HTML语言的编写,并加深了对MySQL数据库的理解和应用。最主要的是从反面学习如何防止sql注入和XSS攻击,本次实验虽然不难,但是第一次在Linux环境下部署,还是遇到了很多问题。比如在实验里,由于我的虚机是之前铐别人的,故而参考了负责任的报告进行了修改,然后就是最后始终没法连接到数据库。

标签:Web,网络,用户,WebServer,html,实验,对抗,输入,注入
From: https://www.cnblogs.com/luoyunfan/p/17431089.html

相关文章

  • 每日一练 | 网络工程师软考真题 Day11
    1、以下关于网络存储描述正确的选项是 。A.SAN系统是将存储设备连接到现有的网络上,其扩展能力有限B.SAN系统是将存储设备连接到现有的网络上,其扩展能力很强C.SAN系统使用专用网络,其扩展能力有限D.SAN系统使用专用网络,其扩展能力很强2、 是错误的网络设备选型原则。A.选择网络设备,应尽......
  • Cisco Secure Web Appliance Virtual 15.0 发布 - 适用于网络安全的思科高级威胁防护
    CiscoSecureWebApplianceVirtual,AsyncOSforWSA15.0.0LD请访问原文链接:https://sysin.org/blog/cisco-secure-web-appliance-15/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.orgCiscoSecureWebAppliance无惧高级威胁​自动拦截危险网站,在允许用户访问......
  • 某大型啤酒企业:构建网络安全软实力,首选Coremail反钓鱼演练
    客户背景某大型啤酒厂商的公司规模和市场份额多年来始终都处于行业领先地位,积极赞助多项体育赛事,持续丰富和提升品牌形象。作为一家具有全球影响力的企业,自然也成为了全球黑客等攻击团伙的重点目标,而系统攻击的开端便是钓鱼邮件,而网络安全不仅硬件防护做到位,软实力也更要跟上。员工......
  • 工程数学实验五
    (1)线性规划数学模型的建立:令x1、x2、x3分别表示种植a、b、c三种农作物的面积(单位:公顷)。目标:最大化总利润maximize:1500x1+1200x2+1800x3约束条件:劳力资源约束:450x1+600x2+900x3<=63000粪肥资源约束:35x1+25x2+30x3<=3300化肥资源约束:350x1+400x2+......
  • LINUX系列-网络篇
    一网卡配置配置文件位置:/etc/sysconfig/network-scripts/ifcfg-eth01.DEVICE=eth0网卡名字2.HWADDR=00:0c:29:90:89:d9HWADDRHardWareAddress硬件地址MAC地址3.TYPE=Ethernet网络类型。以太网4.UUID=ae779ae6-044d-43d5-a33b-48c89e8de10e#UUID做到系统中独一......
  • 工程数学实验三
    function[x_opt,f_opt,iter]=newton_method()%定义目标函数f=@(x)100*(x(1)^2-x(2))^2+(x(1)-1)^2;%计算目标函数的梯度和Hessian矩阵grad_f=@(x)[400*x(1)*(x(1)^2-x(2))+2*(x(1)-1);-200*(x(1)^2-x(2))];hessian_f=@......
  • 工程数学实验四
    function[x_opt,f_opt,iter]=conjugate_gradient()%定义目标函数f=@(x)100*(x(1)^2-x(2))^2+(x(1)-1)^2;%计算目标函数的梯度grad_f=@(x)[400*x(1)*(x(1)^2-x(2))+2*(x(1)-1);-200*(x(1)^2-x(2))];%定义终止准则e......
  • 创龙教仪TL6748-PlusTEB教学实验箱
    目 录1.实验箱简介 2.软硬件参数 3.可选摄像头模块 4.开发资料 5.电气特性 6.实验箱机械尺寸 7.产品认证 8.实验箱套件清单 9.技术支持 10.增值服务 更多帮助 附录A教学实验 1. 实验箱简介Ø 基于TITMS320C6748定点/浮点DSPC674x处理器,主频456MHz,高达3648MIPS和274......
  • 阿布云、青果网络、亿牛云、熊猫代理,隧道代理推荐哪一家?
    HTTP代理的广泛应用,隧道代理以其云端切换HTTP代理的特性、使用更加便捷显得尤为突出。不再像传统代理服务器的不断请求,隧道代理是高速HTTP隧道,通过将请求转发到不同的HTTP代理实现不断更换。目前市面上有隧道HTTP代理产品的厂商不多,也就那几家:阿布云、快代理、青果网络、小象代理、......
  • 【Kafka从成神到升仙系列 五】面试官问我 Kafka 生产者的网络架构,我直接开始从源码背
    ......