大多数与技术相关的漏洞都是由注入非法字符串造成的。xss是js代码注入,js能够控制当前浏览器页面;Sql注入是注入的sql命令,sql是操作数据库的语言;命令注入,操作系统命令能够控制服务器;只是因为用户输入的非法字符串是用不安全的代码处理的,操作系统/编程语言/数据库/浏览器就能理解并执行,从而导致漏洞。
服务器通过内网输入的url链接是ssrf、文件读取、Xxe、xml注入、逻辑漏洞和命令注入代码注入
PHP/nodejs/JSP/aspx/ASP/python/golang/c/c++等编程语言的编写和拼接。
信息泄露,上传漏洞,上传可执行文件到可执行目录,或者被服务器执行。那么这些漏洞都是通过http协议传输的。测试漏洞存在的第一步是修改请求参数值,重放并判断响应包是否与正常请求的响应包不同,如正常和异常。这是一种典型的sql错误注入判断方法。
当然,判断是否存在漏洞的原因有很多,大致能够分为:响应内容、响应时间、Dnslog/Httplog判断、浏览器Dom渲染的Html、浏览器DevToolsConsole。根据实际情况,其实通用的、标准化的http引用方法完全能够按照上面列出的规则做一个漏洞测试工具来降低工作量。如下图所示,通过修改请求参数值,添加单引号和双引号来逐一重放,遍历每个参数,遍历每个参数。
对于异常参数,能够通过修改请求参数值和添加负载来检测命令注入、ssrf、代码注入、sql注入和信息泄漏等漏洞。并且如果响应是Content-Type=html,则浏览器重放请求用于检测domxss,并抓取dom呈现页面的url、域等相关信息。对于一些有点击和页面的表单,其实能够在打开浏览器挖洞的时候添加一个参数-远程-调试-端口=9222,然后远程调试能够做一些方便的工具,比如自动填表、自动点击页面等功能,辅助测试,降低很多不必要的重复工作。对于常规业务场景,从目标范围确定、资产收集到漏洞检测、标准化、流程、工具尽可能多,黑客肯定不应该整天手动修改http通信中的参数,在url上加单引号。
还没有评论,来说两句吧...