网络笔试题

1.查看B电脑网络是否能够通信(假设A的IP:1.100,B的IP:1.200,从A测试B)

答:在电脑A命令行输入:ping 1.0检查电脑A路由是否正常。如果电脑A能够与路由1.0通信,说明电脑A网络能正常通信。然后再从A测试B,再A命令行中输入:ping 1.200如果电脑A收到电脑B的回复,说明电脑B网络能够正常通信。

2.查看B设备80端口是否对外开放。(假设A的IP:1.100,B的IP:1.200,从A测试B)

答:第一步检查AB设备是否能够正常通信,在A设备命令行中输入:ping 1.200。如能正常通信,启用A设备的telnet客户端。在A设备命令行中输入:telnet 1.200 80,如果出现如下提示,说明B设备端口未对外开放。

3.TCP会话的五元组指什么

答:源IP地址、源端口、目的IP地址、目的端口、TCP协议。

4.HTTP request,response 分别分为哪几部分

答: 请求行
求方法字段、URL字段和HTTP协议版本
例如:GET /index.html HTTP/1.1
get方法将数据拼接在url后面,传递参数受限
请求方法:
GET、POST、HEAD、PUT、DELETE、OPTIONS、TRACE、CONNECT
请求头(key value形式)
User-Agent:产生请求的浏览器类型。
Accept:客户端可识别的内容类型列表。
Host:主机地址
请求体
post方法中,会把数据以key value形式发送请求
空行
发送回车符和换行符,通知服务器以下不再有请求头

 响应报文(状态行、消息报头、响应正文)
    状态行
    消息报头
    响应正文

5.当发现本地无法访问www.baidu.com的时候,网络上可能有哪些存在的问题,如何排查,简单描述

答:(1)检查是否有ip地址,再查看路由的ip是否与网卡ip在同一个网段,尝试ping通网卡,添加默认路由网关为虚拟机的网关,ping不通有问题重启网卡,前两项没问题就查看是否dns配置存在问题。再次访问www.baidu.com
(2)可能没有连接网络

6.描述在浏览器中输入一个URL后回车到返回页面信息的过程(尽量详细)

答:首先通过应用层DNS协议将URL解析为IP地址,然后通过HTTP协议生成HTTP请求数据包,HTTP生成的数据包会嵌入在TCP数据包中,TCP数据包需要设置端口,接收方的端口默认是80,本机端口是一个1024-65535之间的随机整数,这样TCP数据包由标头(标识着接收方和发送方的端口信息)+HTTP数据包构成,TCP数据包再嵌入IP数据包中在网络中传送。IP数据包需要知道双方的IP地址,所以IP数据包由头部(IP地址信息)+TCP数据包构成。之后IP数据包在嵌入到数据帧(以太网数据包)中,以太网需要知道双方的MAC,发送方为本机的网卡地址,接收方为网关的MAC(由地址解析协议得到),这样数据帧由头部(双方MAC)+IP数据包组成。经过多个网关的转发找到终端服务器IP,并请求对应端口服务,服务接收到发送过来的以太网数包据开始解析请求信息,从以太网数据包中提取IP数据包提取TCP数据包,最后抽取出HTTP数据包,并组装为有效数据交与对应线程池中分配的线程进行处理,在这个过程中,生成相应request、response对象。处理完后,将数据通过response对象内部的out给客户输出信息,输出信息也需要拼接HTTP协议头部分,标志out关闭后为断开连接,断开后,服务器端自动注销request、response对象,并将释放对应线程的使用标识。客户端接收到返回数据,去掉对应头信息,形成也可以被浏览器认识的页面HTML字符串信息,交与浏览器翻译为对应页面规则信息展示为界面内容。浏览器同样的过程读取到HTTP响应的内容(HTTP响应数据包),然后浏览器对接受到的HTML页面进行解析,把网页显示出来呈现给用户。

7,分别列出3种攻击服务器,客户端的攻击方式(不限于web攻击)

攻击客户端:XSS攻击:跨站脚本攻击,是指在通过注册的网站用户的浏览器内运行非 法的HTML标签或javascript,从而达到攻击的目的,如盗取用户的cookie,改 变网页的DOM结构,重定向到其他网页等。
重定向攻击: 攻击者会发送给受害者一个合法链接,当链接被点击时,用 户被导向一个似是而非的非法网站,从而达到骗取用户信任、窃取用户资料的 目的。
CSRF:跨站请求伪造,攻击者盗用了你的名义,以你的名义发送了请求。

攻击服务器:SQL注入:通过对web连接的数据库发送恶意的SQL语句而产生的攻击, 从而产生安全隐患和对网站的威胁,可以造成逃过验证或者私密信息泄露等危 害。
Dos攻击:是一种针对服务器的能够让服务器呈现静止状态的攻击方式其 原理就是发送大量的合法请求到服务器,服务器无法分辨这些请求是正常请求 还是攻击请求,所以都会照单全收。海量的请求会造成服务器停止工作或拒绝 服务的状态。这就是Dos攻击。
DDOS攻击:分布式拒绝服务攻击,dos是单挑,而ddos是群殴,因为现代技术的发展,dos攻击的杀伤力降低,所以出现了DDOS,攻击者借助公共网络,将大数量的计算机设备联合起来,向一个或多个目标进行攻击。

8,SQL注入攻击原理,与防护方法

SQL注入攻击就是把SQL命令伪装成正常的http请求参数,传递到服务端,欺骗服务器最终执行恶意的SQL命令,达到入侵目的。
SQL注入攻击原理如下:
String sql = “select * from user where nick = '” + nickname + “’ and password = '” + password + “’”;
Statement st = (Statement) conn.createStatement();
ResultSet rs = st.executeQuery(sql);
上述代码是校验用户名、密码是否有效,查询结果记录数大于0则表示有效。正常逻辑是用户名、密码匹配数据库记录;但攻击者会利用http参数进行SQL注入攻击,即password参数输入’ or ‘1’ = '1,导致SQL语句变为
select * from user where nick = ‘zhangshan’ and password = ‘’ or ‘1’ = ‘1’;

防护方法:
1、使用预编译语句
Java原生的预编译语句为PreparedStatement,是Java.sql中的一个接口,继承自Statement。
SQL执行 说明
Statement SQL语句(包含参数)会直接发给DBMS,编译后再执行
PreparedStatement SQL语句(参数为占位符?)发给DBMS编译,DBMS直接运行编译后的SQL语句,参数会在执行阶段传入
2、使用ORM框架
ORM框架如MyBatis http://www.mybatis.org/mybatis-3/,在Mapper XML配置的语句如下:

SELECT * FROM PERSON WHERE ID = #{id}

SELECT * FROM PERSON WHERE ID = ${id} 有两种参数传递的方式:#{}、${},两者的差异就在于,#是在预编译后,执行语句时再传递参数,$是先传递参数,然后再执行编译,再执行语句,SQL注入就是利用这种方式。

9、查看当前cpu信息,内存使用率,网卡信息,路由信息。

lscpu 或者 cat /proc/cpuinfo查看cpu信息
top查看内存使用率,“M”可以内存从大到小排序显示
ifconfig查看网卡信息
route -n 查看路由信息

10、查看当前使用cpu最高的进程号。

top后按”P”查看当前使用cpu最高的进程号。

11、查看linux是否能够上网

查看linux是否能够上网,ping www.baidu.com,ping通就行,如果不行就先ifconfig检查网卡是否有ip地址,没有再给它add一个ip地址,再设置路由的ip是否与网卡ip在同一个网段,尝试ping通网卡,如有问题重启网卡,前两项没问题就查看是否dns配置存在问题,vim /etc/resolv.conf traceroute nc
编写nameserver:114.114.114.114,再尝试ping百度查看linux是否能够上网

12、如何查看本地dns

cat /etc/resolv.conf查看本地dns

13、写出行一行linux操作命令,将/etc/passwd中包含"root"的一行数据写到/var/log/test1 中

cat /etc/passwd|grep root > /var/log/test1,将/etc/passwd中包含"root"的一行数据写到/var/log/test1 中

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值