网安面试经

网安面试经

小贾学习录

在心里种花,人生才不会荒芜

网络安全设备

防火墙:监控和控制网络流量(强化网络安全策略,防止内部信息泄露,网络安全的屏障,日志记录和时间通知,监控作用)
IPS:入侵防御
IDS:入侵检测
蜜罐:可以溯源攻击者真实身份,反向攻击攻击者。(布置诱饵,诱惑对方进行攻击,对他们的攻击行为进行分析。)

防火墙和waf的区别

1.功能范围:防火墙主要负责监控和控制网络流量,根据预定义的规则进行一些过滤和阻止未授权访问,可以组织网络层和传输层的攻击,如入侵,端口扫描   WAF保护Web应用程序免受攻击,如SQL,XSS
2.工作原理:防火墙检测网络流量的源地址,端口,协议等信息,根据预定义规则来是否给予她通过。  Waf通过分析http/https中的请求内容,参数,检测是否有恶意代码,攻击特征。
3.防护层次:防火墙保护整个网络
waf 主要保护WEB应用程序

waf分类

云waf(DNS) 硬件waf 软件waf
云waf:阿里云/玄武盾/华为
硬件WAF
软件WAF:网站安全狗,D盾,宝塔

运营项目

1.系统监控和警报:设置和管理监控系统,监控关键指标和服务的性能、可用性和健康状态,并设置警报以及响应
2.自动化部署:
3.日志管理:设置和管理日志收集、存储、分析和可视化工具,以便查找和解决系统问题、故障和性能瓶颈。
4.高可用性和容灾

5.运城市大数据
6.康恩贝

应急响应工作

客户收到网络事件,我们部门进行事件确认,分类和评估,阻止
攻击事件:
1.DDos攻击 (向目标服务器发送大量请求,使其无法正常执行或者访问)
2.钓鱼攻击
3.病毒和恶意软件

权限维持和免杀

权限维持是指在操作系统中保持持久性访问和控制的能力。以下是Windows和Linux系统中常见的权限维持方式以及一些常见的免杀方法:

Windows 权限维持方式:
1. 注册表持久化:通过修改注册表项,将恶意代码添加到启动项或系统服务中,以在系统启动时自动运行。
2. 定时任务:创建定时任务,使恶意代码在指定时间或事件发生时执行。
3. 后门账户:创建隐藏的用户账户或修改现有账户的权限,以便在系统中保持访问权限。
4. 动态链接库(DLL)劫持:替换或劫持系统或应用程序的动态链接库,以执行恶意代码。
5. 持久性服务:创建隐藏的系统服务,以在系统启动时自动运行恶意代码。

常见的免杀方法:
1. 加密和混淆:使用加密和混淆技术来隐藏恶意代码,使其难以被杀毒软件检测和分析。
2. 多重包装:使用多层包装和压缩技术,使恶意代码的结构复杂化,以逃避杀毒软件的检测。
3. 基于文件的免杀:将恶意代码嵌入合法的文件中,如文档、图像或音频文件,以绕过杀毒软件的检测。
4. 进程注入:将恶意代码注入到合法进程的内存中,以隐藏恶意行为并绕过杀毒软件的检测。
5. 命令与控制(C&C)通信加密:使用加密通信协议与C&C服务器进行通信,以避免被网络监测和阻止。

Linux 权限维持方式:
1. 启动脚本:通过修改启动脚本,将恶意代码添加到系统启动过程中,以在系统启动时自动运行。
2. 定时任务:创建定时任务,使恶意代码在指定时间或事件发生时执行。
3. 后门账户:创建隐藏的用户账户或修改现有账户的权限,以便在系统中保持访问权限。
4. 内核模块:编写恶意内核模块,以在内核级别运行恶意代码,从而绕过一些安全机制。

常见的免杀方法:
1. 变形和混淆:使用变形和混淆技术来修改恶意代码的结构和特征,以逃避杀毒软件的检测。
2. 内存注入:将恶意代码注入到合法进程的内存中,以隐藏恶意行为并绕过杀毒软件的检测。
3. 基于内核的免杀:通过修改内核或利用内核漏洞,绕过安全机制和杀毒软件的检测。
4. 零日漏洞利用:利用尚未被修复的系统漏洞,执行恶意代码,从而绕过安全机制和杀毒软件的检测。

请注意,这些方法和技术都是用于描述和了解安全领域的常见情况,但它们可能涉及非法活动。我强烈建议遵守法律和道德规范,不要从事任何非法的活动。

burpsuite爆破的四种模式

1.Sniper(狙击手模式)

一个爆破点,爆破字典是多少,就爆破多少次

两个爆破点,爆破字典是多少(n)个,就爆破2n次

一般此模式只设备一个爆破点,用户名知道去爆破密码

2.Battering ram (攻城锤)

两个爆破点同时爆破,用的字典里面的元素也是同一个

3.Pitch-fork (叉子)

设置两个字典对两个爆破点同时爆破,如果两个字典都是7行数据那么就爆破七次,两个字典不一致按照行数少得字典来,

设置两个字典,但是注意两个字典不能一样不然和攻城锤模式一样了

4.Cluster bomb (集成炸弹模式)

两个字典里面的每个数依次进行爆破。

比如两个字典都是5行数据那么就爆破25次

中间件

Tomcat

  Tomcat是Apache Jakarta软件组织的一个子项目,Tomcat是一个JSP/Servlet容器,它是在SUN公司的JSWDK(Java Server Web Development Kit)基础上发展起来的一个JSP和Servlet规范的标准实现,使用Tomcat可以体验JSP和Servlet的最新规范.

端口号:8080
攻击方法:
默认口令、弱口令,爆破,tomcat5 默认有两个角色:tomcat和role1。其中账号both、tomcat、role1的默认密码都是tomcat。弱口令一般存在5以下的版本中。
在管理后台部署 war 后门文件
远程代码执行漏洞

Weblogic

确切的说是一个基于JAVAEE架构的中间件,WebLogic是用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应用的Java应用服务器。将Java的动态功能和Java Enterprise标准的安全性引入大型网络应用的开发、集成、部署和管理之中

端口:7001,7002
攻击方法
弱口令、爆破,弱密码一般为weblogic/Oracle@123 or weblogic
管理后台部署 war 后门
SSRF
反序列化漏洞
weblogic_uac

Nginx

Web服务器和反向代理服务器。解决上万个并发连接。

网络安全设备


业务逻辑漏洞

1.身份验证与授权漏洞

暴力破解,没有设置登陆失败次数限制

Session固定攻击,登录过程中url带一个session,攻击者利用带有session的url进行登录,get方法请求时。

2.权限类逻辑漏洞

水平越权,直接用userid/email之类的容易遍历的参数进行数据库查询,修复
需要在方法中进行相关的获取请求request
再利用getAttribute(“userid”)获取其userid
直接使用该userid作为参数进行数据增删查改,避免userid参数传输
垂直越权,尝试将用户名改为admin尝试绕过
获取请求request
再利用getAuttribute(“roleid”)获取其角色等级
检查角色等级是否合法,错误则直接返回错误跳转,返回页面必须仍然从Attribute中获取userid再进一步查询相关信息
未授权访问

3.图形验证码漏洞,每次更新验证码

接口被调用,短信轰炸的实现

4.找回密码逻辑漏洞

5.业务逻辑篡改漏洞,抽奖,购买,转转,返现等功能

在线购物或支付流程中存在逻辑错误,攻击者可能通过修改或篡改交易参数、订单等绕过支付或获取商品或服务而不支付。

6.执行顺序纂改漏洞

在请求最后一步时候需要带入前面的验证信息,服务端再进行一次校验信息的验证,验证正确方能继续执行数据操作
也可以及通过getAttributr(“userid”)获取userid进行userid和验证结果绑定,最后一步不带入验证信息,但是仍然要获取userid进行校验。
再最后一步通过验证之后或者服务器收到支付信息后再生成相应的数据交给用户

登陆页面常见的漏洞

注入点以及万能密码 敏感信息泄露 验证码绕过 无限账号注册 任意密码重置 明文传输 越权漏洞
1.注入点及万能密码登陆
2.不安全的用户提示
3.查看登陆页面源代码,是否存在信息泄露

TOP 10 2021

1.失效的访问控制

2.加密机制失效

3.注入

4.不安全设计

5.安全配置错误

6.自带缺陷和过时的组件

7.身份识别和身份验证错过

8.软件和数据完整性故障

9.安全日志和监控故障

10.服务端请求伪造

Cookie和Session的区别

1.存储的位置不同

cookie存储在客户端,session存储在服务端,session存储的数据比较安全

2.存储的数据大小限制不同

cookie:大小受浏览器的限制,大都是4k的大小
session:没有限制

3.存储的数据类型不同

两者都是键值对的结构,value的类型有差别
cookie:只能是字符串类型
session:Object类型

4.生命周期的控制

cookie的生命周期是累积的
session的生命周期是间隔的钱

session的工作原理

session 的工作原理 客户端登录完成之后,服务器会创建对应的 session,session 创建完
之后,会把 session 的 id 发送给客户端,客户端再存储到浏览器中。这样客户端每次访问
服务器时,都会带着 sessionid,服务器拿到 sessionid 之后,在内存找到与之对应的 session
这样就可以正常工作了。
这样也减少了加密运算的消耗时间。

HTTP与HTTPS的区别

1.HTTP 协议传输的数据都是未加密的,也就是明文的,因此使用 HTTP 协议传输隐私信息非

常不安全, HTTPS 协议是由 SSL+HTTP 协议构建的可进行加密传输、身份认证的网络协议,

要比 http 协议安全。

\2. https 协议需要到 ca 申请证书,一般免费证书较少,因而需要一定费用。

3、http 和 https 使用的是完全不同的连接方式,用的端口也不一样,前者是 80,后者是 443。

4.HTTPS基于非对称加密

同源策略

1.什么是同源策略

同源策略(Same-Origin Policy)是一种浏览器安全策略,限制了一个页面中的脚本只能与同源页面的脚本进行交互,而不能与不同源页面的脚本进行交互。这是为了防止恶意脚本窃取数据、进行 XSS 攻击等安全问题。(源指协议、主机和端口的组合**)的交互。同源策略的目的是保护用户的信息安全,防止恶意网站窃取用户的敏感数据。

2.同源策略限制的资源包括:

DOM层面:不同源站点之间不能相互访问和操作DOM
数据层面:不能获取不同源站点的Cookie、LocalStorage、indexDB等数据
网络层面:不能通过XMLHttpRequest向不同源站点发送请求

对称加密和非对称加密

对称加密

使用相同的密钥

  对称加密(Symmetric Encryption)是一种加密算法,使用相同的密钥(也称为对称密钥)对数据进行加密和解密。在对称加密中,发送方使用密钥将明文数据加密成密文,接收方使用相同的密钥将密文解密还原为明文。

特点

1.快速高效:适合处理大量数据的加密和解密操作

2.简单

3.密钥管理:由于对称加密使用相同的密钥进行加密和解密,因此需要安全地管理密钥,确保只有合法的受信任实体知道密钥。泄露密钥可能导致数据被恶意方获取。

常见的对称加密算法

1.DES:使用56位密钥,已不再被推荐使用,因为密钥长度较短。

2.AES:是一种高级加密标准,目前广泛应用于各种加密场景中。它支持128位、192位和256位的密钥长度,安全性和效率较好。

非对称加密

1.什么是非对称加密

  它使用一对密钥,即公钥(Public Key)和私钥(Private Key)来进行加密和解密操作。公钥可以自由发布给任何人,而私钥必须保密,只有拥有私钥的一方能够解密由公钥加密的数据。

2.特点

  • 加密和解密使用不同的密钥,公钥加密,私钥解密
  • 安全性高
  • 密钥管理简单:只需要保护好私钥

3.算法

  • RSA
  • DSA

SSL/TLS协议作用

1.SSL 安全套接字层。一种用于加密和验证应用程序与Web服务器之间的发送数据的协议
2.SSL/TLS 协议作用:认证用户和服务,加密数据,维护数据
3.SSL/TLS 协议的基本思路是采用公钥加密法,也就是说,客户端先向服务器端索要公钥,然
后用公钥加密信息,服务器收到密文后,用自己的私钥解密。
如何保证公钥不被篡改?

CA证书的作用

如何保证公钥不被篡改?
将公钥放在数字证书中。只要证书是可信的,公钥就是可信的。

为什么bp抓包要配置CA证书

因为 1.当客户端与服务器之间进行HTTPS通信时,通信数据经过SSL/TLS加密,以保护数据的机密性和完整性。

2.bp要拦截和查看这些加密的通信,就需要在中间插入代理,即BP代理。

3.由于HTTPS通信使用了证书进行加密和验证,如果没有配置CA证书,客户端就无法验证BP代理的身份,拒绝通信。

TCP与UDP区别

1.TCP面向连接,提供可靠的服务,UDP无连接,尽最大努力交付

2.TCP速度比UDP慢,因为TCP 需要在端系统中维护连接状态,比如接受和

发送缓存,拥塞控制,序号与确认号的参数等,故 TCP 会比 UDP 慢)

3.TCP连接支持一对一,UDP支持一对一,一对多等交互通信

4.TCP面向字节流,UDP面向报文,不可分割。

三次握手&四次挥手

1.客户端发送 SYN 报文,并进入 SYN_SENT(发送) 状态,等待服务器的确认
2.服务端收到SYN报文,给客户端发送ACK确认报文,同时也要发SYN报文,此时服务器进入(收到)状态   SYN加ACK报文
3.向服务端发送ACK,客户端进如确认状态  
完成三次握手00

四次挥手

1.第一次挥手:客户端发送一个 FIN,用来关闭客户端到服务端的数据传送,客户端进入 FIN_WAIT_1 状态
2.二次挥手:服务端收到 FIN 后,发送一个 ACK 给客户端,确认序号为收到序号 +1(与SYN相同,一个FIN占用一个序号),服务端进入 CLOSE_WAIT 状态
3.第三次挥手:服务端发送一个 FIN,用来关闭服务端到 客户端的数据传送,服务端进入 LAST_ACK 状态
4.第四次挥手:客户端收到 FIN 后,客户端进入 TIME_WAIT 状态,接着发送一个 ACK 给服务端,确认序号为收到序号 +1,服务端进入 CLOSED 状态,完成四次挥手00

GET与POST的区别

GET 和 POST 的区别
get 是获取数据,post 是修改数据
get 把请求的数据放在 url 上, 以?分割 URL 和传输数据,参数之间以&相连,所以 get 不太
安全。而 post 把数据放在 HTTP 的包体内(requrest body)
get 提交的数据最大是 2k( 限制实际上取决于浏览器), post 理论上没有限制。
GET 产生一个 TCP 数据包,浏览器会把 http header 和 data 一并发送出去,服务器响应 200(返
回数据); POST 产生两个 TCP 数据包,浏览器先发送 header,服务器响应 100 continue,浏览
器再发送 data,服务器响应 200 ok(返回数据)。
GET 请求会被浏览器主动缓存,而 POST不会。

常见端口

MYSQL 3306

Oracle 1521

SQL Server 1433

Redis 6379

SMTP 25 (简单邮件传输协议)

443 网页浏览端口HTTPS
445 共享文件夹
3306 mysql数据库
1433 mssql数据库
20 21 ftp
拓展:常见端口号
端口号    端口说明    				攻击技巧
21/22/69  ftp/tftp:文件传输协议    爆破\嗅探\溢出\后门
22    	  ssh:远程连接    			爆破OpenSSH;28个退格SSH(安全登录)SCP(文件传输)端口号重定向
23    	  telnet:远程连接    		爆破\嗅探
25    	  smtp:邮件服务    		邮件伪造
53   	  DNS:域名系统    			DNS区域传输\DNS劫持\DNS缓存投毒\DNS欺骗\利用DNS隧道技术刺透防火墙
67/68     dhcp    					劫持\欺骗
110    	  pop3    					爆破
139    	  samba    					爆破\未授权访问\远程代码执行
143    	  imap    					爆破
161    	  snmp      				爆破
389       ldap    					注入攻击\未授权访问
512/513/514 linux r    				直接使用rlogin
873    	  rsync    					未授权访问
1080    socks代理协议    					爆破:进行内网渗透
1352    lotus    					爆破:弱口令\信息泄漏:源代码
1433    mssql    					爆破:使用系统用户登录\注入攻击
1521    oracle    					爆破:TNS\注入攻击
2049    nfs    						配置不当
2181    zookeeper    				未授权访问
3306    mysql    					爆破\拒绝服务\注入
3389    rdp    						爆破\Shift后门
4848    glassfish    				爆破:控制台弱口令\认证绕过
5000    sybase/DB2    				爆破\注入
5432    postgresql    				缓冲区溢出\注入攻击\爆破:弱口令
5632    pcanywhere    				拒绝服务\代码执行
5900    vnc    						爆破:弱口令\认证绕过
6379    redis    					未授权访问\爆破:弱口令
7001    weblogic    				Java反序列化\控制台弱口令\控制台部署webshell
80/443/8080    web    				常见web攻击\控制台爆破\对应服务器版本漏洞
8069    zabbix    					远程命令执行
9090    websphere控制台    			爆破:控制台弱口令\Java反序列
9200/9300 elasticsearch    			远程代码执行
11211    memcacache    				未授权访问
27017    mongodb    				爆破\未授权访问

冰蝎、哥斯拉的流量特征

冰蝎
1.Accept头application/xhtml+xmlapplication/xmlapplication/signed-exchange属于弱特征
2.内置的一些ua头
3.request.getReader().readLine()读取post请求。请求的Content-Type: application/octet-stream属于强特征。
4.content-length,上传文件,命令执行来讲,加密的参数不定长。但是对于密钥交互,获取基本信息来讲,payload都为定长,且无随机padding
哥斯拉
phpshell有三种编码方式
1.EVAL_XOR_BASE64编码连接特征很明显,经过url解码后,pass=eval(base64_decode... 拦截明显的木马特征即可
2.XOR_BASE64编码方式第一个包形式为pass=加密数据,无法检测:(XOR_RAW与其类似,不再单独分析)
3.哥斯拉连接时有一个握手机制,加密前的内容和响应都是固定的,且加密中未填充随机长度字符。故在默认密码和密钥的情况下,内容固定可以检测握手机制包中的请求体和响应体:DlMRWA1cL1gOVDc2MjRhRwZFEQ%3D%3D11cd6a8758984163fL1tMGI4YTljO/79NDQm7r9PZzBiOA==6c37ac826a2a04bc
注意:密钥改变,base加密字符串改变,密码改变,md5加密字符串改变。如果密码和密钥不是默认,可以检测响应体的长度以及构成要素:前后为16位md5值,中间为32位加密字符串。
4.哥斯拉页面配置中的header有三个固定值user-agent,accept,accept-language。该弱特征也可作为检测。

SQLMAP常用命令

-D指定数据库
-T指定表
-C指定字段名
-m多个url进行测试
-r从文件中加载http请求
-l从burp日志中检测注入
--dbs --tables --columns --dump
查看是否为管理员权限--is-dba
查看数据库管理员用户名--roles
指定注入的数据库类型--dbms
-v 2显示debug信息 3显示注入的payload 4显示http请求 5响应头 6响应页面
指定注入类型--technique=BEUST B布尔型E报错型U联合查询S多种联合T时间延迟注入
级别越高探测--level payload发送的就越多,level3以上会尝试对referer注入。
以get/post方式提交--method POST
把数据以post方式提交--data
风险系数--risk,1会测试大部分的测试语句,2会增加基于事件的语句3.增加or语句的ql注入测试。
sqlmap -u "url?a=***"

SALmap对一个注入点进行注入

1.如果是 get 注入,直接,sqlmap -u "注入点网址". 
2.如果是 post 注入,可以 sqlmap –r "burp 地址访问包”
3.如果是 cookie,X-Forwarded-For等,可以访问的时候,用burpsuite抓包,注入处 用号替换,放到文件里,然后sqlmap -r "文件地址",记得加上—level 3参数

NMAP

nmap -v ip 显示详细的扫描过程
nmap -p  ip  扫描指定端口
nmap -A ip  全面扫描操作系统
nmap -sP ip  进行ping扫描主机存活
nmap -Pn/-P0 ip 禁ping扫描
nmap -sS ip 进行tcp syn扫描 也叫半开放扫描
nmap -sT ip 进行tcp连接扫描 (准确性高)
扫描方式
TCP全扫描nmap -sT ip
TCP SYN半开放扫描nmap -sS ip
ping扫描nmap -sP ip
UDP全扫描nmap -sU

DNS欺骗

定义: DNS欺骗就是攻击者冒充域名服务器的一种欺骗行为。 

原理:如果可以冒充域名服务器,然后把查询的IP地址设为攻击者的IP地址,这样的话,用户 上网就只能看到攻击者的主页,而不是用户想要取得的网站的主页了,这就是DNS欺骗的基本 原理。 

DNS欺骗其实并不是真的“黑掉”了对方的网站,而是冒名顶替、招摇撞骗罢了

Xss和csrf的区别

1.csrf需要登录后操作,xss不需要
2.csrf是请求页面api来实现非法操作,xss是向当前页植入js脚本来修改页面内容。
XSS利用站点内的信任用户
csrf伪装成站点的受信任用户

CSRF和SSEF的区别

csrf是服务器端对对用户的数据像cookie信息等重要数据没有做严格把控,使得攻击者窃取信息进行伪造发送给服务器
ssrf是服务器对用户提供的url地址过于信任,没有检测,导致攻击者可以通过这个跳板攻击内网。

XXE(外部实体注入)

XML外部实体注入,简称XXE漏洞。
也就是说服务端接收和解析了来自用户端的xml数据,而又没有做严格的安全控制,从而导致xml外部实体注入。

危害

1.DOS攻击
2.文件读取
3.内网探测

存在

pdf在线解析、word在线解析、定制协议、留言版等
最好是不要让xml作为参数传输或整体结构可被用户篡改。如果一定要使用,java解析xml的常用三方库至少禁用DTD、Entity。

遇到XXE盲注

如果遇到XXE无回显注入的话,可以选择使用DNS外带和外部参数实体注入 
1- 在攻击者自己的公网服务器,准备一个test.dtd通过base64为将读取的内容加密得到的 值当作传参值,发送给攻击者的公网服务器 
2-受害者那边,通过外部参数实体注入访问攻击者公网服务器下的test.dtd文件 
3-最后看 攻击者公网服务器的日志,转码得到受害者服务器的内容

防御

1.使用开发语言提供的禁用外部实体的方法
PHP:
libxml_disable_entity_loader(true);
JAVA:
DocumentBuilderFactory dbf =DocumentBuilderFactory.newInstance();
dbf.setExpandEntityReferences(false);
Python:
from lxml import etree
xmlData = etree.parse(xmlSource,etree.XMLParser(resolve_entities=False))
2.过滤和验证用户提交的XML数据
3.过滤关键词<!DOCTYPE、<!ENTITY SYSTEM、PUBLIC
4.不允许XML中含有任何自己声明的DTD

SQL注入

原理:Web应用程序对用户输入的数据过滤不严谨,并且把用户输入的数据当作SQL语句去执行器。

参数可控 数据能够带到数据库中执行

SQL判断注入点(数字型/字符型/其他类型)

1.加单引号双引号判断回显
2.加and = 1 或者and 1=2 判断页面回显
3.注释符

SQL注入分类

反馈结果上分为  
   有回显型,无回显型。
攻击手法上分为:
    1.联合查询注入
    2.堆叠注入
    3.报错注入  (updatexml,floor,ExtractValue)
    原理;Xpath语法错误
    语法updatexml(目标xml文档,xml路径,更新的内容)
    语法extractvalue(目标xml文档,xml路径)
    4.盲注
    时间盲注
    布尔盲注 (截取字符串)
    count substr(a,b,c) length
    5.二次注入 :先注入而已数据,再利用注入的数据进行进一步操作
    比如注册功能中,恶意脚本或恶意代码注入到用户的个人资料。
    6.宽字节
    有反斜杠
    利用%df吃掉%5c(\)或者让斜杠失去作用
      .mysql写shell用的函数
1.outfile (将查询结果导出到文件中)
dumpfile、开启log写shell
为什么参数化查询可以防止sql注入
  使用参数化查询数据库服务器不会把参数的内容当作sql指令的一部分来执行,是在数据库完成sql指令的编译后才套用参数运行
简单的说: 参数化能防注入的原因在于,语句是语句,参数是参数,参数的值并不是语句的一部分,数据库只按语句的语义跑。

SQL常用语句

查库selsct schema_name from information_schema.schemata
查表select table_name from information_schema.tables where table_schema='security'
查列select column_name from information_schema.columns where table_name='users'
查字段select username,password from security.users
if(ascii(substr(“hello”, 1, 1))=104, sleep(5), 1)

SQL注入绕过

1.注释符
2.大小写绕过
3.双写绕过
4.对字符进行转义

DNS(域名转化为IP地址)

DNSlog:记录DNS查询和响应的日志文件,通过分析DNS日志,识别潜在的网络攻击,恶意域名,监控网络流量。

sql注入getshell的几种方式

1.利用outfile函数

web目录具有写权限,能够使用单引号

知道网站绝对路径

secure_file_priv没有具体值

2.利用–os-shell

使用udf提权获取Webshell,

SQl注入无回显

1.编写脚本,自动化注入 (防火墙存在,容易被封禁IP)
2.使用DNSLog注入,把服务器返回的结果放在域名中,读取DNS解析时的日志。

XSS

1.原理:跨站脚本攻击是指**恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用户的目的。**
2.XSS的原理
攻击者对含有漏洞的服务器发起XSS攻击(注入JS代码)。
诱使受害者打开受到攻击的服务器URL。
受害者在Web浏览器中打开URL,恶意脚本执行。
1.挂马
2.盗取用户Cookie。
3.DOS(拒绝服务)客户端浏览器。
4.钓鱼攻击,高级的钓鱼技巧。
5.删除目标文章、恶意篡改数据、嫁祸。
6.劫持用户Web行为,甚至进一步渗透内网。
7.爆发Web2.0蠕虫。
8.蠕虫式的DDoS攻击。
9.蠕虫式挂马攻击、刷广告、刷浏量、破坏网上数据
10.其它安全问题

提权

1.挖linux 内核漏洞  (基本放弃) 脏牛提权(CVE-2016)
2.找软件,配置的缺陷
find 命令 suid 权限提升,运维
cmd=system(“find-exec ifconfig \;-quit");
sed
awk
3.很多方法

Windows提权

1.手动检测提权漏洞
2.使用网上的项目查看可以提权的漏洞
3.本地提权
4.在一些系统文件中找用户凭据
4.IIS配置
IIS是Windows安装上的默认web服务器。IIS网站上的web.config文件,存储数据库或配置的身份验证机制的密码。
5.通过 Webshell 找网站读写执行目录,把 cs 马或提权 exp 上传到对方服务器(如果 cmd无法执行命令可单独上传 cmd.exe 到对方服务器,菜刀终端设置为 setp c:\XXX\cmd.exe

linux提权

1.uid提权 (find / -perm -u=s -type f 2>/dev/null)
2.(sudo git help config !/bin/bash或者!'sh'完成提权)
3、脏牛提权    低权限用户可以利用该漏洞实现本地提权 (达到root,修改su)
4、内核提权 (1.信息收集,2.显示漏洞利用完整途径,exp利用) 
5、环境劫持 
6、suid提权  suid:linux系统文件中除了读(r),写(w),执行(x)权限外,还有s和t这两个特殊的权限。 当s这个标志出现在文件所有者的x权限上时,此时就被称为SetUid(简称SUID)则当文件被执行时,该文件是以文件所有者UID而不是用户UID 执行程序。find / -perm -u=s -type f 2>/dev/null  
7、cve-2021-4034 
8、docker提权

MYsql提权的两种方式

mysql有个配置叫secure_file_priv,该选项制定了MySql服务器可以读取和写入文件的目录。
1.为空,允许MySql服务器在任意目录中读取和写入文件
2.绝对路径,限制只能在这读
3.5.5之后secure_file_priv默认是NULL,不可以写文件

UDF提权

利用数据库中的用户自定义函数来获取更高的权限或执行特权操作。

UDF提权
拿到webshell可以连接数据库,能够写文件的话,利用UDF挺提权
udf.dll文件在windows server 2003下放置与c:\windows\system32目录,

udf在mysql5.1以后的版本中,存在于’mysql/lib/plugin’目录下,文件后缀为’.dll’
1.将udf文件放到指定位置
2.从udf文件中引入自定义函数
3.执行自定义函数

Sqlsever提权

1.使用系统管理员账号登陆
2.使用已知的高权限账户
3.提升当前登陆用户的权限

CSRF(跨站请求伪造)

csrf原理

同一浏览器下,用户访问了攻击者的恶意链接,攻击者拿着你的“身份凭证”,冒充你进行相应的攻击。
条件:目标用户已经登陆了网站,并在本地生成了cookie,能够执行网站的功能
     目标用户访问了攻击者构造的URL

CSRF防护

1.验证HTTP Referer字段,请求头
2.在请求地址中添加Token验证
3.在HTTP头中自定义属性并验证

CSRF漏洞的挖掘

1.简单的 抓取一个数据包,如果没有Refer和Token字段,极有可能存在CSRF漏洞
2.有Refer字段,去掉,重新提交
3.CSRFTest,CSRF Request Bulider
使用工具时,抓取我们在浏览器中访问的所有链接以及所有的表单信息,在工具中修改信息,提交。

SSRF(服务端请求伪造)

ssrf原理

是:攻击者构造形成的由服务端发起的一个安全漏洞
攻击者在访问A时,利用A的特定功能构造特殊payload,由A发起对内部网络中系统B(内网隔离,外部不可访问)的请求,从而获取敏感信息。

1.服务器允许向其他服务器获取资源
2.没有对URL地址做严格的过滤限制
3.导致了攻击者可以向受害者服务器,传入任意的URL地址,并将数据返回

查找SSRF漏洞

share
wap
url
link
src
source
target
u
display
sourceURl
imageURL
domain

找到后分析URL中的为协议

file:/// 从文件系统中获取文件内容,如,file:///etc/passwd
dict:// 字典服务器协议,访问字典资源,如,dict:///ip:6739/info:
sftp:// SSH文件传输协议或安全文件传输协议
ldap:// 轻量级目录访问协议
tftp:// 简单文件传输协议
gopher:// 分布式文档传递服务,可使用gopherus生成payload

SSRF漏洞防御

1.验证对服务器的返回请求
2.限制请求的端口为http常用的端口
3.黑名单内网ip
4.禁用不需要的协议

ssrf利用redis写shell

1.对内网进行扫描,获取banner(服务版本信息,配置信息,操作系统信息)
2.攻击运行在内网的应用,主要使用get参数就可以实现的攻击。例如Struct2,sqli
3.利用协议读取本地文件
4.云计算环境 AWS Google Cloud 环境可以调用内网操作 ECS 的 API

weblogic ssrf漏洞

通过ssrf的gopher协议操作内网的redis,利用redis将反弹shell写入crontab定时任务,然后url编码,将\r字符串转化为%0d%0a

文件上传

上传一个后门文件到服务器,通过这个脚本文件获得执行服务端命令的能力。

绕过知识点

1.检测层面:前端(js),后端(服务器检测)
2.检测内容:文件头,完整性,二次渲染
3.检测后缀:黑名单,白名单,MIME检测
1.MIME检测类型:HTTP请求头里面的Contenr-Type字段改为imag/jpeg,imag/png,imag/gif
2.黑名单
3.php大小写,加上php3。
4.图片码绕过
妙用.user.ini
先上传一个.user.ini文件  (auto_prepend_file=1.png)
再上传1.png,包含一句话木马
(在这里面考虑对内容的过滤)

<?php eval($_POST[x])?>
文件头的检测
括号的检测等

防护

前端JS校验 数据包的Content-Type类型检测 服务端path参数检测
文件扩展名检测
1.文件扩展名白名校验,
2.文件内容服务端校验
3.隐藏文件上传路径
黑白名单

文件包含

原理

在网站的开发人员在开发网站的时候,会把经常重复使用的函数或者特定的页面写到单个文件中,需要使用的时候就直接调用此文件即可,而无需再次浪费时间再次编写,这种操作通常被称为文件包含。

相关函数

include():包含并运行指定的文件,包含文件发生错误时,程序警告,但会持续执行
require():

分类

1.本地文件包含
2.远程文件包含 需要php.ini开启allow_url_fopen默认开启和allow_url_include默认关闭

未授权访问漏洞

未授权访问漏洞就是在不需要请求授权的情况下对需要授权的功能进行访问执行,通常是由于认证页面存在缺陷,安全配置不当。
越权漏洞:
水平越权:水平越权是同等权限下,不同用户直接的切换,访问到对方的敏感信息,造成信息泄露。

垂直越权:垂直越权是在低权限用户下,可以执行高权限用户的功能。
Redis未授权访问漏洞:

redis默认开放6379端口,如果没有采用相关的策略,比如添加防火墙规则来避免非信任来源ip,这样就会将redis服务暴露在公网上,如果默认密码为空的情况下,会导致任意用户在访问目标服务器的情况下未授权访问redis以及读取Redis的数据。

可以利用redis提供的config命令进行文件写操作,还可以将自己的ssh公钥写入目标服务器中,进而使用自己的私钥进行ssh登录目标服务器。

JBoss未授权访问
JBoss是J2EE应用的中间件平台,默认情况下访问http://ip:8080/jmx-console就可以浏览JBoss部署的管理信息,不需要输入用户名和密码就可以部署上传木马。

应急响应流程

1.初步评估:确定受影响的系统,网络和数据,收集相关日志和数据进行分析。
2.阻止攻击:立即尝试组织攻击,隔离受感染的系统或网络的主机。
3.确定攻击:收集更多的数据和日志,确定攻击来源,攻击方法,攻击者的意图。
4.消除威胁:借用适当的措施消除威胁,修改漏洞,删除恶意软件,打补丁
5.恢复系统:
6.收集证据:收集与攻击者有关的证据。ip,攻击时间,攻击方式,以便溯源攻击者并且提供给指挥部。
7.准备报告:准备详细的报告,攻击的影响,采取的建议和措施。

内网相关

如何做内网渗透

第一种方法:
在具备Webshell的情况下,通过Webshell直接上传CS木马到对方服务器运 行,在CS软件上面开启 SocksProxy代理,把 kail 直接通过cs socksProxy代理攻击内 网进行横向渗透。 
第二种方法:
通过reGeorg+Proxifie进行内网渗透,把 tunnel.nosocket.php 脚本 通过Webshell上传到 Web 站点目录进行访问,在本地自己电脑上面执行 reGeorgSocksProxy.py -p 9999 –u http://IP 地址/tunnel.nosocket.php,最后配置 Proxifier 本地 代理地址与端口进行横向内网渗透。

内网渗透的流程

1.打穿了网站,软件,app,小程序

流程
1.提权
2.内网信息收集 (内网存活探测)
代理隧道 内网穿透
3.内网攻击手法
(弱密码,未授权访问,密码重置)
4.深入利用 (权限维持,置入更高级的后门)

内网不出网

1.通过webshell实现内网socket代理 
2.正向链接 
3.ssh隧道 
4.协议不同出网的方式不同,如dns对应dnscat2 tcp对应 
5.测试是否是特定协议或端口出网

如何获取webshell以及相关

1. 将专门存放上传文件夹里面的脚本类型文件,解析成其它类型的文件。
2. 将文件夹里面的文件设置为无法读取及其它操作
3. 将文件上传到一个单独的文件夹,给一个二级域名,不给这个虚拟站点解析脚本的权限。

检测思路

webshell就是以asp、php、jsp或者cgi等网页文件形式存在的一种命令执行环境,也可以称为网页后门。
静态检测:检测文件代码,匹配特征码,特征值。还有危险函数。只能查找已知的webshell,误报率比较高。必须完善匹配规则,优点是方便快捷。部署方便,缺点就是误报率高,无法查找0day,webshell。而且容易被绕过。
动态检测:
日志检测:使用webshell一般不会在系统日志中留下记录,但会在网站的web日志中留下webshell页面的访问数据和数据提交记录。日志分析检测技术通过大量的日志文件建立请求模型从而检测 出异常文件,称之为:HTTP异常请求模型检测。

手工查杀Webshell

1. 查看启动项windows+r,msconfig
2. 查看system32下有没有可疑文件
3. 观察网络联接是否存在异常

拿到webshell不出网

如何拿一个站点的webshell

上传,后台编辑模板,sql注入写文件,命令执行,代码执行,一些已经爆出的cms 漏洞,比 如dedecms后台可以直接建立脚本文件,wordpress上传插件包含脚本文件zip压缩包等

网站后台getshell的几种方法

1.webshell路径直接上传
2.数据库备份getshell
3.修改网站的上传类型配置getshell
4.通过数据库getshell
5.命令执行getshell
6.执行sql语句写入getshell

常见网站的渗透测试

  1. 首先得到人家的许可进行渗透测试

  2. 信息搜集包括

    1.对方服务器的信息(ip、系统类型、版本、开放端口、waf)
    2.网站指纹识别(cms、cdn、证书、dns记录)
    3.社工whois信息、姓名、备案、邮箱、电话
    4.子域名收集、旁站、c段
    5.中间件、协议、网站的目录结构
    
  3. 漏洞挖掘

    1.浏览网站的规模
    2.弱口令扫描
    3.xss、sql注入、csrf、敏感信息、暴力破解、文件上传、越权漏洞
    
  4. 漏洞利用和权限提升

    mysql提权、mssql、oracle
    windows
    linux
    
  5. 输出报告

正向代理和反向代理

正向代理,就是用户知道目标服务器地址,但由于网络限制等原因,无法直接访问。这时候需要先连接代理服务器,然后再由代理服务器访问目标服务器。

反向代理即是服务端代理, 代理服务端, 客户端不知道实际提供服务的服务端

反向代理是为服务端转发请求,客户端将请求发送至反向代理服务器,反向代理服务器再将请求转发给真正的服务器以处理请求,响应时后端真正的服务器将处理结果发送给反向代理,再由反向代理构建响应并响应给客户端。

域相关知识

PTH(pass the hash)#利用 lm 或 ntlm 的值进行的渗透测试
PTT(pass the ticket) #利用的票据凭证 TGT 进行的渗透测试
PTK(pass the key)#利用的 ekeys aes256 进行的渗透测试

windows系统LM Hash 及NTLM Hash加密算法,个人系统在windows vista后,服务器系统在windows 2003以后,认证方式均为NTLM Hash

可以把票据理解为登录网站后留下来的cookie,或者说和别人建立连接的一个凭据在你电脑上,这时候你就可以用这个票据进行重新连接,票据就是好比cookie

PTH和PTK连接协议是一样的,PTT协议不同,它是kerberos协议。

PTH:LM Hash 和NTLM Hash

正向连接和方向连接

正向shell:攻击者连接被攻击者机器,攻在外网
方向shell:被攻击者主动连接攻击者

资产搜集

1. whois,站长之家、微步
2. 子域名收集,layer子域名挖掘机、搜索引擎语法site:
3. 备案信息ICP备案信息、公安部备案信息
4. DNS信息搜集
5. 探测端口,nmap进行扫描
6. 绕过CDN查找真实ip
7. 网站架构,使用nmap、云悉,操作系统、中间件、数据库、编程语言。
8. 敏感目录和信息,使用御剑,robots.txt、crossdomin.xml、sitemap.xml、源码泄漏文件、/WEB-INF/
9. 使用搜索引擎,shodan、fofa、zoomeye
10. 扫描它的旁站、C段
11. 获取cms信息,工具云悉、wapplayzer插件、cookie中的关键字、robots.txt文件中的关键字
12. 探测waf、天眼查、企业信用信息公示系统。

LINUX基础

1.关机命令 shutdown  shutdown -h 10 (10秒后关机)
2.查看权限 (id)
3.修改文件权限 
chomd 命令  (u文件所有者,g跟user同一个组的用户,o其他用户,a所有用户)
+ 增加权限 -取消权限 =给予唯一权限
  • 20
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值