Checkmarx 反射型 XSS

Posted

技术标签:

【中文标题】Checkmarx 反射型 XSS【英文标题】:Checkmarx Reflected XSS 【发布时间】:2021-11-02 01:27:25 【问题描述】:

我有一个基于 Django 的 API。使用 CheckMarx 扫描我的应用程序后,如果显示我在这里反射 XSS volnurability:

user_input_data = json.loads(request.GET.get('user_input_data'))

我已经尝试过的:

    使用django.utils.html.escpae 使用django.utils.html.strip_tags 使用html.escape 使用 escapejson

每次我运行扫描时,它都会在这个位置找到存储的 XSS

【问题讨论】:

【参考方案1】:

您的尝试是正确且可以接受的,但 Checkmarx 对 Django 的支持有些有限,这就是它无法识别您使用的任何功能的原因。您需要就此与您的安全团队争论,并让他们认识到这是防止 XSS 的正确方法之一。

通过使用替换功能和替换“”字符来清理输入的基本方法。这不是一种稳健的方式,但这是 Checkmarx 认可的方式

def escape(s, quote=None):
    '''Replace special characters "&", "<" and ">" to HTML-safe sequences.
    If the optional flag quote is true, the quotation mark character (")
is also translated.'''
    s = s.replace("&", "&amp;") # Must be done first!
    s = s.replace("<", "&lt;")
    s = s.replace(">", "&gt;")
    if quote:
        s = s.replace('"', "&quot;")
    return s

来自此代码的信用 sn-p post

【讨论】:

以上是关于Checkmarx 反射型 XSS的主要内容,如果未能解决你的问题,请参考以下文章

信安小白,一篇博文讲明白存储型反射型XSS漏洞

存储型XSS与反射型XSS有啥区别

代码审计学习之反射型XSS

二详解 DVWA_Reflected反射型XSS

XSS

浅谈反射型XSS的利用