栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

积累的hvv和重保的面试题(1)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

积累的hvv和重保的面试题(1)

这是2020年开始积累的,包括自己面试时被问的,各种招聘群水来的面试题
希望有所帮助,不过还是建议大家针对自己的简历来准备,问的都是根据简历来的

渗透测试步骤
信息收集
ip、子域名、cms、端口及存在的服务、弱口令、网站目录结构、域名的whois信息、服务器系统版本、中间件有没有已知的漏洞
漏洞扫描
开始检测漏洞,如XSS,XSRF,sql注入,代码执行,命令执行,越权访问,目录读取,任意文件读取,下载,文件包含,远程命令执行,弱口令,上传,编辑器漏洞,暴力破解等
漏洞利用
利用以上的方式拿到webshell,或者其他权限
权限提升
提权服务器,比如windows下mysql的udf提权,serv-u提权,windows低版本的漏洞,如iis6,pr,巴西烤肉,linux脏牛漏洞,linux内核版本漏洞提权,linux下的mysql system提权以及oracle低权限提权
日志清理
总结报告及修复方案

1.常问的漏洞
Sql注入原理:
就是在和数据库有交互的地方,对输入的参数没有进行严格的过滤导致输入的恶意查询语句被执行;或者对字符串进行拼接构造sql注入
sql注入的分类有哪些?
a.从注入方式上看有联合查询注入、报错型注入、布尔型注入、延时注入、堆叠注入这些
b.从数据类型上有:字符型、数字型
c.从注入位置可以分为GET型、POST型、HTTP头部、cookie数据

怎样防范sql注入?
a.对输入的数据长度进行限制
b.关键字过滤,比如:select、insert、order
c.对参数携带的特殊字符进行转义和过滤
d.最好的还是预编译:就是sql语句被数据库编译和优化后运行的语句以参数的形式进行查询,即使有敏感字符传递也会被参数化

Sql注入函数
Group_concat():将select的查询结果全部显示出来,占一个显示位
select version():查询MySQL版本
select user():查询数据库用户名
select database():查询数据库名
select @@datadir():查询数据库的绝对路径
select @@version_compile_os:查询操作系统版本
select current_user():查询当前用户
Order by: 找列的数量
Union select:联合查询(联合查询的条件是前一条语句查询不到且字段数与前一条语句的查询字段数一致)
limit:限制显示个数(如:limit 0 2 表示从第一个开始显示两个)

csrf原理是什么?
跨站请求伪造,就是挟持了当前已经登录的用户程序去做用户非本意的操作,比如说在用户已经登录淘宝的情况下,用户去点开了
另一个恶意链接,然后恶意链接就是请求修改用户淘宝密码的,这种情况就是跨站请求伪造
怎样防范csrf?
1.就是那个好像叫同源策略,检查referer字段,拒绝非本站的请求,但是要注意referer为空的情况,还有就是部分匹配的情况
2.另外一个检查taken校验码,服务器生成的伪随机数发给用户,后台会拒绝掉错误的请求

Ssrf和csrf漏洞的区别:
csrf由客户端发起请求的安全漏洞
Ssrf是由服务器端发起请求的安全漏洞

什么是xss?
跨站脚本攻击:往web页面中插入恶意代码,用户浏览该网页时恶意代码会执行
攻击途径:
1.对普通的用户输入页面原样输出
2.代码区有用户输入的内容
3.允许用户输入html标签的页面
怎样防范?
主要就是过滤输入和转义输出
1.比如说对用户提交的url、http头、post数据进行输入验证
2.输出的话,比如说对用户输出的内容使用标签,标签内的内容会直接显示
3.还有就是严格控制字符输入字数
4.或者在脚本执行的代码里杜绝掉用户输入

csrf、ssrf、xss区别?
不同:
xss:是对输入的数据没有足够的过滤,导致客端HTML页面出现恶意代码被执行
csrf:是对用户提交的随机校验和对http请求包内的refer字段校验不严
ssrf:对用户提供的url过于信任,没有做地址限制和更多的检测

反序列化
序列化:把对象转换成字节流,便于保存或者传输;
反序列化:就是把字节流还原成对象
Java中的ObjectOutputStream类的writeObject()方法可以实现序列化,
ObjectInputStream类的readObject()方法用于反序列化。
在java读取完字节流后,会判断是否存在用户自定义的“readObject”方法,如果存在的话,就优先使用udf。所以,如果存在一个自定义了“readObject”方法的对象,而这个方法是危险的,比如说执行系统命令,就会导致反序列化后形成威胁。
怎样防范?
需要在objectinputstream类反序列化时,对生成的对象类型做限制,比如说设置白名单

Xxe

xxe原理是什么?
xml外部实体注入漏洞:注入是指xml数据在传输过程中被修改,导致服务器哦执行了恶意代码
外部实体:是指攻击者通过利用外部实体声明来对xml进行修改,插入恶意代码
xxe漏洞发生在应用程序解析xml输入时,没有禁止外部实体的加载,导致可加载恶意文件,造成文件读取、命令执行
等攻击
xxe漏洞触发点往往是:可以上传xml文件的位置、没有对上传的xml文件进行过滤、导致可以上传恶意的型命令、文件
怎样利用漏洞?
1.读取本地文件
2.读取php我呢见
3.无回显读取本地文件、内网主机、端口探测
4.ddos攻击
如何防范?
配置xml处理器使用禁用DTD、禁止外部实体解析
使用开发语言提供的禁用外部实体的办法
通过黑名单过滤用户提交的xml数据
不允许xml中含有任何自己声明的DTD

登录页面漏洞:
1.弱口令,2.万能密码 3. 暴力枚举

文件上传原理
在文件上传的功能处,若服务端脚本语言未对上传的文件进行严格验证和过滤,导致恶意用户上传恶意的脚本文件时,就有可能获取执行服务端命令的能力,这就是文件上传漏洞。

存在文件上传功能的地方都有可能存在文件上传漏洞,比如相册、头像上传,视频、照片分享。论坛发帖和邮箱等可以上传附件的地方也是上传漏洞的高危地带。另外像文件管理器这样的功能也有可能被攻击者所利用值得注意的是,如果移动端也存在类似的操作的话,那么相同的原理,也存在文件上传漏洞的风险

计算机网络方面:
Referer字段作用:标识请求源地址
1.防盗链、2.防止恶意请求

数据库方面:
常见数据库:
Oracle数据库 DB2数据库
SQL Server数据库 PostgreSQL数据库
MySQL数据库 Sybase数据库
Rip工作原理
工作原理:
  1 、初始化——RIP初始化时,会从每个参与工作的接口上发送请求数据包。该请求数据包会向所有的RIP路由器请求一份完整的路由表。该请求通过LAN上的广播形式发送LAN或者在点到点链路发送到下一跳地址来完成。这是一个特殊的请求,向相邻设备请求完整的路由更新。
  2 、接收请求——RIP有两种类型的消息,响应和接收消息。请求数据包中的每个路由条目都会被处理,从而为路由建立度量以及路径。RIP采用跳数度量,值为1的意为着一个直连的网络,16,为网络不可达。路由器会把整个路由表作为接收消息的应答返回。
  3、接收到响应——路由器接收并处理响应,它会通过对路由表项进行添加,删除或者修改作出更新。
  4、 常规路由更新和定时——路由器以30秒一次地将整个路由表以应答消息地形式发送到邻居路由器。路由器收到新路由或者现有路由地更新信息时,会设置一个180秒地超时时间。如果180秒没有任何更新信息,路由的跳数设为16。路由器以度量值16宣告该路由,直到刷新计时器从路由表中删除该路由。刷新计时器的时间设为240秒,或者比过期计时器时间多60秒。Cisco还用了第三个计时器,称为抑制计时器。接收到一个度量更高的路由之后的180秒时间就是抑制计时器的时间,在此期间,路由器不会用它接收到的新信息对路由表进行更新,这样能够为网路的收敛提供一段额外的时间。
  5、 触发路由更新——当某个路由度量发生改变时,路由器只发送与改变有关的路由,并不发送完整的路由表。

OSPF的工作原理
工作原理
OSPF的简单说就是两个相邻的路由器通过发报文的形式成为邻居关系,邻居再相互发送链路状态信息形成邻接关系,之后各自根据最短路径算法算出路由,放在OSPF路由表,OSPF路由与其他路由比较后优的加入全局路由表。整个过程使用了五种报文、三个阶段、四张表。
五种报文
Hello报文:建立并维护邻居关系。
DBD报文:发送链路状态头部信息。
LSR报文:把从DBD中找出需要的链路状态头部信息传给邻居,请求完整信息。
LSU报文:将LSR请求的头部信息对应的完整信息发给邻居。
LSACK:收到LSU报文后确认该报文。
三个阶段
邻居发现:通过发送Hello报文形成邻居关系。
路由通告:邻居间发送链路状态信息形成邻接关系。
路由计算:根据最短路径算法算出路由表。
四张表
邻居表:主要记录形成邻居关系路由器。
链路状态数据库:记录链路状态信息。
OSPF路由表:通过链路状态数据库得出。
全局路由表:OSPF路由与其他比较得出。
工作过程
(1)了解自身链路
每台路由器了解其自身的链路,即与其直连的网络。
(2)寻找邻居
不同于RIP,OSPF协议运行后,并不立即向网络广播路由信息,而是先寻找网络中可与自己交换链路状态信息的周边路由器。可以交互链路状态信息的路由器互为邻居。
(3)创建链路状态数据包
路由器一旦建立了邻居关系,就可以创建链路状态数据包。
(4)链路状态信息传递
路由器将描述链路状态的LSA泛洪到邻居,最终形成包含网络完整链路状态信息的链路状态数据库。
(5)计算路由
路由区域内的每台路由器都可以使用SPF算法来独立计算路由。
Rip和ospf区别:
rip:路由信息协议,快被淘汰。15跳为最大值,只能用于小型网络。,根据路径选择不一定是最优路径
ospf:开放式最短路径优先,收敛速度快,根据带宽来选择最短路径,使用于大型网络。
缺点:配置复杂,负载均衡能力比较弱

1.TCP/IP 三次握手过程,四次挥手?
第一次握手
客户主动去连接服务器,并且发送SYN=1,seq=x,服务器是被动打开
第二次握手
服务器在收到SYN后,它会发送一个SYN以及一个ACK(应答)给客户,
SYN=1,ACK=1,seq=y,ack=x+1
第三次握手
客户在收到新SYN , ACK 后,也回应ACK=1,seq=x+1,ack=y+1
然后两边就可以开始数据发送数据了
为什么需要三次握手:
为什么需要三次:第一次客户端的发送能力和服务器端的接受能力都是正常的,第
二次客户端得出服务端的接收发送能力,客户端的接收发送能力是正常的。但是服务
器并不能确认客户端的接收能力是否正常。第三次握手,服务端得出结论,客户端的
收发能力正常,自己的收发能力也是正常的
Syn攻击:服务器端在二次握手的时候分配资源,客户端在三次握手的时候分配资源,
所以服务器容易遭到syn泛洪攻击。即客户端在短期内制造大量不存在的IP地址,不断
发送syn包,等待服务器确认,因为原地址不存在,所以服务器端需要不断重发直至超
时,伪造的syn包将长时间占用未连接队伍,导致正常的syn请求因为队列满了而被丢弃
从而导致网络拥塞甚至瘫痪
四次挥手:
客户:FIN=1,seq=u,服务器关闭等待,并通知应用程序
服务器:ACK=1,seq=v,ack=u+1,客户端终止等待
服务器:FIN=1,ACK=1,seq=w,ack=u+1
客户:ACK=1,seq=u+1,ack=w+1最终确认关闭
为什么需要四次挥手:闭连接时,当服务端收到FIN报文时,
很可能并不会立即关闭SOCKET,所以只能先回复一个ACK
报文,告诉客户端,“你发的FIN报文我收到了”。只有等
到我服务端所有的报文都发送完了,我才能发送FIN报文,因
此不能一起发送。故需要四次挥手。
SYN:确立联机
ACK:确认
FIN:结束

Sql注入函数
Group_concat():将select的查询结果全部显示出来,占一个显示位
select version():查询MySQL版本
select user():查询数据库用户名
select database():查询数据库名
select @@datadir():查询数据库的绝对路径
select @@version_compile_os:查询操作系统版本
select current_user():查询当前用户
Order by: 找列的数量
Union select:联合查询(联合查询的条件是前一条语句查询不到且字段数与前一条语句的查询字段数一致)
limit:限制显示个数(如:limit 0 2 表示从第一个开始显示两个)

(一) 冰蝎简介
冰蝎是一款基于Java开发的动态加密通信流量的新型Webshell客户端
特点:
流量加密,难以被检测
webshell免杀性好
加密方式:aes加密

主要功能为:基本信息、命令执行、虚拟终端、文件管理、Socks代理、反弹shell、数据库管理、自定义代码等,功能非常强大

加密原理:

客户端用GET形式向服务器发起带密码的请求
服务端产生随机密钥,将密钥写入session返回给客户端
客户端获取到密钥后,将payload用AES加密,用POST形式发送请求
服务器收到请求后,用session中的密钥解密请求的Body部分,之后执行Payload,直接将结果返回到客户端。
客户端获取执行结果,显示到UI界面上。

(二) 冰蝎工具通信原理
冰蝎的通信过程可以分为两个阶段:
1.密钥协商
2.加密传输

    第一阶段-密钥协商
    1)攻击者通过 GET 或者 POST 方法,形如 http://127.0.0.1/shell.aspx?pass=645 的请求服务器密钥;
    2)服务器使用随机数 MD5 的高16位作为密钥,存储到会话的 $_SESSION 变量中,并返回密钥给攻击者。第二阶段-加密传输
    1)客户端把待执行命令作为输入,利用 AES 算法或 XOR 运算进行加密,并发送至服务端;
    2)服务端接受密文后进行 AES 或 XOR 运算解密,执行相应的命令; 3)执行结果通过AES加密后返回给攻击者。

二、冰蝎特征检测
总结冰蝎在流量交互中的特征,这些特征可分为两类。一类是可绕过特征,这类特征攻击者可通过构造报文进行绕过,致使设备检测不到冰蝎 webshell 特征。另一类是非可绕过特征,攻击者在某些情景无法更改 HTTP 某些字段,致使有固定报文字段可供设备检测。
一) 可绕过特征

    Accept字段
    Accept是HTTP协议常用的字段,但冰蝎默认 Accept 字段的值却很特殊,这个特征存在于冰蝎的任何一个通讯阶段。如下:
    Accept: text/html,image/gif, image/jpeg, *; q=.2, /; q=.2UserAgent字段
    冰蝎内置了十余种 UserAgent ,每次连接 shell 会随机选择一个进行使用。如果发现历史流量中同一个源IP访问某个URL时,命中了多个 UserAgent ,可基本确认为冰蝎特征。长连接
    冰蝎通讯默认使用长连接,避免了频繁的握手造成的资源开销。默认情况下,请求头和响应头里会带有 Connection。

(二) 非可绕过特征

    密钥传递时URL参数
    密钥传递时,URI只有一个参数,key-value型参数,只有一个参数。Key是黑客给shell设置的密码,一般为10位以下字母和数字,很少有人设置特殊字符做一句话密码的(少数情况我们不考虑)。而Value一般是2至3位随机纯数字。加密时的URL参数
    在加密通讯过程中,无URL参数。如下:
    .(php|jsp|asp|jspx|asa) HTTP/1.1传递的密钥
    加密所用密钥是长度为16的随机字符串,小写字母+数字组成。密钥传递阶段,密钥存在于Response Body中。正则如下:
    1{16}$
    4.加密数据上行
    在加密通讯时,php/jsp shell 会提交base64编码后的请求数据。用如下正则便可以很好的匹配。数字20是指定的字符出现至少20个才会匹配。正则如下:
    rnrn[a-zA-Zd+/]{20,}密数据下行
    该特征同样存在于加密通讯时,在返回包中的数据是加密后的二进制数据。这里使用正则的“非”匹配二进制非常见字符。正则如下:
    ”[ws><=-‘”:;,!(){}][w]{2}[ws><=-‘”.:;,!(){}][a-zA-Zd]{2}”

Windows查看某个端口被哪个进程占用
一、开始–>运行–>cmd,或者是按window+R组合键输入cmd,调出命令窗口
二、查看占用端口的进程
执行命令 Netstat -aon|findstr “8090”
四、结束该进程
在cmd的命令窗口中输入:
taskkill /f /t /im java.exe
查看Linux端口占用,并kill掉相关进程
方式一:lsof命令
1、查看占用端口进程的PID:lsof -i:{端口号}
2、根据PID kill掉相关进程:
kill -9 {PID}
方式二:netstat命令
1、查看占用端口进程的PID:
netstat -tunlp|grep {port}
2、kill方法如上。
kill -9 {PID}

2.OSI七层模型?TCP/IP四层?
应用层 (Application):
网络服务与最终用户的一个接口。
协议有:HTTP FTP TFTP SMTP SNMP DNS TELNET HTTPS POP3 DHCP
表示层(Presentation Layer):
数据的表示、安全、压缩。
对来自应用层的命令和数据进行解释,对各种语法赋予相应的含义,并按照一定的格式传送给会话层
会话层(Session Layer):
建立、管理、终止会话。(在五层模型里面已经合并到了应用层)
对应主机进程,指本地主机与远程主机正在进行的会话
传输层 (Transport):
定义传输数据的协议端口号,以及流控和差错校验。
网络层 (Network):
进行逻辑地址寻址,实现不同网络之间的路径选择。
数据链路层 (link):
建立逻辑连接、进行硬件地址寻址、差错校验等功能。(由底层网络定义协议)
将比特组合成字节进而组合成帧,用MAC地址访问介质,错误发现但不能纠正
物理层(Physical Layer)
物理层为设备之间的数据通信提供传输媒体及互连设备,为数据传输提供可靠的
环境。用传输介质来提供物理连接,实现信息的传输
四层模型
数据链路层:arp协议
网络层:ip,icmp协议
传输层:tcp,udp协议(TCP传输控制协议为应用层提供可靠的、面向连接的的服务。
udp为应用层提供不可靠、无连接和基于数据报的服务,UDP协议只是单地通知应用程序发送失败
通信双方不保持一个长久的联系)
应用层:ping,telnet,ospf,dns等协议

防火墙类型:
包过滤防火墙:现在静态包过滤防火墙市面上已经看不到了,取而代之的是动态包过滤技术的防火墙。

代理防火墙:因为一些特使的报文可以轻松突破包过滤防火墙的保护,比如SYN攻击、ICMP 洪水攻击,所以一代理服务器作为专门卫用户保密或者突破访问限制的数据转发通道的应用failing防火墙出现了。
其实用了一种应用协议分析的新技术。

状态监测防火墙:其基于动态包过滤技术发展而来,加入了一种状态监测的模块,近一点发展会话过滤功能,会话状态的保留是有时间限制的,此防火墙还可以对报的内通进行分析,从而避免开放过多的端口。

安全设备
WAF:Web应用防火墙 —应用层的攻击防护
IDS:入侵检测系统 —
IPS:入侵防御系统
SOC:安全运营中心
SIEM:信息安全事件管理
Vulnerability Scanner:漏洞扫描器
UTM:统一威胁管理
抗DDOS产品
FireWall:防火墙—上网行为管理软件,主机安全
VPN:虚拟专用网络
一、 WAF 应用防火墙
范围:应用层防护软件
作用:
通过特征提取和分块检索技术进行模式匹配来达到过滤,分析,校验网络请求包的目的,在保证正常网络应用功能的同时,隔绝或者阻断无效或者非法的攻击请求
可防:(源自应用程序的安全漏洞)
SQL注入漏洞,跨站脚本XSS,文件包含和安全配置错误等漏洞
特点:
区别与传统防火墙,可以防护特定的应用程序,传统防火墙只能在服务器之间作用
缺点:
1) 特定的防护手段可以被绕过或者无效化,必须同攻击手段一起升级进步,否则将失去效用。
2) 需要和入侵检测系统等安全设备联合使用,且防护程度和网络的性能成反相关。

二、IDS 入侵检测系统:
范围:网络层防护软件
作用:(识别攻击行为并且报警)
积极主动的防护措施,按照一定的安全策略,通过软件,硬件对网络,系统的运行进行实时的监控,尽可能地发现网络攻击行为,积极主动的处理攻击,保证网络资源的机密性,完整性和可用性。
特点:
1) 是一个积极主动的监听设备。
2) 无需有流量经过,可以实时镜像流量过去分析监控
3) 不影响网络的性能。
4) 部署位置尽可能靠近攻击源或者受保护资源(服务器区域交换机,互联网接入路由后第一个交换机,重点保护源交换机)
缺点:
1) 误报率高
2) 没有主动防御能力,仅仅是监控或者少量的反制能力
3) 不能解析加密的数据流

三、IPS 入侵防御系统(入侵检测+入侵防御)
作用:(实时监控网络行为,中断或者调整隔离网络非法行为,比IDS具有防御能力)
是计算机网络安全设施,是对防病毒软件和防火墙的补充。入侵预防系统是一部能够监视网络或网络设备的网络数据传输行为的计算机网络安全设备,能够即时的中断、调整或隔离一些不正常或是具有伤害性的网络数据传输行为。
必要性:
传统防火墙作用在2-4层,对4层以上的防护作用很小(4层以上需要拆数据包,而拆数据包会影响速率),病毒软件工作在5-7层,这样中间4-5层属于空挡,所以IPS是作为病毒软件和防火墙的补充,作用在4-5层
特点:
比IDS不仅可以防护还具有了反制,组织攻击的能力,防攻兼备
缺点:
IPS的防护方式一般以阻断受保护源和外界的联系为主,这样带来的一个弊端就是,网络资源被保护了,但是同时该网络资源的对外提供的服务也被阻断了或者削弱了,这就导致了一种敌我两伤的局面,而有些服务一旦停止,对运营者来说将是一笔不小的损失。

3.端口如21.22.23.53.3389等端口是干什么的
21:FTP文件传输协议
22:SSH远程连接
23:TELNET远程登录
25:SMTP邮件服务
53:DNS域名系统
80:HTTP超文本传输协议
443:HTTPS安全超文本传输协议
1433:MSSQL
3306:MYSQL
3389:windows远程桌面服务端口
7701:weblogic
8080:TCP,HTTP协议代理服务器:Apache-tomcat默认端口号


  1. a-fA-F0-9 ↩︎

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/753976.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号