首页 > 数据库 >生产实习--启明星辰 第四天(Web网络安全基础知识,sql注入,xss攻击,csrf与ssrf,xxe攻击,未授权漏洞,漏洞,常见中间件攻击,文件包含,流量特征)

生产实习--启明星辰 第四天(Web网络安全基础知识,sql注入,xss攻击,csrf与ssrf,xxe攻击,未授权漏洞,漏洞,常见中间件攻击,文件包含,流量特征)

时间:2024-07-09 20:02:27浏览次数:16  
标签:脚本 访问 攻击 数据库 中间件 用户 漏洞 注入

web安全的基础知识

基本定义

Web安全,也称为网络安全或在线安全,是指保护网站、网页和Web服务免受各种威胁和攻击的技术和实践。这些威胁可能来自恶意软件、网络攻击、数据泄露、身份盗窃、服务中断等。Web安全的目标是确保Web应用程序和用户数据的安全、完整和可用性。

一般流程

安全评估:识别和评估系统的安全漏洞。

安全测试:对系统进行渗透测试,以发现潜在的安全问题。

安全加固:修复发现的安全漏洞,并增强系统的安全性。

安全监控:持续监控系统的安全状态,及时发现并响应安全事件。

常见端口

20/21:FTP(文件传输协议)用于文件传输,其中20端口用于数据传输,21端口用于控制命令。

22:SSH(安全外壳协议)用于安全的远程登录和文件传输。

23:Telnet用于不安全的远程登录。

25:SMTP(简单邮件传输协议)用于发送电子邮件。

53:DNS(域名系统)用于将域名解析为IP地址。

80:HTTP(超文本传输协议)用于Web服务器和客户端之间的非加密通信。

110:POP3(邮局协议版本3)用于接收电子邮件。

143:IMAP(互联网消息访问协议)用于管理电子邮件。

443:HTTPS(HTTP安全)用于Web服务器和客户端之间的加密通信。

3389:RDP(远程桌面协议)用于Windows远程桌面服务。

3306(MySQL),1433(SQL Server)、5432(PostgreSQL):数据库服务的默认端口。

6379(Redis)、27017(MongoDB):NoSQL数据库的默认端口。

基本的工具

Nmap:

主要功能 : 主机发现 ( -sP ,不用ping检测-Pn) , 端口扫描 (-sS -sT -sU), 版本侦测 ( -sV ) , 系统侦测 ( -O )

BurpSuite:

常用的BurpSuite模块:

常用的有 : 代理模块 重发器 测试器 编码器 对比器 插件有wafpass sqlmap检测等

测试器4个功能:

狙击手:单个字典单个爆破

攻城锤:单个字典多位置同时爆破

草叉:多个字典多位置按顺序同时爆破

集束炸弹:多个字典多位置交叉爆破

如何抓https的包:把BP的证书导出 , 然后添加到浏览器信任的证书机构中

BurpSuite如何抓外网的包:

设置代理

和xray联动

burp配置代理后xray开启监听连接

Sqlmap:

-u //网址
--dbs //获取所有数据库名
--current-db //获取当前数据库
--table -D "数据库" //获取某数据库的所有表
--columns -T "数据表" -D "数据库" //读取指定字段内容
--is-dba //看数据库权限-0
--os-shell  //系统交互的shell    生成俩个文件 一个正常文件 一个有shell-
-r xxx.txt //注入HTTP请求
-d "mysql://admin:[email protected]:3306/testdb" //直接连接到数据库
--tamper xxx //指定绕waf脚本
-v 0-6 //
0:只显示python错误以及严重的信息。
1:同时显示基本信息和警告信息。(默认)
2:同时显示debug信息。
3:同时显示注入的payload。
4:同时显示HTTP请求。
5:同时显示HTTP响应头。
6:同时显示HTTP响应页面。
--level=1-3  //默认是1,2的时候会测试cookie,3的时候会测试ua和referer,
--threads=10 //设置线程
--batch   //卡顿自动回车

SQL注入

定义与原理

由于对用户的输入没做严格的过滤和限制,攻击者通过在Web应用的输入字段中插入恶意SQL代码,从而影响数据库的操作。(我们知道web网站分为前端和后端,前端会像后端提供用户所需要的请求,而后端则需要根据前端所提供的请求做出响应,传递资源,这个资源就可能是sql数据库,因为没有严格的过滤,就给了黑客机会去对我们的sql语句(即对数据库的操作)进行修改,拼接,从而获取数据库中的信息,并进行一系列的操作)

危害

数据泄露、数据篡改、被留后门、甚至控制整个数据库系统。

sql语句的提交方式

GET  :        http://example.com/page?query=SELECT * FROM table

GET请求通常用于请求服务器发送数据。在URL后面附加的查询参数中提交SQL语句,

GET请求的参数会暴露在URL中,因此不适用于提交敏感或机密信息。

POST:

POST请求用于向服务器提交数据,数据通常在HTTP消息体中发送。

POST请求不会像GET请求那样将参数暴露在URL中,因此更适合提交敏感数据

Cookie:        Set-Cookie: sql_query=SELECT * FROM table

Cookie是在浏览器中存储的小型文本文件,用于存储用户信息

Cookie可以用于跟踪用户的会话状态,但也可能被恶意利用,例如通过跨站脚本攻击(XSS)窃取用户的Cookie信息。

http头(X-Forwarded-For):        X-Forwarded-For: 192.0.2.1

X-Forwarded-For是一个HTTP扩展头,用于识别通过HTTP代理或负载均衡器传递过来的客户端原始IP地址。

它通常用于记录用户的真实IP地址,而不是代理服务器的IP地址。

Referer:         Referer: http://example.com/source_page

Referer头用于标识请求的来源,即用户在点击链接或提交表单之前所在的页面。

Referer头可以用于分析用户的行为和流量来源,但也可能暴露用户的浏览历史,因此涉及到隐私问题

User-Agent:      User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3

User-Agent头是一个字符串,用于标识发起HTTP请求的浏览器或客户端类型

User-Agent头可以用于服务器端进行浏览器兼容性处理或统计分析

sql注入的基本过程

判断注入点:

首先,攻击者会尝试识别Web应用程序中的注入点。这通常是通过在输入字段中输入特殊的字符或SQL代码,然后观察应用程序的响应来完成的。

注入类型:

一旦发现了潜在的注入点,攻击者会尝试确定注入的类型。

暴库暴表暴字段:

获取数据库信息,获取表名,获取表中的列名与数据

sql注入的类型

联合注入:联合查询适合于有显示位的注入,即页面某个位置会根据我们的输变化而变化 。

报错注入:报错注入适合用于数据库错误的信息会回显到前端页面的时候。

布尔盲注:布尔盲注就是在页面没有错误回显时候就完成注入。

延时注入(延时盲注):攻击者使用sql语句中的延时函数,根据数据库的响应实践来推断信息。

宽字节注入(%df/):利用了字符集编码的特性来绕过某些过滤机制。

堆叠注入:用分号同时注入多条sql语句进行注入。

二次注入:

(1) 先构造语句(有被转义字符的语句)

(2)我们构造的恶意语句存入数据库

(3)第二次构造语句(结合前面已经存入数据库的语句,成功。因为系统没有对已经存入数据库的数据做检查)

(4)二次注入更加难以被发现        

数据库的权限

低级的普通用户,

中级的管理员用户,

高级的超级用户,

mysql4与mysql5区别

mysql4 存在字符转义和不支持子语句 靠猜解 , 但是mysql4不存在。

mysql5有information_schema这个库 , 里面存在着所有的库名,表名,字段名等 , mysql4没有。

mysql5支持load_file , into outfile 这些读写文件的函数 , mysql4不支持。

防御手段

函数过滤,如!is_numeric 涵数 //判断变量 id 是否为数字

直接下载相关防范注入文件,通过 incloud 包含放在网站配置文件里面,如 360、阿里云、腾迅提供的防注入脚本

使用白名单过滤

采用 PDO 预编译处理

使用 Waf 拦截

XSS攻击

定义与原理

XSS攻击是指攻击者在网页中注入恶意的客户端脚本,当其他用户浏览该网页时,这些脚本会在他们的浏览器上执行,从而实现攻击者的目的。

web程序没有对用户的输入做严格的过滤和限制 , 对输出没有进行html实体编码。

XSS攻击的原理基于浏览器对网站的信任。当用户访问一个网站时,浏览器会执行来自该网站的所有合法脚本。如果网站中的某个页面包含来自攻击者的恶意脚本,浏览器会将其作为该网站的一部分来执行,从而使攻击者能够访问用户的会话信息和执行其他恶意操作。

危害

窃取用户的会话cookie,从而实现身份盗窃。

劫持用户会话,执行未授权操作。

窃取或篡改用户数据。

在用户浏览器上执行恶意操作,如恶意软件下载。

网站钓鱼,欺骗用户输入敏感信息。

一般过程

攻击者发现漏洞:攻击者寻找可以注入恶意脚本的输入点,如表单输入、URL参数、访客留言等。

注入恶意脚本:攻击者将恶意脚本注入到网页中。

用户触发脚本:当其他用户访问该网页时,恶意脚本在他们的浏览器上执行。

执行恶意操作:脚本可能窃取用户信息、操纵用户会话或执行其他恶意操作。

xss攻击的分类

反射型XSS:恶意脚本来自于当前的HTTP请求,通常是通过URL参数直接注入的。

存储型XSS:恶意脚本存储在目标服务器上,如数据库、消息论坛、访客留言等,当用户访问包含恶意脚本的页面时,脚本会被执行。

DOM型XSS:攻击发生在客户端,通过恶意脚本修改页面的DOM结构,实现攻击。

DOM树:网页在浏览器中解析后,会形成一个DOM树,它代表了页面的结构。)

(DOM操作:JavaScript可以通过DOM API来动态修改DOM树,如添加、删除、修改节点等。)

防御手段

输入验证:对用户输入进行严格的验证,仅允许合法的输入。

输出编码:对输出到浏览器的内容进行编码,如HTML实体编码,以防止脚本执行。

使用HTTP-only Cookie:设置Cookie为HTTP-only,防止JavaScript访问Cookie。

内容安全策略(CSP):实施CSP,限制资源加载,减少XSS攻击的风险。

安全的编程实践:避免使用动态生成的HTML,使用安全的API和框架。

CSRF与SSRF(对比着理解与学习)

定义与原理

CSRF漏洞攻击原理:客户端请求伪造,

在我看来,假如我是黑客,我想访问网站A,但是这个网站A要付费,我没钱呀,我就找到一个人他要访问两个网站分别是A网站和B网站,我就黑了网站B,在他同时访问这两个网站时,我就偷偷发送一个有危害的请求,来获取A网站的cookie从而用他的账号密码来访问这个A网站。

SSRF跨站请求伪造:服务端请求伪造,

在我看来,就是操作服务器骗取客户端数据信息。

防御手段

csrf:

使用CSRF令牌:在表单中添加一个CSRF令牌,并在提交时验证。

设置HTTP-only Cookie:防止JavaScript访问Cookie。

实施内容安全策略(CSP):限制资源加载。

ssrf:

限制URL解析:不允许解析本地host或私有IP地址。

限制URL长度和格式:避免构造复杂的URL。

限制请求频率:限制请求的发送频率,以防止DoS攻击。

XXE攻击

定义与原理:

外部实体注入,是一种利用XML解析器处理XML文档时的安全漏洞进行的攻击。这种攻击允许攻击者通过在XML文档中注入外部实体引用,从而影响解析器的处理流程,甚至执行外部系统命令。

危害:

任意文件的读取

实现内网探测

Dos攻击

 xxe攻击的修复方式

升级php版本

修改源代码 , 禁用外部实体的引用

对关键字进行过滤 <!DOCTYPE、<!ENTITY SYSTEM、PUBLIC

 CSRF 和 XSS 和 XXE 有什么区别

XSS 是跨站脚本攻击,用户提交的数据中可以构造代码来执行,从而实现窃取用户信息等攻击。修复方式:对字符实体进行转义、使用 HTTP Only 来禁止 JavaScript 读取 Cookie 值、输入时校验、输出时采用 html 实体编码。

CSRF 是跨站请求伪造攻击,XSS 是实现 CSRF 的诸多手段中的一种,是由于没有在关键 操作执行时进行是否由用户自愿发起的确认。修复方式:筛选出需要防范 CSRF 的页面然后嵌入Token、再次输入密码、检验 Referer

XXE 是 XML 外部实体注入攻击,XML 中可以通过调用实体来请求本地或者远程内容,和远程文件保护类似,会引发相关安全问题,例如敏感文件读取。修复方式:XML 解析库在调用时严格禁止对外部实体的解析。

未授权访问漏洞

定义:指攻击者可以访问未受保护的资源或功能。

常见的未授权访问漏洞:

Redis 未授权访问漏洞
MongoDB 未授权访问漏洞
Jenkins 未授权访问漏洞
Memcached 未授权访问漏洞
JBOSS 未授权访问漏洞
VNC 未授权访问漏洞
Docker 未授权访问漏洞
ZooKeeper 未授权访问漏洞
Rsync 未授权访问漏洞
Atlassian Crowd 未授权访问漏洞
CouchDB 未授权访问漏洞
Elasticsearch 未授权访问漏洞
Hadoop 未授权访问漏洞
Jupyter Notebook 未授权访问漏洞

漏洞

需要了解的漏洞:

jboss

JBoss 5.x/6.x 反序列化CVE-2017-12149

Boss JMXInvokerServlet反序列化4.x 5.x 6.x

高版本未授权访问+war包部署

JMX Console HtmlAdaptor Getshell利用 4.x及以下

shiro

漏洞存在位置:所有登录框都可能存在该漏洞

漏洞特征:

remember me = delete me

shiro550和721区别:550条件较低,只要有足够的密钥,进行撞库就可以,721的ase加密的key是系统自动生成的,基本猜不到即撞库达不到目的。可使用登录后rememberMe去爆破正确的key值,即利用有效的RememberMe Cookie作为Padding Oracle Attack的前缀,然后精心构造 RememberMe Cookie 值来实现反序列化漏洞攻击,难度高

log4j

中间件漏洞

IIS6.0解析漏洞

文件夹目录解析 xxx.asp/1.jpg 只要在 xxx.asp 目录下面的任意文件都会当脚本解析特殊后缀名会当做脚本解析 123.asa 123.cer 123.cdx

IIS 7.0解析漏洞

默认 Fast-CGI 开启 , 直接在 url 中图片地址后面输入/1.php,会把正常图片当成 php 解析可以通过网站原有的图片链接进行测试是否开启了 Fast-CGI , 开了的话 , 图片会乱码

文件包含

原因:程序员开发的时候,未对包含的文件进行严格过滤,攻击者可构造自己的图片木马文件当作脚本文件执行

php中文件包含的函数:

include()     //文件不存在或者包含出错,会发出警告信息,但脚本会继续执行。
include_once() // 会检查是否已经被包含过,如果已经被包含过就不再包含,不会重复包含
require()    //如果文件不存在或者包含出错,会导致脚本停止运行,不会再往下执行。
require_once()
本地包含与远程包含的区别

 本地包含只需找个上传点,把图片木马上传到对方服务器,通过本地包含漏洞直接包含木马脚本木马就 可以运行 webshell,但是远程包含需要服务器 php 关闭魔术符号与开启远程包含功能才行。

流量特征

主要是菜刀,蚁剑,冰蝎,哥斯拉

菜刀

ua头为百度爬虫,请求体中存在eavl,base64等特征字符,payload为base64编码,请求体中执行结果响应为明文,格式为X@Y 结果 X@Y

蚁剑

默认模式:@ini_set(“display_errors”, “0”);@set_time_limit(0)开头。并且存在base64等字符,响应包的结果返回格式为 随机数 结果 随机数

其他模式编码器特征:含eval关键字,有明显的base64或者chr等编码特征

响应包的结默认果返回格式特征为 随机数 编码后的结果 随机数,如果加密有明显的base64或者chr等编码特征

冰蝎

动态:Accept: application/json, text/javascript, /; q=0.01

其他若特征:Content-type: Application/x-www-form-urlencoded以及默认的10种ua头

哥斯拉

动态:所有请求中Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,/;q=0.8

所有响应中Cache-Control: no-store, no-cache, must-revalidate,同时在所有请求中Cookie中后面都存在;特征

标签:脚本,访问,攻击,数据库,中间件,用户,漏洞,注入
From: https://blog.csdn.net/TuYHAAAAAA/article/details/140291451

相关文章

  • 生产实习--启明星辰 第四天(实操关于CC攻击以及查看摄像头)
    CC攻击原理:CC(ChallengeCollapsar,挑战黑洞)攻击是DDoS攻击的一种类型,使用代理服务器向受害服务器发送大量貌似合法的请求。环境:KaliLinux,siege工具具体步骤:首先,我们打开虚拟机kalilinux,打开命令行,输入aptinstallsiege下载我们所需要的工具。之后利用命令:siege-c并......
  • 生产实习--启明星辰 第三天(文件漏洞的实战,靶场和phpstudy环境的配置)
    环境的下载与配置在这次实践中会用到,phpstudy,burpsuite以及靶场upload-labs。对于burpsuite的配置可以参照下面这篇文章。burpsuite的安装与配置-CSDN博客对于phpstudy,我们首先进入官网(Windows版phpstudy下载-小皮面板(phpstudy)(xp.cn))进行下载,最好是下载2018的版本......
  • 【2024最新】零基础如何学习挖漏洞?看这篇就够了(超详细)
    文章目录前言什么是漏洞挖掘学习漏洞挖掘的正确顺序漏洞挖掘需要具备的知识漏洞挖掘需要做什么有关漏洞挖掘的其他想法漏洞的复杂性团队工作写在最后==如何入门学习网络安全【黑客】==【----帮助网安学习,以下所有学习资料文末免费领取!----】大纲学习教程面试刷题资料......
  • 泛微E-Cology getFileViewUrl SSRF漏洞复现
    0x01产品简介泛微协同管理应用平台e-cology是一套兼具企业信息门户、知识文档管理、工作流程管理、人力资源管理、客户关系管理、项目管理、财务管理、资产管理、供应链管理、数据中心功能的企业大型协同管理平台。0x02漏洞概述泛微E-CologygetFileViewUrl接口处存在服......
  • 跨站请求伪造(CSRF)攻击原理及预防手段
    1、什么是跨站请求伪造?CSRF(Cross-siteRequestForgery,跨站请求伪造)攻击是一种常见的Web攻击,它利用用户在登录某个网站后的有效session来发送恶意请求。攻击者通过引导用户访问恶意网站,将用户的数据提交到目标网站,欺骗目标网站相信该请求是用户发送的。CSRF攻击的关键是攻击者可......
  • 【goreplay】python简单使用goreplay中间件功能
    一、场景   流量录制,需要对播放的流量进程定制化处理,那么可以使用中间件来实现  二、官网https://pypi.org/project/gor/  三、编写中间件代码#coding:utf-8importsysfromgor.middlewareimportAsyncioGordefon_request(proxy,msg,**kwargs):......
  • 基于剪枝技术和鲁棒蒸馏融合的轻量对抗攻击防御方法
    对抗训练是一类常用的对抗攻击防御方法,其通过将对抗样本纳入训练过程,从而有效抵御对抗攻击。然而,对抗训练模型的鲁棒性通常依赖于网络容量的提升,即对抗训练所获得的网络为防御对抗攻击而大幅提升网络的模型容量,对其可用性造成较大约束。为解决以上问题,提出一种基于剪枝技术......
  • 实战篇——XSS漏洞dedecms渗透实战
    实战篇——XSS漏洞dedecms渗透实战XSS渗透实战本节借助XSS平台通过存储型XSS盲打实现管理员session劫持,进而上传一句话木马获得服务器权限。创建xss项目:将生成的xss代码植入评论:发表,提示正在审核:模拟管理员查看待审核的评论:查看xss项目,此时已经获得管理员的cookie以及......
  • [转]MQ详解以及各种消息中间件说明
    转自:https://blog.csdn.net/forebe/article/details/117993082 消息中间件相关知识1、概述消息队列已经逐渐成为企业IT系统内部通信的核心手段。它具有低耦合、可靠投递、广播、流量控制、最终一致性等一系列功能,成为异步RPC的主要手段之一。当今市面上有很多主流的消息中间......
  • 【漏洞复现】泛微e-cology——resourceservlet——任意文件读取
    声明:本文档或演示材料仅供教育和教学目的使用,任何个人或组织使用本文档中的信息进行非法活动,均与本文档的作者或发布者无关。文章目录漏洞描述漏洞复现测试工具漏洞描述泛微e-cology是一款由泛微网络科技开发的协同管理平台,支持人力资源、财务、行政等多功能管理......