WEB漏洞 XSS分析&简单实践

一、介绍

简介

XSS全称是Cross Site Scripting即跨站脚本,为了不和层叠样式表(Cascading Style Sheets)的缩写CSS混合,所以改名为XSS;

攻击者会向web页面(input表单、URL、留言版等位置)插入恶意JavaScript代码,导致管理员/用户访问时触发,从而达到攻击者的目的。

成因(原理)

服务器对用户提交的数据过滤不严,导致浏览器把用户的输入当成了JS代码并直接返回给客户端执行,从而实现对客户端的攻击目的。

类型

1、反射型(非持久型)

这种攻击方式往往具有一次性,只在用户单击时触发

2、存储型(持久型)

注入型脚本永久存储在目标服务器上,当浏览器数据请求时,脚本从服务器上传回并执行。

3、DOM型

反射型 XSS 跟存储型 XSS 的区别是:存储型 XSS 的恶意代码存在数据库里,反射型 XSS 的恶意代码存在 URL 里。

危害

窃取Cookie(冒充身份)
后台增删改文章、修改网页代码
钓鱼攻击
蠕虫攻击
网站重定向
获取用户信息等

绕过

大小写 
js伪协议 
没有分号 
Flash 
Html5新标签
Fuzz进行测试 
双层标签绕过 

二、搭建efucms靶场

1.首先在efucms目录下更改数据库的配置文件(确保配置文件不要出现问题)

'DB_PWD'=>'xxxxx','DB_TYPE'=>'mysql','DB_HOST'=>'localhost','DB_USER'=>'root','DB_NAME'=>'efucms'

DB_PWD代表密码

DB_TYPE代表类型

DB_HOST代表主机名

DB_USER代表用户名

DB_NAME代表数据库名

1699152869_654703e5987045c4f5307.png!small?1699152870375

2.为了访问靶场的稳定,需要更改PHP的版本为5.5.9

3.访问浏览器ip地址加上靶场的名字(代表搭建成功),如下

1699152946_6547043216fc0b6818720.png!small?1699152947489

4.进入靶场后台登录(admin,123456)

1699152955_6547043be709009007894.png!small?1699152956531

能看到这样的页面代表成功

1699152963_65470443eb9063e58535d.png!small?1699152964667

三、XSS平台操作流程

1.注册一个关于XSS的网站账号(里面含有测试指令)

xss.yt

首先要配置

1699152973_6547044d45918d68a84ef.png!small?1699152973806

点击查看代码

1699152981_65470455aa6a510883650.png!small?1699152982490

2.点进入一个连接,然后在里面输入内容(以测试指令代替,其余内容随便填)

3.回到靶场环境

1699152991_6547045f45c7cfa6958cd.png!small?1699152991815

4.然后再后台就可以看到评论的内容

1699153000_654704681467fb5014b32.png!small?1699153000672

5.可以看到cookie等重要信息

1699153009_65470471c177e0859afcd.png!small?1699153010694

复制cookie

利用hackbar将cookie信息写入进去,然后发送

1699153018_6547047a7a14a64c6da27.png!small?1699153019249

进入对应的后台程序

1699153026_6547048286374be64f22e.png!small?1699153027175

四、扩展phpMyadmin数据库的管理工具

浏览器访问ip+phpMyadmin

1699153033_65470489ee961989a9fe6.png!small?1699153034927

然后源文件目录自动生成的文件夹,浏览器登陆即可

1699153041_65470491f04e59a218a94.png!small?1699153042828

登录数据库后台(root,123456)

1699153051_6547049befa150c4816f7.png!small?1699153052779

例如:存储密码的数据库

1699153064_654704a8241dc47425904.png!small?1699153064876

可以看到再靶场环境当中输入的评论内容

1699153072_654704b0a328b066bad09.png!small?1699153073520

五、DVWA靶场

XSS型(反射型):

low

尝试:

<script>alert(111)</script>

1699153083_654704bbde136434224d0.png!small?1699153084467

爆出cookie

<script>alert(document.cookie)</script>

1699153091_654704c3eacb8b0f67310.png!small?1699153092639

法二:

按下F12,在控制台输入如下代码,同样会爆出cookie

javascript:alert(document.cookie) 

1699153100_654704cc9231a0aa982f1.png!small?1699153101428

接着来到登录页面尝试,可以登录成功

1699153109_654704d573f9aafdf551e.png!small?1699153110108

Medium

<?php
header ("X-XSS-Protection: 0");

// Is there any input?
if( array_key_exists( "name", $_GET ) && $_GET[ 'name' ] != NULL ) {
	// Get input
	$name = str_replace( '<script>', ' ', $_GET[ 'name' ] ); //会检查 name 参数中是否有 “< script >”标签,如果有则替换为空,str_replace函数,它是区分大小写的,可以使用大小写混合绕过。
	// Feedback for end user
	$html .= "<pre>Hello ${name}</pre>";
}
?>
<sCript>alert(document.cookie)</sCript>

1699153124_654704e46dc51d5a01829.png!small?1699153125138

<SCript>alert(document.cookie)</SCript>

1699153132_654704ec64e352458e254.png!small?1699153133142

High

当看到:“hello > ”这是被后端代码过滤

1699153142_654704f68e79028cfdd08.png!small?1699153143259

查看源码

1699153150_654704fe974b2c97bcbcf.png!small?1699153151195

红框中的字符解释:PHP preg_replace() 函数是替换的函数的意思:https://www.cnblogs.com/crxis/p/7714636.html

上面的 .* 是表示任何字符,也就是说不管<>包住的是什么都去掉,其中. 表示任意字符, * 表示任意个数

红框中这句话大致意思就是:只要出现script类似的字符,都会被替换为空,也就是被过滤,那么本题就不可以在运用

<img src="xxx.jpg" onerror=alert(document.cookie)> 
#如果加载图像时发生错误,则会触发一个函数。该函数会显示带文本的警告框。
在本例中,我们引用了一个不存在的图像,因此发生了 onerror 事件。

案例:

1699153161_654705098cb4b7ffe19aa.png!small?1699153162198

XSS型(存储型)

low

<script>alert(111)</script>

1699153173_6547051586b5acba401ea.png!small?1699153174305

1699153180_6547051c9a100909d3584.png!small?1699153181556

继续操作

1699153189_65470525e390adb7cd903.png!small?1699153191844

登陆执行

1699153200_654705301fea2ce80fcf5.png!small?1699153200827

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

黑战士安全

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值