Xss代码审计基础

本文介绍了XSS和SQL注入的基础知识,强调在没有源代码时的黑盒渗透和有源代码时的代码审计的重要性。通过示例代码解释了如何在不同编程语言中寻找XSS和SQL注入漏洞,提醒开发者注意对用户输入的验证和清理。
摘要由CSDN通过智能技术生成

介绍

跨站点脚本(XSS)是当今Web应用程序中最普遍的漏洞之一。在没有源代码的情况下进行黑匣渗透时,我们通常会通过将有效负载插入到各处输入框中并等待弹框出现来证明漏洞存在当然还有盲插。如果我们能拿到源代码,则查找XSS漏洞可以更快,更轻松。

XSS基础

在搜索XSS漏洞时,该漏洞在所有编程语言中其实都差不多。如果某个应用程序将用户提供的输入放在浏览器中而不验证输入或清除该输入,则它们很可能会受到XSS攻击。

<code>
function(username)
    welcome_message = "<h1>Welcome to the site " + username + "</h1>"
    return welcome_message to browser
</code>

我们在上面的代码中所看到的,该应用程序正在使用人员用户名并将其返回给H1标头主体中的浏览器。那么我们可以轻松插入恶意javascript代码作为其用户名,从而导致应用程序执行它。

有多种技术可以防止此问题发生,例如使用内容安全策略(CSP)。在源代码中,防止XSS的最常见方法是先清理用户提供的输入,然后再将其返回给浏览器。大多数现代编程语言都带有一个库,可以为开发处理此逻辑。

<code>
function(username)
    username = sanitize_input_xss(username)
    welcome_message = "<h1>Welcome to the site " + username + "</h1>"
    return welcome_message to browser
</code>

如上面的代码所示,我们使用预定义的函数(sanitize_input_xss)在将用户名返回浏览器之前对其进行清理。这样可以防止XSS发生。

善于发现源代码漏洞的唯一方法是获得一些实践经验。我们看一下下面的代码。

https://github.com/Learn-by-doing/xss/blob/master/public/index.html
<html>
<head>
    <title>Cross-Site Scripting (XSS)</title>
</head>
<body>


    <!-- A simple form that when submitted will navigate back to the same page -->
    <form action="" method="GET">
        <!-- Adds `?q=VALUE` to the URL when the form is submitted -->
        <input type="text" name="q">
        <input type&#
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值