代码编织梦想

SQL注入

A、原理:

(1)将SQL语句插入或添加到应用(用户)的输入参数中,再将这些参数传递给后台的SQL服务器加以解析并执行。
(2)刚开始接触sqli,首先我们得明白常见的web架构是怎么样的,通俗点来说,也就是所有的浏览器通过表示层来访问一个网站,其具体的工作流程是什么样的?
流程:浏览器发起一个请求,并将请求交给服务器,服务器当中运行着Apache\Nginx等中间件来解析请求,当对请求中的网站进行解析的时候,需要用到解析脚本(ASP\PHP\JSP.NET),而存储层的东西是不能直接使用的,所以就出现了逻辑层,由逻辑层来从存储层当中取东西。
在这里插入图片描述 明白了整体的web架构,那么也就很容易地理解sqli的原理操作了,就是sqli所有的操作都是在表示层,通过构造恶意的sql语句,然后对存储层的数据服务器进行恶意的操作,然后这个恶意的操作是由逻辑层来干的。

B、利用方式:

(1)Union注入
(2)盲注 //分为延时盲注和布尔盲注
(3)报错注入
(4)堆叠查询
(5)宽字节注入
(6)HTTP参数污染注入

C、常见的mysql函数

函数名称
user()用户名
system_user()系统用户名
current_user()当前用户名
database()当前数据库名字
@@datadir数据库路径
@@version_compile_os操作系统信息
length()字符串长度
substring() \ substr()截取字符
mid(m,n)需要截取的字符串,从第几位开始截取
left()需要截取的字符串,取几位
concat()无分割拼接字符串,意思就是拼接时中间不出现空格
concat_ws()含分割拼接字符串
group_concat()连接一组字符串(结果放在同一行)
ord() \ ascii()由字符推出ascii值,例如ord(‘a’)
char()由ascii码反推对应的字符
hex()十六进制形式
md5()针对字符串进行md5加密
floor()向下取整
rang()生成一个0~1之间的浮点数
hex()将字符转换成十六进制值
unhex()由十六进制值反推出字符

D、SQL注入成功条件

  1. 读文件操作:
    (1)知道文件的绝对路径
    (2)能使用union查询
    (3)web目录需要拥有写权限
  2. 写文件操作:
    (1)文件名必须绝对路径
    (2)对文件具有写权限
    (3)对单引号 ’ 未过滤

E、修复方式:

  • SQL语句预编译
  • 针对SQL输入内容进行限制、过滤 //目前使用WAF对这一块进行处理
  • 针对提交的关键数据进行转义 ,比如\select
  • 关闭错误信息输出 ,因为有些错误返回信息,会返回物理路径、数据库版本信息等
  • 数据库权限严格控制 ,不同级别的用户,只能进行相应级别权限的操作
  • 敏感信息严格加密处理

XSS

A、介绍:

跨站脚本(Cross-site Scripting,因与CSS较相像,故简称为XSS或跨站脚本或跨站脚本攻击)是一种针对网站应用程序的安全漏洞攻击技术,是代码注入的一种。它允许恶意攻击者将代码注入网页,其他用户在浏览网页时就会受到影响。恶意用户利用XSS代码攻击成功后,可能得到很高的权限(如执行一些操作)、私密网页内容、会话和cookie等各种内容。

B、原理

  1. 反射型XSS
    反射型XSS又称为非持久型XSS,该类型的攻击方式特点是一次性的。
    攻击链:攻击者通过电子邮件、广告投送等方式将包含XSS代码的恶意链接发送到目标用户。当目标用户点击访问该链接时,服务器接收该目标用户的请求并进行处理,然后服务器把带有XSS代码的数据发送到目标用户的浏览器,浏览器接收并解析这段带有XSS代码的恶意脚本后,就会触发XSS漏洞,返回攻击者想要的敏感数据。
  2. 存储型XSS
    存储型XSS又称为持久型XSS,攻击脚本只要未被发现,就会永久地保存在目标服务器的数据库或者文件当中,具有非常高的隐蔽性。
    攻击链:这种类型的攻击多常见于论坛、博客和留言板,只要是能够输入信息的地方都存在风险,攻击者在发帖子或者留言的过程中,将恶意脚本连同正常信息一起写到帖子的内容当中,随着帖子被服务器存储下来,其中的恶意脚本也永远地存放在服务器的后端存储器中。当其他用户浏览这个被注入了恶意脚本的帖子时,恶意脚本会在他们的浏览器中得到执行。
    例如,攻击者在留言版中拼接以下代码
i like this book<script>alert(/hello_hacker/)</script>
  • 当其他用户访问留言板时,就会在页面中弹出一个弹窗。由此而知,存储型XSS的攻击方式能够将恶意代码永久地嵌入到一个页面当中,所有成功访问这个页面的用户都将成为受害者
  • 相对来说,如果我们能够谨慎对待不明链接,那么反射型XSS攻击将不会有多大的效果,但相反,存储型XSS所形成的危害相对较大,它会注入在一些我们比较信任的页面,无论我们防范意识多强,只要一成功加载,就会遭受攻击。
  1. DOM型XSS
    DOM全称为Document Object Model,使用DOM可以使程序和脚本能够动态访问及更新文档结构、内容及样式。
    攻击链:用户请求一个经过专门设计的url,它由攻击者提交,而且其中包含XSS代码。服务器在响应中不会以任何形式包含攻击者的脚本。只有当用户的浏览器处理这个响应时,DOM对象就会处理XSS代码,导致存在XSS漏洞。
    DOM型XSS的漏洞原理,最核心的在于它是基于DOM文档对象模型的一种漏洞。
    在HTML中,其标签都是节点,而这些节点构成了DOM的整体结构——节点树。通过HTML DOM,树中的所有节点均可以通过JavaScript进行访问。其中所有的HTML元素(节点)均可被修改,也可以创建以及删除节点。
    HTML DOM树结构如下图所示:在这里插入图片描述
  • 在网站页面中有许多的元素,当浏览器接收到页面时,浏览器就会为页面创建一个顶级的Document object文档对象,接着生成各个子文档对象,每个页面元素对应一个文档对象,每个文档对象包含属性、方法和事件。可以利用JS脚本对文档对象进行编辑,从而修改页面的元素。由此看来,客户端的脚本程序可以通过DOM动态修改页面内容,进而从客户端获取DOM中的数据并在本地执行。由于DOM是在客户端修改节点的,所以基于DOM型的XSS漏洞不需要与服务器端进行交互,它只发生在客户端处理数据的阶段,就此,DOM型XSS相对来说利用的很少,甚至几乎无用。
  • 总的来说,大部分的攻击最主要都是围绕着获取目标数据库中的内容而展开的,若没有与数据库产生更多交互的攻击方式,能够用到的机会就很少。

C、利用方式

  1. 反射型XSS攻击
    反射型的XSS攻击最大的特点,就是对搜索框、登录框进行弹窗,是一种非持久性的攻击,也就是攻击了一次就结束了。模拟反射型XSS攻击的话,我们可以利用DVWA平台进行演示操作。
    下面为针对URL使用的插入语句
xxx.xxx.xxx.xxx/dvwa/vulnerabilities/xss_d/?default=English<script>alert(/xss/)</script>

这里所使用到的HTML标签是< script >,一般常用于XSS的HTML标签为

标签名称主要用途
< script >定义客户端脚本
< img >定义HTML页面中的图像
< iframe >iframe 元素会创建包含另外一个文档的内联框架(即行内框架)

在这里插入图片描述能够造成页面弹窗的原因,是因为在浏览器渲染整个页面的时候,会执行这条<script>alert(/xss/)<script>语句,其中的JS函数alert()导致浏览器进行弹窗,并显示“xss”字样。

  1. 存储型XSS攻击
    存储型XSS攻击所实现的功能是:获取用户所输入的留言信息、标题及内容,然后将输入的信息插入到数据库当中,并将数据库的留言信息输出到页面上,就此利用DVWA页面来复现XSS stored漏洞。
    漏洞利用的关键插入语句:
<img src=1 onerror=alert(/想要返回的内容/)>

(1)抓取数据包进行修改
在这里插入图片描述
(2)将POST数据包中data部分的txtName参数内容test修改为<img src=1 oneerror=alert(/test_xss_stored/)>,其目的在于利用图片报错信息来嵌入一段XSS代码,达到持久化的作用。
在这里插入图片描述
(3)再次访问页面,发现存储型XSS生效了
在这里插入图片描述

D、防御手段

  • 针对输入、URL的敏感参数进行过滤
  • 针对输出内容进行编码
  • 白名单
  • 黑名单

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接: https://blog.csdn.net/qq_37698661/article/details/111033285

iis6.0版本的解析漏洞复现-爱代码爱编程

这里复现iis6.0服务器的文件解析漏洞采用某网站的靶场,来进行复现目录解析: 启动靶场,访问该地址,F12,查看他的头部信息,发现他是iis6.0版本的既然是iis6.0版本的服务器,我们可以考虑iis6.0的两个漏洞: 1、 目录解析 2、 文件解析 先上传一个文件上去,观察url的变化 发现页面是一个asp页面,在电脑上面创建一个asp的一句话木

中毒.Delta865qqz后缀的文件该如何解决?-爱代码爱编程

  什么是.Delta865qqz勒索病毒? 名称 .Delta865qqz勒索病毒 文件扩展名 .Globeimposter-.Delta865qqz 类型 勒索病毒 家庭 GlobeImposter 简短的介绍 勒索病毒会加密存储在系统中的所有数据,并要求您支付一定的赎金以恢复重要文件。 病征 勒索病毒通过AES和RSA加密

【好奇心驱动力】CVE-2020-16898远程代码执行漏洞-爱代码爱编程

0.前言 前两天看公众号推了一个CVE-2020-16898漏洞,到Github上找了个POC和EXP,重新装了2个Win10虚拟机,打算测试一下,目前的EXP实现起来能够使目标主机蓝屏,配合蓝屏重启可以有一些后续操作。具体资源已上传。 1.实验目的 攻击靶机使目标主机蓝屏重启,漏洞原文。 2.实验方法 漏洞针对部分Win10主机,但现在Win1

vulhub漏洞复现系列之struts2(s2-048、s2-052、S2-053、s2-057、s2-059)-爱代码爱编程

本来想把struts2剩下的靶场全部打完然后写博客分享给大家,但是vulhub搭建实在是太慢了!!!无奈只能先把复现好的这几个分享出来了。 (CVE-2017-9791)s2-048 一、漏洞简介 当实用了Struts2 Struts1 插件时,可能导致不受信任的输入传入到ActionMessage类种导致命令执行二、影响范围 2.3.x三、漏洞复现:

前端安全(3):跨站请求伪造 CSRF(Cross-site request forgery)-爱代码爱编程

一、什么是CSRF CSRF(Cross-site request forgery)跨站请求伪造:攻击者诱导受害者进入第三方网站,在第三方网站中,向被攻击网站发送跨站请求。利用受害者在被攻击网站已经获取的注册凭证,绕过后台的用户验证,达到冒充用户对被攻击的网站执行某项操作的目的。 一个典型的CSRF攻击有着如下的流程: 受害者登录a.com,并保留了

玩转容器安全三 - Harbor私有镜像仓库-爱代码爱编程

Harbor: https://github.com/goharbor/harbor # Operation System: CentOS 7 # Docker Version: 19.03.13 # Harbor Version: 1.10.6 # Docker-Compose Version: 1.27.4 Harbor的安装与使用 Harb