网安笔记(一)

一、渗透测试的流程


1.明确目标:

确定需要渗透资产的范围;确定规则,怎么去渗透;确定需求:需要达到什么样的效果

2.信息收集:

首先可以用社会工程学的方法来收集信息,看看有没有好的薄弱点。然后可以使用一些工具如nmap来收集服务器的配置信息和网站的敏感信息等等,只要是与目标相关的信息都应该去收集。

3.攻击探测---------首先可以poc一下,就是漏洞发现一下

可以借助网站去cve details网站去查找相关的漏洞

4.漏洞利用exp一下

首先可以在exploit-db网站下载一些攻击的工具或者在kali linux中使用一些攻击工具,然后可以通过恶意软件,网络攻击,暴力破解等方法来实现对目标系统的控制。

5.权限提升

入侵完目标系统后,获取更高的权限,最好能获取root超级用户权限。

6.权限维持

比如一般黑客会留一个后门程序,当防火墙杀掉我们的病毒后,我们可以通过后门程序来一直维持自己的权限,使防火墙失去作用。

7.在后面黑客就能进行内网渗透来彻底控制计算机,最后黑客需要清理掉自己渗透的痕迹,如删除日志,隐藏文件等方法。

二、常见的漏洞
1.  SQL注入漏洞:通过构造恶意SQL语句来攻击Web应用程序的漏洞。

2.  跨站脚本漏洞(XSS):通过向Web应用程序注入恶意JavaScript代码来攻击其他用户的漏洞。

3.  跨站请求伪造漏洞(CSRF):利用用户已登录的凭据,在用户不知情的情况下执行攻击者请求的操作。

4.  文件包含漏洞:利用Web应用程序的动态文件包含机制来执行任意代码的漏洞。

5.  非法访问漏洞:通过未经授权的访问来获取Web应用程序中的机密信息的漏洞。

6.  任意文件上传漏洞:用户在上传文件时,未能检查文件类型和扩展名,从而导致恶意文件被上传到服务器上的漏洞

7.  不安全的身份验证和会话管理:攻击者通过破解或窃取会话ID,获取未经授权的访问权限。

8. 缓冲区溢出漏洞:攻击者通过向应用程序中输入超出预期长度的数据,来执行未经授权的操作

9.  拒绝服务攻击:利用软件或应用程序对某些请求响应慢或不响应而导致系统崩溃的漏洞

三、中间件漏洞
IIS:PUT漏洞、短文件名猜解、远程代码执行、解析漏洞等

Apache:解析漏洞、目录遍历等

Nginx:文件解析、目录遍历、CRLF注入、目录穿越等

Tomcat:远程代码执行、war后门文件部署等

JBoss:反序列化漏洞、war后门文件部署等

WebLogic:反序列化漏洞、SSRF任意文件上传、war后门文件部署等

四、SQL注入原理、种类?防御?预编译原理,宽字节注入原理
SQL注入原理:在数据交互中,前端的数据传入到后台处理时,由于后端没有做严格的判断,导致其传入的“数据”拼接到SQL语句中后,被当作SQL语句的一部分执行。

种类:字符,数字,布尔,报错,延迟,联合,堆叠,宽字节,XFF等

防御或修复:使用预编译,PDO,正则表达式过滤,开启魔术引号,加装WAF等

危害:SQL 注入的危害:由于 SQL 注入是执行了非预期的 SQL 语句,所以有可能导致数据库中的大量数据泄露、甚至被删库,如果数据库开启了文件读写权限,还有可能导致服务器被写入木马等。

预编译原理:
预编译将一次查询通过两次交互完成,第一次交互发送查询语句的模板,由后端的SQL引擎进行解析为AST或Opcode,第二次交互发送数据,代入AST或Opcode中执行,无论后续向模板传入什么参数,这些参数仅仅被当成字符串进行查询处理,因此杜绝了sql注入的产生。

宽字节注入原理:
由于PHP utf-8编码 数据库GBK编码,PHP发送请求到mysql时经过一次gbk编码,因为GBK是双字节编码,所以我们提交的%df这个字符和转译的反斜杠组成了新的汉字,然后数据库处理的时候是根据GBK去处理的,然后单引号就逃逸了出来

五、XSS的种类有哪些?区别?修复?
XSS的种类有三种:存储型,反射型,DOM型

区别:

存储型:常出现在信息修改添加等地方,导致恶意代码被存储在数据库中,每当被攻击者访问到后就会触发执行;

反射型:常出现在url中,一般需要攻击者提前构造好恶意链接,欺骗用户点击,触发攻击代码;

DOM型:攻击代码在url中,然后输出在了浏览器的DOM节点中。

简单比较会发现,存储和反射都经过服务器,而DOM是纯前端。

修复:对输入数据进行Html Encode 处理,白名单过滤,过滤JavaScript 事件的标签,开启http-only,装WAF等。

六、XSS、CSRF、SSRF区别?(很常问)
XSS: 跨 站 脚 本 攻 击 ;

CSRF:跨站请求伪造脚本攻击;

SSRF:服务器请求伪造攻击。

区别:

    XSS:是服务器对用户输入的数据没有进行足够的过滤,导致客户端浏览器在渲染服务器返回的html页面时,出现了预期值之外的脚本语句被执行。

   CSRF:CSRF是服务器端没有对用户提交的数据进行随机值校验,且对http请求包内的refer字段校验不严,导致攻击者可以利用用户的Cookie信息伪造用户请求发送至服务器。

   SSRF:SSRF是服务器对用户提供的可控URL过于信任,没有对攻击者提供的RUL进行地址限制和足够的检测,导致攻击者可以以此为跳板攻击内网或其他服务器。

xss中常用的协议
1. javascript协议:这是最常用的XSS注入协议。攻击者可以使用此协议,将JavaScript代码注入到受害者的浏览器中,从而窃取受害者的敏感信息。

2. data协议:攻击者可以使用 data 协议,将HTML或JavaScript代码编码为Base64字符串,并作为URL的一部分发送给浏览器。浏览器会对Base64编码的字符串进行解码,然后执行其中的可执行代码。

3. mailto协议:攻击者可以使用mailto协议,将受害者的浏览器带到一个假邮件的页面。在该页面中,攻击者可以使JavaScript代码的执行。

4. file协议:攻击者可以使用file协议,将恶意脚本存储在受害者的计算机上,并通过URI调用。该协议本应仅用于客户端文件访问,但攻击者会利用其对浏览器的安全漏洞。

5. ftp和http协议:攻击者可以使用FTP或HTTP协议,向受害者的服务器或网站注入恶意代码。这通常需要攻击者获得管理权限,才能在受害者的服务器或网站上注入代码。

csrf中相关的协议
1.GET请求:攻击者可以构造一个链接,诱骗用户点击,触发一个GET请求,实现CSRF攻击。
2.POST请求:攻击者可以通过隐藏表单或JavaScript,监听用户操作,强制POST请求,实现CSRF攻击。
3..PUT请求:攻击者可以通过PUT请求,修改受害者的数据,实现CSRF攻击。
4.DELETE请求:攻击者可以通过DELETE请求,删除受害者的数据,实现CSRF攻击。
5.AJAX请求:攻击者可以通过JavaScript代码,在受害者的浏览器中发送包含CSRF攻击代码的AJAX请求,实现CSRF攻击。
6.WebSocket请求:攻击者可以通过WebSocket协议,向目标服务器发送包含恶意代码的数据帧,实现CSRF攻击。

ssrf常用的协议
file 用于读取文件

dict 用于探测一些端口 以及数据库信息

LDAP 目录扫描

TFTP 它允许客户端从远程主机获取文件或将文件上传至远程主机 上传shell

七、逻辑漏洞?
逻辑漏洞:

      逻辑漏洞是指软件中的缺陷或漏洞,它们基于不完整、不正确或者有误的逻辑,使攻击者可以通过将正常的操作组合在一起,来绕过安全措施并获得非法访问或执行操作的权限。

      逻辑漏洞并不涉及代码错误或者编程错误,而是与应用程序模型有关。逻辑漏洞通常比其他漏洞更难以发现和防御。由于它们是与应用程序模型和工作流相关的,因此经常需要利用高级技术或者深入的应用程序知识来发现和利用。同时,逻辑漏洞也可能导致攻击者获得比其他攻击更高级别的访问权限,因此更加危险。

预防:

为了预防逻辑漏洞的发生,需要对软件进行系统分析、测试和评估,以发现潜在的逻辑漏洞,并确保对应用程序模型的完整性和约束实施有效的检查和控制。

业务逻辑漏洞及其修复:

以下是一些常见的业务逻辑漏洞的例子和修复方法:

1.不正确的身份验证:

      攻击者可以通过破解密码、盗取 Cookie 或者使用其他工具来绕过身份验证,这种漏洞在许多应用程序中都很常见。

       要修复此类漏洞,建议使用多因素身份验证技术,如短信验证码、安全令牌或生物识别技术等,以提高身份验证的安全性能。

2.越权访问:

      越权访问是指攻击者通过伪造请求、使用不同的身份验证凭证或者利用错误的访问权限,来获得未经授权的访问权限。

      为了修复越权访问漏洞,开发人员应该正确地实施访问控制策略,如强制访问控制、基于角色的访问控制或者基于特定业务场景的访问控制等。

3.注入漏洞:

      注入漏洞可以被利用来在应用程序中执行不良代码或者运行任意命令。

     要修复此类漏洞,应该通过使用参数化查询或执行输入验证等技术来防止攻击者注入恶意代码。此外,对应用程序进行代码审查和测试可帮助开发人员在代码实现之前发现潜在的注入漏洞。

4.业务逻辑冲突:

     业务逻辑冲突漏洞指的是当一个应用程序具有多个业务规则时,这些规则之间可能存在冲突,从而导致错误或不合理的运作。

     为了修复此类漏洞,开发人员应该确保应用程序的业务规则在设计和实现时进行了完整的审查和测试,并在应用程序代码中实现正确的业务逻辑流程。

修复业务逻辑漏洞:

解决业务逻辑漏洞需要对应用程序进行全面的、深入的测试和分析,并在实施代码逻辑和运行规则的同时实施多层次、多种类型的安全措施,包括输入验证、身份认证、访问控制和数据过滤等。

八、攻击方式有哪些
1. 木马攻击:将恶意软件(木马)安装到用户的计算机上,以获得对计算机的控制。

2. 病毒攻击:通过将病毒传播到计算机或网络,感染并控制受感染的计算机或网络。

3. DDos攻击:由于网络流量过载而使网络系统无法正常工作,使其无法向其用户提供正常的服务。

4. 电话钓鱼(虚假电话):企图从目标用户那里获得敏感信息,这是通过伪装成指定方进行电话联系的方法。

5. SQL注入攻击:攻击者通过Web应用程序输入SQL命令来执行恶意SQL代码。

6. 跨站脚本攻击(XSS):通过向Web应用程序注入恶意JavaScript代码,来攻击其他用户的漏洞。

7. 社交工程攻击:通过社交媒体或其他在线渠道欺骗用户提供敏感信息或访问到他们的计算机。

8. 中间人攻击:通过拦截通信连接,并窃取受害者和接收者之间的数据。

九、渗透测试工具
首先我会想到

nmap 扫描工具      扫描开放的端口或操作系统等等

Burp Suite:Web渗透测试工具       由截获代理、扫描代码、拦截请求、编写报告等模块组成。

Kali linux操作系统中提供上百种的攻击工具,比如我用过msf编写过入侵安卓手机的木马程序。

John the Ripper:密码破解工具,能够根据各种条件破解密码,如字典攻击、暴力破解等。

十、漏扫工具
1.Nmap:非常流行的网络扫描器,可以帮助黑客快速获取目标网络上的主机、服务和操作系统信息,以发现可能存在的漏洞.

2.Nessus:一种广泛使用,可在多个平台上运行的漏洞扫描工具,可用于对任何类型的系统和设备进行测试

3.Nikto:一种专门用于测试Web服务器的Web应用程序漏洞扫描器,它能够扫描Web服务器配置,查找各种漏洞,提供修复建议,还能反入侵。

4. W3af:开源Web应用程序安全和漏洞扫描器,用于探测、审计和攻击Web应用程序,包括漏洞扫描、自动化缺陷管理、文件上传漏洞、SQL注入漏洞和文件目录遍历漏洞等

5.OpenVAS:开源漏洞扫描器,能够探测、审计和攻击Web应用程序,包括漏洞扫描、自动化缺陷管理、文件上传漏洞、SQL注入漏洞和文件目录遍历漏等。

6. Metasploit Framework:模块化的漏洞利用框架,包含了大量的漏洞扫描和利用工具,用于快速获取系统权限。

7. Acunetix:商业Web应用程序扫描器,能够自动发现和扫描各种Web应用程序漏洞,包括XSS、SQL注入、CSRF、文件上传和命令注入漏洞等。

十一、防火墙是什么?种类?作用?
     防火墙是一种网络安全设备,通过检查数据包、控制网络访问和过滤网络流量等技术手段,来保护计算机网络和信息系统免受网络攻击和恶意代码的侵害。

种类:
1. 包过滤防火墙:这种防火墙是最早的一类防火墙,主要是基于网络数据包(IP数据包)的源地址、目的地址、端口和协议等信息来限制网络访问。

2. 应用代理防火墙:应用代理防火墙基于应用层协议,例如HTTP、FTP、SMTP和DNS等,它能够深入理解应用协议,同时通过过滤、审计和监视流量来防止恶意访问。

3. 状态检测防火墙:状态检测防火墙允许拦截需要发送的而不是看似随机和非法数据包,这是通过跟踪网络流量状态、记录已经通过的流量、推断合法流量的结构来实现的。

4. UTM防火墙:UTM(综合威胁管理)防火墙是一种多层次、多功能和集成的网络安全解决方案,它可以处理许多不同类型的网络威胁,包括病毒、恶意软件、垃圾邮件、Web攻击和入侵等。

5. 下一代防火墙:下一代防火墙是一种集中化的安全设备,它能够监控和控制所有网络流量,并对所有威胁进行识别和防御,同时集成了许多其他安全功能,例如VPN、IDS/IPS和URL筛选等。

作用:
防火墙是网络中的一种重要安全设备,它提供网络边界和内部网络之间的隔离,通过控制网络流量和信令,来保护网络安全。防火墙的主要作用包括以下几个方面:

访问控制:防火墙可以根据应用程序、IP地址、端口等规则,控制哪些流量可以通过网络边界和内部网络之间的边界。
攻击防范:防火墙可以识别和防止外部网络中可能存在的安全威胁,如DDoS攻击、端口扫描等。
数据过滤:防火墙可以根据内容、类型和协议过滤数据包,从而筛选掉有害数据。
日志记录:防火墙可以记录所有通过网络边界或内部网络之间的流量,以及所有被阻止的连接和尝试访问受限资源的事件。
 十二、反序列化(很常问)
序列化就是将一个对象转换成字符串,反序列化就是将字符串重新转化为对象。

PHP
PHP反序列化攻击的原理是:攻击者构造恶意的序列化数据,并将其发送到目标网站;目标网站在接收数据后,解析序列化数据并返回给攻击者控制的服务器,从而执行预设的恶意代码。攻击者可以利用此漏洞实现各种攻击,比如远程代码执行、文件包含漏洞、SQL注入漏洞、操作系统命令注入等。

此外,PHP反序列化又可以简单分成两种,一种无类,一种有类,无类利用就略微简单,如果源码会将输入的值进行反序列化,那我们就需要提前将数据序列化后再传入。而想要利用有类就要用到魔术方法,而魔术方法就像一个潜规则一样,例如我们在创建对象时,就会触发 construct(),并执行 construct()中的代码。

Java
Java反序列化原理:Java反序列化漏洞是指恶意用户通过发送精心构造的序列化数据并触发其反序列化过程,从而执行未经授权的代码或操作。攻击者可以利用此漏洞来执行远程命令、绕过应用程序的安全检查、窃取敏感信息等攻击。如果Java应用对用户输入(即不可信数据)做了反序列化处理,那么攻击者可以通过构造恶意输入,让反序列化产生非预期的类或对象,这个类或对象在产生过程中就有可能带来任意代码执行。

Shiro
Shiro反序列化原理:Shiro是Apache下的一个开源Java安全框架,执行身份认证,授权,密码和会话管理。shiro在用户登录时除了账号密码外还提供了可传递选项remember me。用户在登录时如果勾选了remember me选项,那么在下一次登录时浏览器会携带cookie中的remember me字段发起请求,就不需要重新输入用户名和密码。

Fastjson
fastjson是阿里巴巴开发的一款将json字符串和java对象进行序列化和反序列化的开源json解析库。fastjson提供了autotype功能,在请求过程中,我们可以在请求包中通过修改@type的值,来反序列化为指定的类型,而fastjson在反序列化过程中会设置和获取类中的属性,如果类中存在恶意方法,就会导致代码执行等这类问题。

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值