美文网首页
xss学习笔记2 存储型Stored Cross Site Sc

xss学习笔记2 存储型Stored Cross Site Sc

作者: 沙雕带你蒿羊毛 | 来源:发表于2018-03-17 20:31 被阅读0次

    low
    $message = stripslashes( $message ); $message = mysql_real_escape_string( $message );
    stripslashes() 函数删除由 [addslashes()]函数添加的反斜杠
    mysql_real_escape_string() 函数转义 SQL 语句中使用的字符串中的特殊字符,如 \n \r \ ' " 等
    在这里面并没有真正过滤跟<script></script> 有关的东西,
    所以直接输入<script>alert("xsss")</script>即可

    medium
    $message = strip_tags( addslashes( $message ) ); $message = mysql_real_escape_string( $message ); $message = htmlspecialchars( $message ); $name = str_replace( '<script>', '', $name ); $name = mysql_real_escape_string( $name );

    在message中
    addslashes() 函数返回在预定义字符之前添加反斜杠的字符串。
    strip_tags() 函数剥去字符串中的 HTML、XML 以及 PHP 的标签
    mysql_real_escape_string() 函数转义 SQL 语句中使用的字符串中的特殊字符,如 \n \r \ ' " 等
    htmlspecialchars() 函数把预定义的字符转换为 HTML 实体。
    这三个特别是htmlspecialchars() 转换为html实体造成不能注入,但是在name参数下依旧可以构造注入,name只替换了<script>和转译特殊字符,但是在输入语句的时候发现有字数限制,所以用burp抓包改包。
    可以用双写,大小写绕过<sc<script>ript>alert("xsss")</script> <Script>alert("xsss")</script>

    High
    $message = strip_tags( addslashes( $message ) ); $message = mysql_real_escape_string( $message ); $message = htmlspecialchars( $message ); $name = preg_replace( '/<(.*)s(.*)c(.*)r(.*)i(.*)p(.*)t/i', '', $name );name用正则过滤了<script> 以及大小写,但是没有过滤img等标签啊,抓包改包用<img src=1 onerror=alert("xss")>

    相关文章

      网友评论

          本文标题:xss学习笔记2 存储型Stored Cross Site Sc

          本文链接:https://www.haomeiwen.com/subject/aqhjgxtx.html