18143453325 在线咨询 在线咨询
18143453325 在线咨询
所在位置: 首页 > 营销资讯 > 网站运营 > 笔记

笔记

时间:2023-04-29 05:27:02 | 来源:网站运营

时间:2023-04-29 05:27:02 来源:网站运营

笔记:

1.自我介绍

2.OSI七层模型,每层的名字和作用

物理层 :比特流传输

数据链路层:物理寻址,同时将原始比特流转变为数据链路

网络层 :寻址和路由选择

传输层 :建立主机端到端的连接

会话层 :建立、维护和管理回话

表示层 :处理数据格式、数据加密等

应用层 :提供应用程序间通信 协议:http ftp 等




3.常见服务默认端口号

http:80 https:443 ftp:20/21 DNS:53 SMTP:25

pop3:110 telnet:23 ssh:22 dhcp:67/68




4.DNS服务端口号是多少?走的是什么协议?分别有什么作用?

DNS服务器间进行域传输的时候用TCP 53

客户端查询DNS服务器时用UDP 53




5.DHCP服务端口号是多少,分别是干什么的

DHCP服务端口是UDP67和UDP68,这两个端口是正常的DHCP服务端口,可以理解为一个发送、一个接受。

客户端向68端口广播请求配置。

服务器向67端口广播回应请求。




6.帧的作用

只管从一个网卡到另外一个网卡




7.交换机的工作原理

1.交换机会根据原mac地址形成mac地址表,交换机根据mac地址表表项来决策是否泛洪、转发、丢弃。

2.如果进入交换机的是一个广播帧,则交换机不会去查mac地址表,而是直接执行泛洪操作。

3.如果进入交换机的是一个单播帧,则交换机回去mac地址表中查找这个帧的目的mac地址。

1)如果查不到这个mac地址,则交换机执行泛洪操作。

2)如果查到了这个mac地址,则比较这个mac地址在mac地址表中对应的接口是不是这个帧进入交换机的那个端口。如果不是则交换机执行转发操作。如果是则交换机执行丢弃操作。




8.路由器的工作原理

1.基于路由协议构建路由表。

2.路由器收到数据包----拆包----对照数据包目标ip查看路由表----有匹配则转发到相对应的网络,无匹配则丢弃。

3.路由器两大典型功能:逻辑寻址和数据转发。




9.交换机和路由器的工作原理的区别

1.工作所处的osi层次不一样,二层交换机工作在osi第二层数据链路层,路由器工作在osi第三层网络层。

2.寻址方式不用:交换机根据mac地址寻址,路由器根据ip地址寻址。

3.转发速度不同;交换机为硬件(芯片)转发,转发速度快;路由器转发速度相对比较慢(CPU)。




10.VLAN的作用

隔离广播域

提高网络安全性

增加带宽利用率

较少延迟

11.VLAN的工作原理

隔离广播域

VLAN技术可以将一个物理局域网在逻辑上划分成多个广播域。




12.VLAN的全称和解释

VLAN (Virtual Local Area Network) 虚拟局域网




13.解释直连路由、静态路由、路由汇聚、浮动路由、缺省(默认)路由

直连路由:直连路由是由链路层协议发现的,一般指去往路由器的接口地址所在网段的路径,直连路由无需手工配置,只要接口配置了网络协议地址同时管理状态、物理状态和链路协议均为UP时,路由器能够自动感知该链路存在,接口上配置的IP网段地址会自动出现在路由表中且与接口关联,并动态随接口状态变化在路由表中自动出现或消失。

静态路由:静态路由是由网络管理员根据网络拓扑,使用命令在路由器上配置的路由,这些静态路由信息指导报文发送,静态路由方式也无需路由器进行计算,但它完全依赖于网络管理员的手动配置。

路由汇聚:路由汇聚的“含义”是把一组路由汇聚为一个单个的路由广播

浮动路由:指配置两条静态路由,默认选取链路质量优(带宽大的)作为主路径,当主路径出现故障时,由带宽较小的备份路径顶替主路经,浮动路由站在同一时刻,数据只会由一条链路代为转发

缺省路由:是路由表中一种特殊的静态路由,当网络中报文的路由无法匹配到当前路由表中的路由记录时,缺省路由用来指示路由器或网络主机将该报文发往指定的位置




14.如何处理扫描器的误报和漏报

漏洞验证 漏斗挖掘

误报:原来漏洞不存在,但是报告漏洞存在。

漏报:原来漏洞存在,但是未报告。




15.简述ospf的工作过程

首先当路由器开启ospf后,路由器之间就会相互发送hello报文,hello报文中包含一些路由器和链路的相关信息,发送hello报文的目的是为了形成邻居表,然后路由器之间就会发送LSA(链路状态报告),LSA告诉自己的邻居路由器和自己相连的链路的状态,最后形成网络拓扑表,其实这个过程是很复杂的,他们经过发lsa,记录lsa,装发lsa,最后形成lsdb(链路状态数据库,即拓扑表),形成拓扑表之后,在经过spf算法,通过计算lsdb,最后形成路由表。

形成路由表后,路由器就可以根据路由器来转发数据包,但是这只是理想情况,如果之后网络拓扑发生了变化,或是网络链路出现了问题,ospf协议还是会经过这三张表来重新计算新的路由,只不过不会这么复杂了,路由器在默认情况下,10S就会发送一次hello报文,以检测链路状态,保证链路始终是正常的。




16.简述RIP的原理

路由器每30秒把自己的路由表发给邻居,路由器用邻居发来的路由表根据距离向量算法修改自己的路由表。初始时每个路由器只有到直连网距离为1的路由。




17.OSPF的原理

原理

OSPF的简单说就是两个相邻的路由器通过发送报文的形式成为邻居关系,邻居再互相发送链路状态信息形成邻接关系,之后各自根据最短路径算法算出路由,放在ospf路由表,ospf路由与其他路由比较后优的加入全局路由表。整个过程使用了五种报文、三个阶段、四张表。

五种报文

hello:建立邻接关系

DD:发送链路状态头部信息

LSR:请求更新报文

LSU:回复应答报文

ACK:确认报文




三个阶段:

邻居发现:通过发送hello报文形成邻居关系。

路由通告:邻居间发送链路状态信息形成邻接关系。

路由计算:根据最短路径算法算出路由表




18.传输层协议有哪些,每种协议的特点

TCP(传输控制协议)面向连接可靠传输。

UDP(用户数据报协议)面向无连接,不可靠快速传输




19.常见高危端口号

服务名称端口号检测项
FTP21口令爆破
SSH22口令爆破
Telnet23口令爆破,嗅探
DNS53DNS域传送漏洞
HTTP80各类web安全漏洞
Mssql1433口令爆破
oracle1521口令爆破
mysql3306口令爆破
RDP3389口令爆破
weblogic7001弱口令、口令爆破反序列话漏洞






20.TCP包头留个标志位分别是什么,他们的含义是什么?

标志位全称含义注释
URGurgent紧急指针数据有限推送到上层(绿色通道)
ACKacknowledgement确认位对你发给我的数据包的确认(收到、好的、行)
PSHpushpush数据推送到上层(常规通道)
RSTreset复位连接拒绝连接(不,我不在)
SYNsynchronous请求建立连接你好,我想和你说话
FINfinish断开连接和平分手






21.详细描述TCP三次握手和四次挥手

三次握手

第一次握手:建立连接时,客户端发送Syn包(syn=j)到服务器,并进入syn_send状态,等待服务器确认

第二次握手:服务器收到Syn包,必须确认客户端的syn(ack=j+1),同时自己也发送一个syn包(syn=k),即SYN+Ack包,此时服务器进入syn_recv状态;

第三次握手:客户端收到服务器的syn+ack,向服务器发送确认包Ack(ack=k+1),此包发送完毕,客户端和服务器进入established状态,完成三次握手

TCP四次挥手

由于TCP连接时全双工的,因此,每个方向都必须要单独进行关闭,这一原则是当一方完成数据发送任务后,发送一个FIN来终止这一方向的连接,收到一个FIN只是意味着这一方向上没有数据流动了,即不会再收到数据了,但是在这个TCP连接上仍然能够发送数据,直到这一方向也发送了FIN。首先进行关闭的一方将执行主动关闭,而另一方则执行被动关闭,上图描述的即是如此。 (1)第一次挥手:Client发送一个FIN,用来关闭Client到Server的数据传送,Client进入FIN_WAIT_1状态。 (2)第二次挥手:Server收到FIN后,发送一个ACK给Client,确认序号为收到序号+1(与SYN相同,一个FIN占用一个序号),Server进入CLOSE_WAIT状态。 (3)第三次挥手:Server发送一个FIN,用来关闭Server到Client的数据传送,Server进入LAST_ACK状态。 (4)第四次挥手:Client收到FIN后,Client进入TIME_WAIT状态,接着发送一个ACK给Server,确认序号为收到序号+1,Server进入CLOSED状态,完成四次挥手。 上面是一方主动关闭,另一方被动关闭的情况,实际中还会出现同时发起主动关闭的情况




22.华为设备ACL的分类及特点

分为基本ACL 2000--2999

高级ACL 3000--3900

二层ACL 4000--4999

特点:acl可以定义规则,根据规则对数据包进行分类,并针对不同类型的报文进行不同的处理,达到对网络访问行为的控制,限制网络流量,提高网络性能,防止网络攻击等等。




23.nat的类别及其应用场景

类别:

SNAT 源地址转换 局域网主机共享单个公网IP地址接入到Internet

DNAT 目的地址转换 外网访问内网主机(端口号)

应用场景:

源NAT在NAT转换时,仅对报文中的源地址进行转换,主要应用于私网用户访问公网的场景。当私网用户主机访问Internet时,私网用户主机发送的报文到达NAT设备后,设备通过源NAT技术将报文中的私网IPv4地址转换成公网IPv4地址,从而使私网用户可以正常访问Internet

目的NAT在NAT转换时,仅对报文中的目的地址和目的端口号进行转换,主要应用于公网用户访问私网服务的场景。当公网用户主机发送的报文到达NAT设备后,设备通过目的NAT技术将报文中的公网IPv4地址转换成私网IPv4地址,从而使公网用户可以使用公网地址访问私网服务




24.如果路由器上的同时配置nat和vpn的时候流量会先走哪个

流量先走NAT,后走VPN




25.防火墙和路由器的区别




区别路由器防火墙
两种设备产生的根源不同路由器的产生是基于对网络数据包路由而产生的。路由器需要完成的是将不同网络的数据包进行有效的路由。防火墙是产生于人们对于安全性的需求。重点是这个(一系列)数据包是否应该通过、通过后是否会对网络造成危害。
根本目的不同保持网络和数据的 "通"。保证任何非允许的数据包"不通"。
核心技术不同路由器不能监测TCP的状态防火墙能够检测TCP的状态,并且可以重新随机生成TCP的序列号
安全策略制定的复杂程度不同路由器的默认配置对安全性的考虑不够防火墙的默认配置既可以防止各种攻击,达到既用既安全
对性能的影响不同路由器是简单的包过滤,包过滤的规则条数的增加, NAT规则的条数的增加,对路由器性能的影响都相应的增加防火墙采用的是状态包过滤,规则条数,NAT的规则数对性能的影响接近于零。
审计功能的强弱差异巨大路由器本身没有日志、事件的存储介质,只能通过采用外部的日志服务器等来完成对日志、事件的存储;路由器本身没有审计分析工具,对日志、事件的描述采用的是不太容易理解的语言;路由器对攻击等安全事件的响应不完整,对于很多的攻击、扫描等操作不能够产生准确及时的事件。审计功能的弱化,使管理员不能够对安全事件进行及时、准确的响应NetEye防火墙的日志存储介质有两种,包括本身的硬盘存储,和单独的日志服务器;针对这两种存储, NetEye 防火墙都提供了强大的审计分析工具,使管理员可以非常容易分析出各种安全隐患;NetEye 防火墙对安全事件的响应的及时性,还体现在他的多种报警方式上,包括蜂鸣、trap、邮件、日志;NetEye 防火墙还具有实时监控功能,可以在线监控通过防火墙的连接,同时还可以捕捉数据包进行分析,非分析网络运行情况,排除网络故障提供了方便。
防范攻击的能力不同路由器将是保护内部网的第一道关口防火墙将是第二道关口,也是最为严格的一道关口



26.防火墙区域访问规则

区域默认规则策略
trusted允许所有的数据包流入流出
home拒绝流入的流量,除非与流出的流量相关;而如果流量与ssh、ipp-client、amba-client与dhcpv6-client服务相关,则允许流量
internal等同于home区域
work拒绝流入的流量,除非与流出的流量相关;而如果流量与ssh、ipp-client、dhcpv6-client服务相关,则允许流量
public拒绝流入的流量,除非与流出的流量相关;而如果流量与ssh、dhcpv6-client服务相关,则允许流量
external拒绝流入的流量,除非与流出的流量相关;而如果流量与ssh服务相关,则允许流量
dmz拒绝流入的流量,除非与流出的流量相关;而如果流量与ssh服务相关,则允许流量
block拒绝流入的流量,除非与流出的流量相关
drop拒绝流入的流量,除非与流出的流量相关






27.防火墙的分类

1、软、硬件形式分类:软件防火墙、硬件防火墙、芯片级防火墙。

2、防火墙技术分类:包过滤型防火墙、应用代理型防火墙 。

3、防火墙结构分类:单一主机防火墙、路由器集成式防火墙、分布式防火墙。

4、防火墙的应用部署位置分类:边界防火墙、个人防火墙、混合防火墙。

5、防火墙性能分类:百兆级防火墙、千兆级防火墙。

6、防火墙使用方法分类:网络层防火墙、物理层防火墙、链路层防火墙。




Linux

28.linux系统下根目录中都有哪些目录,分别都是干什么的?

1./ 跟目下是linux文件西永的起点,所在分区成为根目录

2./root linux系统管理员(超级用户)root的宿主目录。如win的administrator

3./bin 存放系统中基本的用户命令,普通用户权限可以执行

4./sbin 存放系统中基本的用户命令,管理员用户权限可以执行

5./boot 存放linux系统启动所必须的文件

6./dev 存放linux系统设备文件

7./etc 存放linux系统和各种应用程序的配置文件

8./home 存放普通用户的宿主目录,如win的“我的文档”,可独立分区备份

9./var 存放系统中经常需要变化的一些文件,如log文件

10/usr 存放linux系统中大量的应用程序




29.说一下linux系统中常用的命令







30.linux系统存储用户信息的文件是什么,这个文件中每个字段分别代表什么意思

/etc/passwd

字段序号示例解释说明
1root用户名
2x密码占位符用户的密码
x代表有密码
无内容,用户登录系统无需密码
30UID当前用户的身份识别
0 就是超级管理员
40GID当前用户的基本组ID
5root用户的身份信息现已废弃
6/root用户的家目录超管:/root
普通用户:/home/用户名
7/bin/bash用户登录系统后(默认)命令解释器/sbin/nologin 不允许登录系统
/bin/sh
/bin/bash



31.linux系统存储用户密码的文件是什么,这个文件中每个字段分别代表什么意思

/etc/shadow

字段序号示例含义说明
1root用户名
2$6$fcSW...密码密文sha-512 HASH 散列算法
salt 值
加密后的密文
317632密码修改时间距离1970 年1 月1 日
密码最近一次的修改时间(天)
40密码最短有效期在最短有效期之内不能修改密码
3:三天之内不可以修改自己的密码
root 用户不受此限制
599999密码最长有效期密码可以使用多长时间
建议设置成90 天
67密码过期时间密码过期前7 天会有警告提示
7密码的不活跃期过了密码有效期没有修改密码
处于不活跃期,仍然可以登录系统
8账户失效时间密码距离1970 年1 月1 日的失效时间(天)
9未分配功能



32.常见的数据库有哪些,分别对应的端口号有哪些?

数据库类型数据库端口号
关系型数据库MySQL3306
Oracle1521
SQL Server1433
DB25000
PostgreSQL5432
国产的DM达梦数据库5236
非关系型数据库Redis6379
Memcached11211
MongoDB27017



33.在SQL注入中,"&"和"||"运算符被过滤,是否有其他运算符可代替?

^:异或运算符




34.在sql注入中,sleep被过滤后用什么代替。=号被过滤用什么代替

sleep():

select benchmark(10000,md5("123456"));计算123456的md5值,10000次=:

like


35.常见服务软件配置文件路径以及日志文件路径

常见服务配置文件日志文件
Linux系统/etc/passwd: 系统用户数据库文件.
/etc/group: 组的数据库文件.
/etc/shadow(存放密码).
/etc/profile(系统环境).
/etc/logrotate.conf 日志文件各级的选项
/var/log/message 内核消息及各种应用程序的公共日志信息
/var/log/secure 用户认证相关的安全事件信息
/var/log/cron Crond周期性计划任务产生的时间信息
/var/log/lastlog 每个用户最近的登录事件
/var/log/wtmp 每个用户登录注销及系统启动和停机事件
/var/log/btmp 失败的、错误的登录尝试及验证事件
/var/log/ maillog 进入或发出系统的电子邮件活动
Nginx安装目录下的conf/nginx.conf文件模块的目录: /etc/httpd/modules
日志目录: /etc/log/httpd/*
访问日志为: ./access_ log
错误日志为: ./err_ log
网页的存放目录: /var/www/html



36.iptables四表五链及其作用

规则表名称作用说明
raw流量跟踪确认是否对该数据包进行状态跟踪
mangle流量“整容”为数据包设置标记
nat地址转换修改数据包中的源、目标IP地址和端口
filter过滤,筛选确认是否放行该数据包(过滤)
规则链名称作用说明
PREROUTING在进行路由选择前处理数据包
INPUT处理入站数据包数据访问本机时候所限制规则的缩写位置
FORWARD处理转发数据包是否允许数据经过我进行转发
POSTROUTING在进行路由选择后处理数据包
OUTPUT处理出站数据包数据包向外发所写的规则限制(一般不写规则)



WEB渗透

37.linux提权你都使用过那些漏洞,了解过DirtyCow(脏牛)漏洞吗?

CVE-2016-5195-master

Dirty COW 漏洞是一种发生在写时复制的竟态条件漏洞(竟态条件:指一个系统或者进程的输出依赖于不受控制的事件出现顺序或者出现时机。),它影响所有基于Linux的操作系统,包括Android,这个漏洞2007年起就存在于Linux内核中,直到2016年才被发现和修复。可以利用这个漏洞修改受保护的文件,也可以利用这个漏洞提权。

竟态条件案例:php代码的功能为从银行执行取款交易,首先检查要提取的金额是否少于余额,如果是,则授权,之后更新余额并退出。那么,如果同时有两个提款请求,则可能会出现竞态条件漏洞。比如说,当前余额是100元,线程1要求提取90元,在服务器更新余额之前,线程2尝试提取90元,这将被批准,因为当前的余额仍然是100元,因此总共提取了180元,账户中的余额为10元。




38.Nmap这款工具的重要常用参数都有哪些?--script参数的作用

nmap <target ip address(目标主机ip)> #nmap简单扫描nmap -p(端口号) <target ip> #nmap 指定端口扫描nmap -p(range自定义扫描端口范围)<target ip> #nmap自定义扫描nmap -sP <target ip> #ping扫描nmap -Pn <target ip> #不需要ping扫描nmap -O <yarget IP> #启用远程操作系统检测


参 数说 明
-sTTCP connect()扫描,这种方式会在目标主机的日志中记录大批连接请求和错误信息。
-sS半开扫描,很少有系统能把它记入系统日志。不过,需要Root权限。
-sF -sN秘密FIN数据包扫描、Xmas Tree、Null扫描模式
-sPping扫描,Nmap在扫描端口时,默认都会使用ping扫描,只有主机存活,Nmap才会继续扫描。
-sUUDP扫描,但UDP扫描是不可靠的
-sA这项高级的扫描方法通常用来穿过防火墙的规则集
-sV探测端口服务版本
-Pn扫描之前不需要用ping命令,有些防火墙禁止ping命令。可以使用此选项进行扫描
-v显示扫描过程,推荐使用
-h帮助选项,是最清楚的帮助文档
-p指定端口,如“1-65535、1433、135、22、80”等
-O启用远程操作系统检测,存在误报
-A全面系统检测、启用脚本检测、扫描等
-oN/-oX/-oG将报告写入文件,分别是正常、XML、grepable 三种格式
-T4针对TCP端口禁止动态扫描延迟超过10ms
-iL读取主机列表,例如,“-iL C:/ip.txt”
nmap中--script功能的使用

nmap --脚本默认,安全加载default和 safe类别中的所有脚本。nmap --script smb-os-discovery仅加载smb-os-discovery 脚本。请注意,.nse扩展是可选的。nmap --script default,banner,/home/user/customscripts加载default 类别中的banner脚本、脚本和目录中的所有 .nse文件 /home/user/customscripts。当按名称引用脚本时script.db,您可以使用 shell 样式的 ' *' 通配符。nmap --script "http-*"加载名称以 开头的所有脚本 http-,例如 http-auth和 http-open-proxy。参数 to --script必须用引号引起来以保护通配符免受 shell 的影响。可以使用 、 和 运算符构建布尔表达式来完成更复杂的 and脚本or选择 not。运算符的 优先级 与 Lua 中相同:not最高,然后 and是or。您可以使用括号更改优先级。因为表达式包含空格字符,所以需要引用它们。nmap --script“非侵入式”加载除 intrusive类别中的脚本之外的所有脚本。nmap --script "默认或安全"这在功能上等同于 nmap --script "default,safe"。default它加载类别或safe类别或两者中的所有脚本。nmap --script "默认和安全"加载同时属于default和 safe类别的那些脚本 。nmap --script "(默认或安全或侵入性) 而不是 http-*"加载、 或类别中的脚本default, 名称以 开头的脚本除外 。safeintrusivehttp-布尔表达式中的名称可以是类别、来自 script.db或的文件名all。名称是不包含 ' '、' ,'、' ('、' )' 或 ' ;' 的任何字符序列,除了作为运算符的序列 and、or和 not。


39.SQLmap重要常用参数

当使用的代码为嵌套型(例如先猜表名 后猜指定字段时) 需要键入上一次用到的指令(如果上一次为参数要转换) 参数转换为指令 : --tables >> -T例如 要猜字段时 需要键入指定表段 */检查注入点 sqlmap.py -u "http://www.scshlx.com/TeachView.asp?id=21"列数据库信息 sqlmap -u "http://www.scshlx.com/TeachView.asp?id=21" --dbs指定库名列出所有表 //最大搜索线程为10 sqlmap.py -u "http://www.hainanez.com/TeachView.asp?id=33" --tables指定库名表名列出所有字段 sqlmap.py -u "http://www.hainanez.com/TeachView.asp?id=33" -T "双引号下为指定表名admin" --columns指定库名表名字段名dump出指定字段的内容 sqlmap -u "http://ooxx.com.tw/star_photo.php?artist_id=11" --dump -T "admin" -C "username,password"查询表名下所有字段 sqlmap.py -u "http://www.hainanez.com/TeachView.asp?id=33" --tables --columnsMysql注入(有多个库 必须找到有管理员的数据库) --is-dba 当前用户权限 --dbs 所有数据库 --current-db 网站当前数据库 --users 所有数据库用户 --current-user 当前数据库用户 --tables-D"当前数据库名字" 查表名、 -T"指定的表名"-D"当前数据库名字"--columns 查字段Cookie注入(遇到防注入) sqlmap.py -u "http://www.scshlx.com/TeachView.asp" --cookie"id=21"--level 2 列表名等 在上方代码后面加--tables等; eg:sqlmap.py -u "http://www.hexuan.com/shownews.asp" --cookie "id=1749" --level 2 --dump -T "admin" -C "username"有几个参数可能会用到,直接加在最后面就可以了,更多详细参数见官方文档: –cookie=COOKIE 在需要登录的地方,需要登录后的cookie –proxy=”http://127.0.0.1:8087″ 使用HTTP代理隐藏自己的身份,比如使用goagent等 –sql-query=QUERY 执行一个sql语句,不一定支持sqlmap -u “http://url/news?id=1″ --dbms “Mysql” –users # dbms 指定数 据库类型sqlmap -u “http://url/news?id=1″ -- users 列数据库用户sqlmap -u “http://url/news?id=1″ -- dbs 列数据库sqlmap -u “http://url/news?id=1″ -- passwords 数据库用户密码sqlmap -u “http://url/news?id=1″ -- passwords-U root -v 0 #列出指定用户 数据库密码sqlmap -u “http://url/news?id=1″ -- dump -C “password,user,id” -T “tablename”-D “db_name”–start 1 –stop 20 #列出指定字段,列出20 条sqlmap -u “http://url/news?id=1″ -- dump-all -v 0 #列出所有数据库所有表sqlmap -u “http://url/news?id=1″ -- privileges #查看权限sqlmap -u “http://url/news?id=1″ -- privileges -U root #查看指定用户权限sqlmap -u “http://url/news?id=1″ –is-dba -v 1 #是否是数据库管理员sqlmap -u “http://url/news?id=1″ –roles #枚举数据库用户角色sqlmap -u “http://url/news?id=1″ -- udf-inject #导入用户自定义函数(获取 系统权限!)sqlmap -u “http://url/news?id=1″ -- dump-all –exclude-sysdbs -v 0 #列 出当前库所有表sqlmap -u “http://url/news?id=1″ -- union-cols #union 查询表记录sqlmap -u “http://url/news?id=1″ -- cookie “COOKIE_VALUE”#cookie注入sqlmap -u “http://url/news?id=1″ -- b #获取banner信息sqlmap -u “http://url/news?id=1″ -- data “id=3″#post注入sqlmap -u “http://url/news?id=1″ - v 1 -f #指纹判别数据库类型sqlmap -u “http://url/news?id=1″ -- proxy“http://127.0.0.1:8118” #代理注 入sqlmap -u “http://url/news?id=1″ -- string”STRING_ON_TRUE_PAGE”# 指 定关键词sqlmap -u “http://url/news?id=1″ -- sql-shell #执行指定sql命令sqlmap -u “http://url/news?id=1″ -- file /etc/passwdsqlmap -u “http://url/news?id=1″ -- os-cmd=whoami #执行系统命令sqlmap -u “http://url/news?id=1″ -- os-shell #系统交互shell sqlmap -u “http://url/news?id=1″ –os-pwn #反弹shellsqlmap -u “http://url/news?id=1″ -- reg-read #读取win系统注册表sqlmap -u “http://url/news?id=1″ -- dbs-o “sqlmap.log”#保存进度sqlmap -u “http://url/news?id=1″ -- dbs -o “sqlmap.log” –resume #恢复 已保存进度


40.常见HTTP请求方法都有哪些,分别代表什么含义

请求方法说明
GET通常用于请求服务器发送某个资源(没有请求正文)
POST通常用于表单提交或文件上传等功能(有请求正文)
HEAD与GET 方法类似,但是服务器响应中只返回首部(头部),没有正文
OPTIONS用来测试服务器所支持的方法
TRACE回显浏览器的请求
PUTPUT 方法会向服务器写入文档
DELETE请求服务器删除指定的资源



41.HTTP协议响应报文中的状态行的状态码都有哪些?它们的描述短语和含义

状态码描述短语含义
200OK表示从客户端发送给服务器的请求被正常处理并返回
204No Content表示客户端发送给客户端的请求得到了成功处理,但在返回的响应报文中不含实体的主体部分(没有资源可以返回)
206Patial Content表示客户端进行了范围请求,并且服务器成功执行了这部分的GET请求,响应报文中包含由Content-Range指定范围的实体内容。
301Moved Permanently永久性重定向,表示请求的资源被分配了新的URL,之后应使用更改的URL;
302Found临时性重定向,表示请求的资源被分配了新的URL,希望本次访问使用新的URL
303See Other表示请求的资源被分配了新的URL,应使用GET方法定向获取请求的资源
304Not Modified表示客户端发送附带条件(是指采用GET方法的请求报文中包含if-Match、If-Modified-Since、If-None-Match、If-Range、If-Unmodified-Since中任一首部)的请求时,服务器端允许访问资源,但是请求为满足条件的情况下返回改状态码;
307Temporary Redirect临时重定向,与303有着相同的含义,307会遵照浏览器标准不会从POST变成GET;(不同浏览器可能会出现不同的情况)
400Bad Request表示请求报文中存在语法错误
401Unauthorized未经许可,需要通过HTTP认证
402Payment Required需付费
403Forbidden服务器拒绝该次访问(访问权限出现问题)
404Not Found表示服务器上无法找到请求的资源,除此之外,也可以在服务器拒绝请求但不想给拒绝原因时使用
405Method Not Allowed方法不被允许
406Not Acceptable无法接受
408Request Timeout请求超时
409Conflict指令冲突
413Request Entity Too Large请求实体过大
414Request-URL Too Long所请求的URL地址过长
416Requested Range Not Satisfiable请求的范围无法被满足
417Expectation Failed预期内容错误
426Upgrade Required需升级
429Too Many Requests数量过多
431Request Header Fields Too Large请求的头字段过大
450Blocked by Windows Parental Controls已被wendows家长控制程序屏蔽
500Inyermal Server Error内部服务器错误
507Insufficient Storage内存不足
599Network connect timeout error错误:网络连接超时
100continue继续



42.如果访问某一个页面的时候产生了错误,如何区分这个错误来自于PHP、数据库还是Web服务器?

类别原因短语
1XXInformational(信息性状态码)接受的请求正在处理
2XXSuccess(成功状态码)请求正常处理完毕
3XXRedirection(重定向)需要进行附加操作以完成请求
4XXClient error(客户端错误)客户端请求出错,服务器无法处理请求
5XXServer Error(服务器错误)服务器处理请求出错



PHP

43.php语言中产生变量覆盖漏洞的原因有哪些

1.全局变量覆盖

register_globals为On时,传递的值会被注册为全局变量直接使用

2.extract()变量覆盖

extract() 函数将变量从数组中导入到当前的符号表,使用数组键名作为变量名,键值作为变量值,在当前符号表中创建数组中的每个元素对应的变量,使用“EXTR_OVERWRITE”时,变量名发生冲突会覆盖已有变量

1|<?php2|$a = "0";3|$a_array = array("a" => "1","b" => "2");4|extract($a_array);5|echo "/$a = $a; /$b = $b";6|?>a会被覆盖为1

3.parse_str()变量覆盖

把查询字符串解析为多个变量中,会直接覆盖已有变量

4.import_request_variables()变量覆盖

register_global = off时,该函数会将GET、POST、Cookie的变量导入全局,从而导致覆盖全局变量

1|<?php 2|$auth = '0'; 3|import_request_variables('G'); 4| 5|if($auth == 1){ 6| echo "a"; 7|}else{ 8| echo "b"; 9|}10|?>使用GET请求

1|?auth=1导致auth被覆盖为1,输出a

5.$$问题

1|<?php2|$a="1";3|$b="a";4|$$b="2";5|echo $a;6|?>$$a=a,所以输出为2

使用foreach遍历数组中的值时,将获取到的数组键名作为变量,数组中的键值作为变量的值,也会产生变量覆盖漏洞




44.php语言中危险函数有哪些,举例说明

在编译 PHP 时,如无特殊需要,一定禁止编译生成 CLI 命令行模式的 PHP 解析支持。可在编译时使用 –disable-CLI。一旦编译生成 CLI 模式的PHP,则可能会被入侵者利用该程序建立一个WEB Shell 后门进程或通过PHP 执行任意代码。

危险函数危险等级功能描述
phpinfo()输出 PHP 环境信息以及相关的模块、WEB 环境等信息。
passthru()允许执行一个外部程序并回显输出,类似于 exec()。
exec()允许执行一个外部程序(如 UNIX Shell 或 CMD 命令等)。
system()允许执行一个外部程序并回显输出,类似于 passthru()。
chroot()可改变当前 PHP 进程的工作根目录,仅当系统支持 CLI 模式PHP 时才能工作,且该函数不适用于 Windows 系统。
scandir()列出指定路径中的文件和目录。
chgrp()改变文件或目录所属的用户组。
chown()改变文件或目录的所有者。
shell_exec()通过 Shell 执行命令,并将执行结果作为字符串返回。
proc_open()执行一个命令并打开文件指针用于读取以及写入。
proc_get_status()获取使用 proc_open() 所打开进程的信息。
error_log()将错误信息发送到指定位置(文件)。
安全备注:在某些版本的 PHP 中,可使用 error_log() 绕过 PHP safe mode,执行任意命令。
ini_alter()是 ini_set() 函数的一个别名函数,功能与 ini_set() 相同。具体参见 ini_set()。
ini_set()可用于修改、设置 PHP 环境配置参数。
ini_restore()可用于恢复 PHP 环境配置参数到其初始值。
dl()在 PHP 进行运行过程当中(而非启动时)加载一个 PHP 外部模块。
pfsockopen()建立一个 Internet 或 UNIX 域的 socket 持久连接。
syslog()可调用 UNIX 系统的系统层 syslog() 函数。
readlink()返回符号连接指向的目标文件内容。
symlink()在 UNIX 系统中建立一个符号链接。
popen()可通过 popen() 的参数传递一条命令,并对 popen() 所打开的文件进行执行。
stream_socket_server()建立一个 Internet 或 UNIX 服务器连接。
putenv()用于在 PHP 运行时改变系统字符集环境。在低于 5、2、6 版本的 PHP 中,可利用该函数修改系统字符集环境后,利用 sendmail 指令发送特殊参数执行系统 SHELL 命令。



45.详细描述owasp.top 10 的内容

名称解释
A01:2021-失效的访问控制
Broken Access Control
访问控制强制实施策略,使用户无法在其预期权限之外进行操作。失败的访问控制通常会导致未经授权的信息泄
露、修改或销毁所有数据、或在用户权限之外执行业务功能。
A02:2021-加密机制失效
Cryptographic Failures
首先要确认:对传输中数据和存储数据都有哪些保护需求。 例如,密码、信用卡号、医疗记录、个人信息和商业秘
密需要额外保护,尤其是在这些数据属于隐私保护法(如:欧盟GDPR) 或法规条例(如:金融数据保护标准PCI DSS)
适用范围的情况下。
A03:2021-注入
Injection
在以下情况下,应用程序易受攻击:
* 应用程序不会验证、过滤或清洗用户提供的数据。
* 动态查询或无上下文感知转义的非参数化调用直接在解释器中使用。
* 恶意数据在对象关系映射(ORM)搜索参数中用于提取额外的敏感记录。
* 恶意数据被直接使用或连接。SQL或命令包含动态查询、命令或存储过程中的结构和恶意数据。
A04:2021-不安全设计
Insecure Design
不安全设计是一个广泛的类别,代表不同的弱点,表示为“缺少或无效的控制设计”。不安全设计不是所有其他前10个风险类别的来源。不安全设计和不安全的实现之间存在差异。我们区分设计缺陷和实现缺陷是有原因的,它们有不同的根本原因和补救措施。安全设计仍然可能存在实现缺陷,从而导致可能被利用的漏洞。一个不安全设计不能 通过一个完美的实现来修复,因为根据定义,所需的安全控制从未被创建来抵御特定的攻击。导致不安全设计的因素之一是开发的软件或系统中缺乏固有的业务风险分析,因此无法确定需要何种级别的安全设计。
A05:2021-安全配置错误
curity Misconfiguration
您的应用程序可能受到攻击,如果应用程序是:
* 应用程序栈的任何部分缺少适当的安全加固,或者云服务的权限配置错误。
*应用程序启用或安装了不必要的功能(例如:不必要的端口、服务、网页、帐户或权限)。
*默认帐户和密码仍然可用且没有更改。
* 错误处理机制向用户纰漏堆栈信息或其他大量错误信息。
* 对于升级的系统,最新的安全特性被禁用或未安全配置。
*应用程序服务器、应用程序框架(如:Struts、Spring、http://ASP.NET)、库文件、数据库等没有进行安全配置。
* 服务器不发送安全标头或指令,或未被设定安全参数。
*您的应用软件已过期或易受攻击(参见“A6:2021-脆弱和过时的组件”)。
A06:2021-自带缺陷和过时的组件
Vulnerable and Outdated Components
如果满足下面的某个条件,那么您的应用就易受此类攻击:

* 如果您不知道所有使用的组件版本信息(包括:服务端和客户端)。这包括了直接使用的组件或间接依赖的组件。

*如果软件易受攻击,不再支持或者过时。这包括:系统、Web服务器、应用程序服务器、数据库管理系统(DBMS)、应用程序、API和所有的组件、运行环境和库。

* 如果您没有定期做漏洞扫描和订阅使用组件的安全公告。

* 如果您不基于风险及时修复或升级底层平台、框架和依赖库。很可能发生这种情况:根据变更控制,每月或每季度
进行升级,这使得组织在这段时间内会受到已修复但未修补的漏洞的威胁。
* 如果软件工程师没有对更新的、升级的或打过补丁的组件进行兼容性测试。
* 如果您没有对组件进行安全配置(参见“A05:2021–安全配置错误”)。
A07:2021-身份识别和身份验证错误
Identification and Authentication Failures
* 允许像是攻击者已经拥有有效用户名称和密码列表的撞库自动化攻击。
* 允许暴力或其他自动化攻击。
* 允许预设、脆弱、常见的密码,像是"Password1"或"admin/admin"。
* 使用脆弱或无效的认证资讯回复或忘记密码的流程,如不安全的"知识相关问答"。
* 使用明码、被加密的或使用较脆弱杂凑法的密码(参考A3: 2017-敏感性资料泄漏)。(TODO)
* 不具有或是无效的多因素认证。
* 于URL中泄漏会话(session) ID(如URL重写)。
* 成功登入后没有轮换会话(session) ID。
* 没 有 正 确 的 注 销 会 话 (session) ID 。 用 户 的 会 话 (session) 或 认 证 tokens( 主
要 是 单 一 登 入(SSO)token) 没有在登出时或一段时间没活动时被适当的注销。
A08:2021-软件和数据完整性故障
Software and Data Integrity Failures
软件和数据完整性故障与无法防止违反完整性的代码和基础设施有关。这方面的一个例子是,应用程序依赖于不受
信任的源、存储库和内容分发网络(CDN)的插件、库或模块。不安全的CI/CD管道可能会带来未经授权的访问、恶
意代码或系统安全风险。最后,许多应用程序现在包括自动更新功能。其中,更新包在没有进行充足完整性验证的情
况下被下载,并应用于以前受信任的应用程序。攻击者可能会上传自己的更新包,以便在所有安装上分发和运行。另
一个例子是,对象或数据被编码或序列化为攻击者可以看到和修改的结构,很容易受到不安全的反序列化的影响。
A09:2021-安全日志和监控故障
Security Logging and Monitoring Failures
2021 年版OWASP Top 10 中,该类别是为了帮助检测、升级和应对活跃的违规行为。如果不进行日志记录和监
测,就无法发现违规行为。任何时候都会发生日志记录、检测、监视和主动响应不足的情况:
* 需要审计的事件,例如:登录、失败的登录和高价值交易,但未记录。
* 警告和错误未生成日志或日志记录不充分或日志消息不清晰。
* 应用程序和 API的日志未进行安全可疑活动的监控。
* 日志只存储在本地。
* 适当的警报阈值和响应升级过程不到位或无效。
* 渗透测试和动态应用安全测试(DAST)工具(例如:OWASP ZAP)的扫描没有触发警报。
* 应用无法实时或接近实时地检测、升级或或对主动攻击发出警报。
* 如果让用户或攻击者看到日志和警报事件,您就容易受到信息泄露的攻击(查看“A01:2021-失效的访问控
制”)。
A10:2021-服务端请求伪造
Server-Side Request Forgery
一旦Web应用在获取远程资源时没有验证用户提供的URL,就会出现SSRF缺陷。它允许攻击者强制应用程序发送一个精心构建的请求到一个意外目的地,即使是在有防火墙、VPN或其他类型的网络访问控制列表(ACL)保护的情况下。随着现代Web应用为终端用户提供便利的功能,获取URL成为一种常见的场景。因此,SSRF安全攻击事件也在不断增加。此外,由于云服务和架构的复杂性,SSRF的严重性也越来越高。
2021top10详细介绍




46.详细描述渗透测试流程

变形一:如何开展渗透测试工作

变形二:你做过渗透测试吗,简单说一说

变形三:描述一下你的有趣的渗透测试经历

测试名称测试内容
范围界定在开始技术性安全评估之前,务必要观察研究目标环境的被测范围。同时还有了解,这个范围牵扯几个单位,是单个单位还是多个单位会参与到安全评估中来。

在范围界定阶段,需要考虑的典型因素如下:
测试对象是扫描?
应采取何种测试方式?
有哪些在测试过程中需要满足的条件?
需要多久才能完成测试?
此次测试应达到什么样的任务目标?
信息收集在划定了测试范围后,就需要进入信息收集阶段,在这个阶段,渗透测试人员需要利用各种资源尽可能的获取测试目标的相关信息。
从互联网上收集信息的渠道主要有:
论坛
公告板
新闻组
媒体文章
博客
社交网络
其他商业或非商业的网络
此外,也可以借助各种搜索引擎获取相关数据,如谷歌、雅虎、百度等。搜集的信息主要包括DNS服务器、路由关系、whois数据库、电子邮件地址、电话号码、个人信息以及用户账户,收集的信息越多,渗透测试成功的概率越高。
目标识别网络拓扑结构关系和在线主机联网设备与ID(IP地址)
这个阶段的主要任务是识别目标网络的状态,操作系统和网络架构,该阶段工作旨在完整地展现目标网络里各种联网设备或技术的完整关系,以帮助测试人员在接下来的工作里枚举网络里的各种服务。
服务枚举在线主机开启端口,并识别端口上运行的服务
这一阶段会根据前面各个阶段的成果,进一步找出目标系统中所有开放的端口。一但找到所有开放端口,就可以通过这些端口来列出目标系统上运行的服务,主机上开发的端口都有相应的服务程序。对这些信息进行深度分析之后,可进一步发掘目标网络基础设施中可能存在的漏洞。
漏洞映射(漏洞扫描)已知漏洞/未知漏洞
可以根据以及发现的开发端口和服务程序,查找和分析目标系统中存在的漏洞,如果能采用自动和手动这两种不同的测试方式结合起来,审计人员对目标系统的认知会更为清晰,透彻,并能够仔细的检查已知漏洞和未知漏洞。
社会工程学安全策略、安全配置、安全行为都是企业员工在做。
如果目标网络没有直接的入口,欺骗的艺术将起到抛砖引玉的作用,对目标组织中的人员进行定向攻击,很有可能帮我们找到渗透目标系统的入口。如,诱使用户安装带有后门的恶意程序,就可能为审计人员的渗透工作形成突破,社会工程学渗透分为多种不同实现形式。伪装成管理员,通过电话要求用户提供自己的账户信息,并发送钓鱼邮件来劫持用户的账户信息,甚至诱使某人出现在某地—这些都是社会工程学攻击。在社会工程学中,达成同一既定目标的实现方式应有尽有。需要主要的是,在对目标实施欺骗以达到渗透目标之前,多数情况下需要长时间研究目标人员的心理。另外,在开展这个阶段的工作之前,需要研究国内的法律条文是否有关社会工程学的相关条款。
漏洞利用在仔细检查和发现目标系统漏洞之后,就可以使用已有的漏洞利用程序对目标系统进行渗透,审计人员可以把客户端漏洞利用程序和社会工程学结合,进而控制目标系统,这个阶段的主要任务是控制目标系统,这个流程分为三步,涉及攻击前,攻击,攻击后的相关行动。
权限提升提权,普通用户提升为管理员、系统用户(获得角色以外的权限)
获取目标系统的控制权是渗透成功的标志,接下来,审计人员就可以根据所拥有的访问权限在被测系统中资源发挥,审计人员也可以使用适用于目标系统的本地漏洞来提升自己的权限,只要他们能在目标系统上运行提权漏洞利用程序,就可以获取主机超级用户权限或系统级权限。审计人员还可以以该主机为跳板,进一步攻击局域网络。根据渗透范围的界定,审计人员接下来开展的攻击可能受限制的,也可能不受限制。然后,他们很有可能以各种方式获得与控制系统相关的更多信息。具体方法,可能会用嗅探手段截获网络数据包,破解各种服务密码,,在局域网中使用网络欺骗手段,所以说,提升权限的最终目的是获取目标网络的最高访问权限。
访问维护权限维护(埋藏后面)
多数情况下,审计员需要在一段时间内维护他们对目标系统的访问权限。例如,在演示越权访问的时候,安全后门将节省重新渗透目标所耗费的大量时间。这种情况下,访问维护将节约获取目标系统访问权限所需要的时间、花费和资源。审计员可以通过一些秘密的通信渠道,在既定的时间内维护对目标系统的访问权限。这些隧道往往基于特定协议、代理或点对点方法的后门程序。这种对系统的访问方法可以清楚的展示入侵人员在目标系统实施攻击时隐藏行踪的具体方法
文档报告提交物,以人性化的方式说渗透测试过程
渗透测试最后一个环节,审计员要记录报告并现场演示那些已经识别验证和利用了的安全漏洞。在被测单位的管理和技术团队会检查渗透使用的方法,并会根据这些文档修复所有存在的漏洞。所以从道德角度来看,文档报告的工作十分重要,并为了帮助管理人员 和技术人员共同理解分析当前IT基础框架中薄弱的环节,可能需要给不同部门撰写不同措辞的书面报告。此外这些报告还可以用来获取或比较渗透测试前后目标系统的完整性。
简化的渗透测试流程是在进行渗透测试过程中经常使用的流程
具体如下:
(1)明确目标
确定范围|确定规则|确定需求
(2)信息收集
基础信息|系统信息|应用信息|人员信息|防护信息
(3)漏洞探测
系统漏洞|Web 服务漏洞|Web 应用漏洞|其他端口|通信安全
(4)漏洞验证
手工验证|工具验证|实验验证
(5)漏洞利用
定制EXP|防御绕过|进一步渗透|清理痕迹
(6)形成报告
整理结果|补充介绍|修复建议



SQL注入

47.sql注入漏洞的原理危害手法类型和防御方式

变形一:谈谈你对sql漏洞的了解

SQL 注入原理:

SQL 注入的攻击行为可以描述为通过用户可控参数中注入SQL 语法,破坏原有SQL 结构,达到编写程序时意料之外结果的攻击行为。其成因可以归结为以下两个原因叠加造成的:程序员在处理程序和数据库交互时,使用字符串拼接的方式构造SQL 语句。未对用户可控参数进行足够的过滤,便将参数内容拼接到SQL 语句中。SQL 注入危害

攻击者可以利用SQL 注入漏洞,可以获取数据库中的多种信息(例如:后台管理员账密),从而脱取数据库中的内容(脱库)。在特别的情况下还可以插入内容到数据库、删除数据库中的内容或者修改数据库内容。如果数据库权限分配存在问题,或者数据库本身存在缺陷,攻击者可以利用SQL 注入漏洞直接获取WebShell 或者服务器权限。 SQL 注入漏洞的分类

两大基本类型注入手法提交参数的方式注入点的位置
联合查询GET 注入URL 注入
数字型报错注入POST 注入搜索框注入
字符型布尔盲注Cookie 注入留言板注入
延时注入HTTP 头部注入登录框注入
堆叠查询



48.特殊的sql注入方法

变形一:sql注入的其他情况有哪些

宽字节注入、HTTP头部注入、cookie注入、base64注入、user-agent注入、referer注入、dnslog外带查询

49.如果某一个注入点做了过滤,如何绕过?

代替空格的字符%0A 、 %0B 、 %0D 、 %A0

50.给你一个登录框 你有什么渗透思路

一.扫描器扫描

目前我们最常用的就是AWVS和Nessus,Appscan

或者随便输入用户名密码验证码登录,抓包,放在记事本里,sqlmap-r跑一下,级别调高一点

二.万能密码

'or 1=1 –

"or “a”="a等

三.明文传输

可能是我们做渗透测试中,最常见的一种漏洞,实际上它并不能算得上是一种漏洞,仅仅只能说是一种不足之处而已,明文传输在网站上随处可见,除了银行网站,很有可能每一个密码都是经过特殊加密然后再进行传输的。

四.用户名可枚举

此漏洞存在主要是因为页面对所输入的账号密码进行的判断所回显的数据不一样,我们可以通过这点来进行用户名的枚举,然后通过枚举后的账户名来进行弱口令的爆破。防御手段的话仅需要将用户名与密码出错的回显变成一样即可,例如用户名或密码出错。

五.爆破弱口令

弱口令可以说是渗透测试中,最最常见,也是危害“最大”的一种漏洞,因为毫无技术性,毫无新意,但是却充满了“破坏性”,尤其是在内网环境中,弱口令更是无处不在。Web页面最常用的爆破工具为Burp,我们通常使用Nmap扫描也可能扫出其他端口存在,例如3389,SSH等。

51.XSS漏洞攻击利用模型

黑客在网站服务器页面注入恶意代码,主机访问登录服务器,访问被注入恶意代码的页面,恶意代码传输到客户机,客户机不小心运行恶意代码,就会遭受攻击,将敏感信息发送给攻击者,攻击者通过cookie登录服务器

52.详细描述文件上传漏洞的原理

原理:

通过文件上传漏洞获得网站后门

危害:

上传恶意代码(文件,程序),执行恶意代码,导致网站沦陷,通过而已文件利用其他漏洞拿到管理员权限,导致服务器沦陷

利用方法:

图片木马

防御方式:代码角度

采用白名单策略,严格控制上传文件的后缀名上传文件重命名,尽量少的从客户端获取信息文件内容白名单检测进行二次渲染,过滤掉图片马中的恶意代码避免文件包含漏洞严格处理文件路径

业务角度

强口令策略避免恶意攻击者登录网站后台尽量避免web用户修改上传白名单

系统角度

避开空格[ ], 点[ .],::$DATA 等windows 系统特性

53.用语言描述csrf场景

CSRF,即 Cross Site Request Forgery,中译是跨站请求伪造,是一种劫持受信任用户向服务器发送非预期请求的攻击方式。

简单来说,攻击者盗用了你的身份,并以你的名义发送恶意请求。

通常情况下,CSRF 攻击是攻击者借助受害者的 Cookie 骗取服务器的信任,可以在受害者毫不知情的情况下以受害者名义伪造请求发送给受攻击服务器,从而在并未授权的情况下执行在权限保护之下的操作。

54.xss和csrf漏洞的区别

区别一:CSRF:需要用户先登录网站A,获取 cookie。XSS:不需要登录。

区别二:CSRF:是利用网站A本身的漏洞,去请求网站A的api。XSS:是向网站 A 注入 JS代码,然后执行 JS 里的代码,篡改网站A的内容。

55.任意文件读取的原理、危害、方法、防御方式

原理:由于程序对客户端传入的参数未作合法性的检验造成的

危害:下载服务器任意文件,包括源代码文件、系统敏感文件、配置文件等等;可以配合其他漏洞,构成完整攻击链;对源代码文件进行代码审计,查找更多的漏洞;任意文件读取与下载重点关注的文件

利用方法:配置文件读取,代码审计,信息收集,getshell

防御方式:让web 用户只能访问(读取),所需要的文件和路径让用户不能访问Web 根目录以外的路径。不能有文件包含漏洞,目录遍历漏洞或其他漏洞。php.ini 配置文件中,可以通过选项 open_basedir 来限定文件访问的范围

56.redis 数据库未授权访问漏洞都有哪些利用思路redis写入webshell

redis写入webshell

ssh无密钥登录

反弹shell

57.指纹识别的作用

关键词:笔记

74
73
25
news

版权所有© 亿企邦 1997-2025 保留一切法律许可权利。

为了最佳展示效果,本站不支持IE9及以下版本的浏览器,建议您使用谷歌Chrome浏览器。 点击下载Chrome浏览器
关闭