CTF夺旗赛培训——Web应用安全

来源:互联网 发布:蜂窝数据应用找不到 编辑:程序博客网 时间:2024/04/29 15:40

本文首发链接
查看我的个人博客:https://hubinqiang.com


培训公司:安全狗 - 厦门服云信息科技有限公司

常见Web漏洞简介

  • SQL注入
  • 跨站脚本漏洞
  • 文件包含/读取
  • 任意代码执行
  • 任意命令执行
  • 任意文件上传

PS:演示环境dvwa

SQL注入

SQL注入是什么

SQL注入就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。

具体来说,是利用现有的应用程序,将(恶意)的SQL命令注入到后台数据库引擎执行的能力,它可以通过在Web表单中输入(恶意)SQL语句得到一个存在安全漏洞的网站上的数据库,而不是按照设计者的意图去执行SQL语句。

一、注入检测

  1. 手工注入就是通过输入可以使系统报错的语句,从而由报错信息中得到有用的信息,但是盲注入是没有报错信息的。

    1=1检测,1=2检测

  2. 判断数据库类型

    注入语句 and user>0

  3. 具体判断数据库类型

Access和SQLServer都有自己的系统表,比如存放数据库中所有对象的表,Access是在系统表[msysobjects]中,但在Web环境下读该表会提示“没有权限”,SQLServer是在表[sysobjects]中,在Web环境下可正常读取。

注入语句ID=3 and (select count(*) from msysobjects)>0ID=3 and (select count(*) from syssobjects)>0
  1. 查看数据库名

    **注入语句
    ID=3 and db_name()>0**

执行异常但可以得到当前连接的数据库名

二、基本信息扫描

SQLMap是一个自动化SQL注入工具,其主要功能是扫描,发现并利用给定的URL的SQL注入漏洞,目前支持的数据库是MS-SQL,MYSQL,ORACLE和POSTGRESQL。SQLMap采用四种独特的SQL注入技术,分别是盲推SQL注入,UNION查询SQL注入,堆查询和基于时间的SQL盲注入。其广泛的功能和选项包括数据库指纹,枚举,数据库提取,访问目标文件系统,并在获取完全操作权限时实行任意命令。

三、asp网页的注入——猜字段内容

跨站脚本漏洞

跨站脚本漏洞简介

跨站脚本漏洞(XSS)是Web应用程序在将数据输出到网页的时候存在问题,导致攻击者可以将构造的恶意数据显示在页面的漏洞。因为跨站脚本攻击都是向网页内容中写入一段恶意的脚本或者HTML代码,故跨站脚本漏洞也叫做HTML注入漏洞。

与SQL注入攻击数据服务器的方式不同,跨站脚本漏洞是在客户端发动造成攻击,也就是说,利用画展脚本漏洞注入的恶意代码实在用户电脑上的浏览器中运行的。

跨站脚本漏洞用途

  • 突破浏览器域限制
  • XSS蠕虫攻击(最重要)
  • DDsS攻击:针对浏览器缺陷实施攻击
  • 客户端信息
  • 管理信息:后台地址,管理员账号信息甚至直接通过Ajax上传Shell
  • 用户信息:私密信息,日志,相片,邮件

XSS漏洞种类

  • 反射型XSS
  • 存储型CSS

任意文件上传

PS:现在比较常见的方式。

任意文件上传是什么

由于文件上传功能实现代码没有严格限制用户上传文件后缀以及文件类型,由此产生任意文件上传漏洞,导致允许攻击者向某个可通过Web访问的目录上传任意PHP文件,并能够将这些文件传递给php解释器,就可以在远程服务器上执行任意脚本。借助文件上传漏洞,攻击者可以直接上传WebShell,导致服务器沦陷。

危险函数

move_uploaded_file()getimagesize()copy()

连接脚本的神器:中国菜刀

任意文件上传技巧

php%00截断

一般来说正常的网站都是对这个进行一定程度的过滤,后缀、文件类型、Mime type、文件大小等。

漏洞:CVE-2006-7243

截断条件
+ php版本小雨5.3.4
+ magic_quotes_gpc=off,否则%00这种空字符会被转义为\0

move_uploaded_file($_FILES['name']['tmp_name'],"/file.php\x00.jpg");

这本应该创建一个名为file.php\x00.jpg 的文件,实际上创建的文件是file.php

文件包含/读取

文件包含/读取漏洞简介

  • 本地文件包含漏洞常用的场景是用户上传头像image.jpg
  • image.jpg里存在PHP一句话木马
  • 然后我们利用本地文件包含将image.jpg加载尽量即可执行一句话命令从而getshell。

文件包含:服务器通过PHP特性(函数)去包含任意文件时,由于要包含的这个文件来源过滤不严,从而可以去包含一个恶意文件,而我们可以狗仔这个恶意文件来达到攻击的目的。

文件包含的分类

  • 本地包含:收到gpc影响,截断%00
  • 远程包含:allow_url_fopen和allow_url_include为ON

任意命令执行

任意命令执行简介

由于开发人员编写源码,没有针对代码中可执行的特殊函数入口做过滤,导致客户端可以提交恶意构造语句提交,并交由服务器端执行。命令注入攻击中Web服务器没有过滤似system().exec()等函数是该漏洞攻击成功的最主要原因。

0 0
原创粉丝点击