DVWA-xss(Stored)

本文讨论了存储型XSS攻击原理,如何通过用户输入在服务器端产生持久性脚本,以及如何通过PHP代码实现输入数据的清理和防止标签利用。着重讲解了双重绕过和大小写混写技巧,以及使用`strip_tags`和`mysqli_real_escape_string`等函数进行防御。
摘要由CSDN通过智能技术生成

存储型XSS:将用户输入的数据存储在服务器端。用户访问了带有xss得页面代码后,产生安全问题,攻击脚本将被永久地存放在目标服务器的数据库或文件中,(经后端和数据库,永久性存在)

目录

Low

Medium

High

Low

这里是长度限制,直接去源代代码改一下

都输入<script>alert("xss")</script>

每当再次输入其他的数据的时候,那么都会执行这行代码

Medium

对输入的数据进行替换

方法:

  1. 双重绕过:<sc<script>ript>alert(12);</scr<script>ript>
  2. 大小混写:<sCript>alert(xss);</script>

High

<?php

if( 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 = preg_replace( '/<(.*)s(.*)c(.*)r(.*)i(.*)p(.*)t/i', '', $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();
}

?>

因为这个过滤了<script>标签,可以使用其他标签攻击

<img src=1 οnerrοr=alert('xss')>

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值