• 【web-代码审计】(14.2)常见漏洞签名


    目录

    常见漏洞签名

    1.1、简介:

    1.2、跨站点脚本

    简述:

    1.3、SQL注入

    简述:

    1.4、路径遍历

    简述:

    1.5、任意重定向

    简述:

    1.6、OS命令注入

    简述:

    1.7、后门密码

    简述:

    1.8、本地代码漏洞

    简述:

    1.9、源代码注释

    简述:


    常见漏洞签名

    1.1、简介:

    许多类型的Web应用程序漏洞在代码中都有相对一致的签名,通常这表示通过迅速扫描和搜索代码就可以确定一个应用程序中存在的大部分漏洞。但在大多数情况下、签名是不区分语言的,最重要的是程序员采用的编程技巧、而不是实际使用的API和语法

    1.2、跨站点脚本

    简述:

    1、在非常明显的XSS漏洞中,用户收到的HTML代码的一部分明显是由用户可控制的数据构成的

    2、示例一:如果HREF链接的目标由从请求查询字符串中直接提取的字符串构成。对潜在恶意的内容进行HTML编码这种阻止跨站点脚本的常用方法,并不适用于生成的串联字符串,因为它已经包含有效的HTML标记,任何净化数据的尝试都会按应用程序指定的方式对HTML编码,从而中断应用程序。因此这个HREF链接肯定易于受到攻击,除非在其他地方头施了过滤, 阻止了在查询字符串中包含XSS的请求。这种使用过滤来阻止XSS攻击的方法往往存在缺陷, 如果采用, 应对它进行仔细审查, 以确定解决办法

    3、示例二:用户可控制的数据用来指定随后用于创建发送给用户响应的一个变量值。类成员变量m_pageTitle被设定为从请求查询字符串中提取的一个值,随后将用于创建被返回的HTML页面的元素</p> <p>4、应该仔细审查应用程序对m_pegeTitle变量的处理过程. 以及它是如何被合并到被返回的页面中的,以确定数据是否为防止XSS攻击面进行了适当的编码</p> </blockquote> <p></p> <blockquote> <h3 id="1.3%E3%80%81SQL%E6%B3%A8%E5%85%A5"><a name="t4"></a><span style="background-color:#a2e043;">1.3、SQL注入</span></h3> <h4><a name="t5"></a><span style="background-color:#d4e9d5;">简述:</span></h4> <p>1、如果各种硬编码的字符串与用户可控制的数据串联成一个SQL查询,然后在数据库内执行这个查询,那么最可能出现<a href="https://so.csdn.net/so/search?q=SQL%E6%B3%A8%E5%85%A5&spm=1001.2101.3001.7020" target="_blank" class="hl hl-1" data-report-view="{"spm":"1001.2101.3001.7020","dest":"https://so.csdn.net/so/search?q=SQL%E6%B3%A8%E5%85%A5&spm=1001.2101.3001.7020","extra":"{\"searchword\":\"SQL注入\"}"}" data-report-click="{"spm":"1001.2101.3001.7020","dest":"https://so.csdn.net/so/search?q=SQL%E6%B3%A8%E5%85%A5&spm=1001.2101.3001.7020","extra":"{\"searchword\":\"SQL注入\"}"}" data-tit="SQL注入" data-pretit="sql注入">SQL注入</a>漏洞</p> <p></p> <p>2、在源代码中搜索常用于从用户提交的输入构建查询的硬编码子字符串,是在代码中迅速确定这种明显漏洞的简单方法,这些子字符串通常由SQL代码片断组成,并被源代码引用,因此寻找由引号、SQL关键字和空格组成的适当模式可能会有用</p> <p></p> <p>3、在每一种情况中,应该核实将这些字符串与用户可控制的数据串联是否会引入SQL注入漏洞。因为SQL关键字区分大小写,所以在代码中搜索这些关键字时也应区分大小写。为减少错误警报,这些搜索项后可能附加了空格</p> </blockquote> <p></p> <p></p> <blockquote> <h3 id="1.4%E3%80%81%E8%B7%AF%E5%BE%84%E9%81%8D%E5%8E%86"><a name="t6"></a><span style="background-color:#a2e043;">1.4、路径遍历</span></h3> <h4><a name="t7"></a><span style="background-color:#d4e9d5;">简述:</span></h4> <p>1、用户可控制的输入未经任何输入确认,或核实已经选择一个适当的文件,就被传送给一个文件系统API,这是路径遍历漏洞的常见签名,在最常见的情况下,用户数据附加在一个硬编码或系统指定的目录路径之后,让攻击者能够使用点-点-斜线建立目录树,访问其他目录中的文件</p> <p></p> <p>2、应对任何允许用户上传或下载文件的应用程序功能进行仔细审查,了解是如何根据用户提交的数据调用文件系统API的,并确定是否可以使用专门设计的输入访问其他位置的文件。通常通过在代码中搜索任何与文件名有关的查询字符串参数,以及在相关语言中搜寻所有文件API并检查提交它们的参数,就可以迅速确定相关的功能</p> </blockquote> <p></p> <blockquote> <h3 id="1.5%E3%80%81%E4%BB%BB%E6%84%8F%E9%87%8D%E5%AE%9A%E5%90%91"><a name="t8"></a><span style="background-color:#a2e043;">1.5、任意重定向</span></h3> <h4><a name="t9"></a><span style="background-color:#d4e9d5;">简述:</span></h4> <p>1、通过源代码中的签名常可轻易确定各种钓鱼攻击向量。如任意重定向,查询字符串中用户提交的数据被用于构建一个URL,用户即被重定向到这个URL</p> <p>2、通常检查客户端代码即可发现任意重定向漏洞,当然这并不需要了解应用程序的内部机制。如使用JavaScript 从URL查询字符串中提取一个参数, 并最终重定向到这个URL</p> <p>3、当意识到脚本可能会成为指向外部域的一个绝对URL的重定向攻击的目标,该脚本检查重定向URL是否包含一个双斜线, 如果包含就省略第一个单斜线将它转换成一个相对URL。但当它最后一次调用函数时,该函数将对任何URL编码的字符进行解码,确认后再执行规范化常常会导致漏洞产生。攻击者可以使用构造的查询字符串造成一个指向任意绝对URL的重定向</p> <p></p> </blockquote> <blockquote> <h3 id="1.6%E3%80%81OS%E5%91%BD%E4%BB%A4%E6%B3%A8%E5%85%A5"><a name="t10"></a><span style="background-color:#a2e043;">1.6、OS命令注入</span></h3> <h4><a name="t11"></a><span style="background-color:#d4e9d5;">简述:</span></h4> <p>连接到外部系统的代码中常常包含指示代码注入漏洞的签名。如message与address参数从用户可控制的表单数据中提取出来, 然后直接传送给 API</p> </blockquote> <p></p> <p></p> <blockquote> <h3 id="1.7%E3%80%81%E5%90%8E%E9%97%A8%E5%AF%86%E7%A0%81"><a name="t12"></a><span style="background-color:#a2e043;">1.7、后门密码</span></h3> <h4><a name="t13"></a><span style="background-color:#d4e9d5;">简述:</span></h4> <p>除非被程序员有意隐藏, 否则当审查证书确认逻辑时,用于测试或管理目的的后门密码非常容易确定,使用这种方法还可以轻易确定未引用的函数与隐藏调试参数</p> </blockquote> <p></p> <p></p> <blockquote> <h3 id="1.8%E3%80%81%E6%9C%AC%E5%9C%B0%E4%BB%A3%E7%A0%81%E6%BC%8F%E6%B4%9E"><a name="t14"></a><span style="background-color:#a2e043;">1.8、本地代码漏洞</span></h3> <h4><a name="t15"></a><span style="background-color:#d4e9d5;">简述:</span></h4> <p>应对应用程序使用的任何本地代码进行仔细审查,确定可被攻击者用于执行任意代码的常见漏洞</p> <p><a class="has-card" href="https://blog.csdn.net/qq_53079406/article/details/126631060?spm=1001.2014.3001.5501" title="【web-攻击本地编译性应用程序】(11.1)缓冲区溢出漏洞"><span class="link-card-box"><span class="link-title">【web-攻击本地编译性应用程序】(11.1)缓冲区溢出漏洞</span><span class="link-link"><img class="link-link-icon" src="https://1000bd.com/contentImg/2022/06/15/100806196.png" alt="icon-default.png?t=M7J4">https://blog.csdn.net/qq_53079406/article/details/126631060?spm=1001.2014.3001.5501</span></span></a><a class="has-card" href="https://blog.csdn.net/qq_53079406/article/details/126641483?spm=1001.2014.3001.5501" title="【web-攻击本地编译性应用程序】(11.2)整数漏洞"><span class="link-card-box"><span class="link-title">【web-攻击本地编译性应用程序】(11.2)整数漏洞</span><span class="link-link"><img class="link-link-icon" src="https://1000bd.com/contentImg/2022/06/15/100806196.png" alt="icon-default.png?t=M7J4">https://blog.csdn.net/qq_53079406/article/details/126641483?spm=1001.2014.3001.5501</span></span></a><a class="has-card" href="https://blog.csdn.net/qq_53079406/article/details/126642107?spm=1001.2014.3001.5501" title="【web-攻击本地编译性应用程序】(11.3)格式化字符串漏洞"><span class="link-card-box"><span class="link-title">【web-攻击本地编译性应用程序】(11.3)格式化字符串漏洞</span><span class="link-link"><img class="link-link-icon" src="https://1000bd.com/contentImg/2022/06/15/100806196.png" alt="icon-default.png?t=M7J4">https://blog.csdn.net/qq_53079406/article/details/126642107?spm=1001.2014.3001.5501</span></span></a></p> </blockquote> <p></p> <blockquote> <h3 id="1.9%E3%80%81%E6%BA%90%E4%BB%A3%E7%A0%81%E6%B3%A8%E9%87%8A"><a name="t16"></a><span style="background-color:#a2e043;">1.9、源代码注释</span></h3> <h4><a name="t17"></a><span style="background-color:#d4e9d5;">简述:</span></h4> <p>1、许多软件漏洞可以从源代码注释中发现,如果开发者意识到某项操作存在危险,并在代码中标注提示,准备以后修复这个问题,但却从未看到修复,这时就会出现以上情况。如果测试时确定应用程序存在某种反常行为,并将其记录在注释中,但同样从未对这种行为进行全面调查,这时也会出现上面的情况</p> <p></p> <p>2、在代码中搜索说明常见问题的注释,往往可以迅速发现许多明显的漏洞</p> <p>有用的搜索项:bug、problem、bad、hope、todo、fix、overflow、crash、inject、xss、trust</p> </blockquote> <p></p> </div> </div> </li> <li class="list-group-item ul-li"> <b>相关阅读:</b><br> <nobr> <a href="/Article/Index/775275">Channel 是什么?</a> <br /> <a href="/Article/Index/931982">《系统架构设计师教程》 第一章:绪论</a> <br /> <a href="/Article/Index/1150927">MySQL数据库:2、MySQL的下载与安装、基本使用、系统服务制作</a> <br /> <a href="/Article/Index/1137744">基于STM32的温控风扇</a> <br /> <a href="/Article/Index/1559972">uni-app canvas 签名</a> <br /> <a href="/Article/Index/1129891">R语言dplyr包select函数筛选dataframe数据中以指定字符串结尾(end with)的数据列(变量)</a> <br /> <a href="/Article/Index/1086642">15.OpenFeign 总结(springcloud)</a> <br /> <a href="/Article/Index/744401">神经网络迭代次数的一个近似关系</a> <br /> <a href="/Article/Index/764045">深入理解计算机网络-10传输层3</a> <br /> <a href="/Article/Index/901922">网络通信day01</a> <br /> </nobr> </li> <li class="list-group-item from-a mb-2"> 原文地址:https://blog.csdn.net/qq_53079406/article/details/126665521 </li> </ul> </div> <div class="col-lg-4 col-sm-12"> <ul class="list-group" style="word-break:break-all;"> <li class="list-group-item ul-li-bg" aria-current="true"> 最新文章 </li> <li class="list-group-item ul-li"> <nobr> <a href="/Article/Index/1484446">攻防演习之三天拿下官网站群</a> <br /> <a href="/Article/Index/1515268">数据安全治理学习——前期安全规划和安全管理体系建设</a> <br /> <a href="/Article/Index/1759065">企业安全 | 企业内一次钓鱼演练准备过程</a> <br /> <a href="/Article/Index/1485036">内网渗透测试 | Kerberos协议及其部分攻击手法</a> <br /> <a href="/Article/Index/1877332">0day的产生 | 不懂代码的"代码审计"</a> <br /> <a href="/Article/Index/1887576">安装scrcpy-client模块av模块异常,环境问题解决方案</a> <br /> <a href="/Article/Index/1887578">leetcode hot100【LeetCode 279. 完全平方数】java实现</a> <br /> <a href="/Article/Index/1887512">OpenWrt下安装Mosquitto</a> <br /> <a href="/Article/Index/1887520">AnatoMask论文汇总</a> <br /> <a href="/Article/Index/1887496">【AI日记】24.11.01 LangChain、openai api和github copilot</a> <br /> </nobr> </li> </ul> <ul class="list-group pt-2" style="word-break:break-all;"> <li class="list-group-item ul-li-bg" aria-current="true"> 热门文章 </li> <li class="list-group-item ul-li"> <nobr> <a href="/Article/Index/888177">十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!</a> <br /> <a href="/Article/Index/797680">奉劝各位学弟学妹们,该打造你的技术影响力了!</a> <br /> <a href="/Article/Index/888183">五年了,我在 CSDN 的两个一百万。</a> <br /> <a href="/Article/Index/888179">Java俄罗斯方块,老程序员花了一个周末,连接中学年代!</a> <br /> <a href="/Article/Index/797730">面试官都震惊,你这网络基础可以啊!</a> <br /> <a href="/Article/Index/797725">你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法</a> <br /> <a href="/Article/Index/797702">心情不好的时候,用 Python 画棵樱花树送给自己吧</a> <br /> <a href="/Article/Index/797709">通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!</a> <br /> <a href="/Article/Index/797716">13 万字 C 语言从入门到精通保姆级教程2021 年版</a> <br /> <a href="/Article/Index/888192">10行代码集2000张美女图,Python爬虫120例,再上征途</a> <br /> </nobr> </li> </ul> </div> </div> </div> <!-- 主体 --> <!--body结束--> <!--这里是footer模板--> <!--footer--> <nav class="navbar navbar-inverse navbar-fixed-bottom"> <div class="container"> <div class="row"> <div class="col-md-12"> <div class="text-muted center foot-height"> Copyright © 2022 侵权请联系<a href="mailto:2656653265@qq.com">2656653265@qq.com</a>    <a href="https://beian.miit.gov.cn/" target="_blank">京ICP备2022015340号-1</a> </div> <div style="width:300px;margin:0 auto; padding:0px 5px;"> <a href="/regex.html">正则表达式工具</a> <a href="/cron.html">cron表达式工具</a> <a href="/pwdcreator.html">密码生成工具</a> </div> <div style="width:300px;margin:0 auto; padding:5px 0;"> <a target="_blank" href="http://www.beian.gov.cn/portal/registerSystemInfo?recordcode=11010502049817" style="display:inline-block;text-decoration:none;height:20px;line-height:20px;"> <img src="" style="float:left;" /><p style="float:left;height:20px;line-height:20px;margin: 0px 0px 0px 5px; color:#939393;">京公网安备 11010502049817号</p></a> </div> </div> </div> </div> </nav> <!--footer--> <!--footer模板结束--> <script src="/js/plugins/jquery/jquery.js"></script> <script src="/js/bootstrap.min.js"></script> <!--这里是scripts模板--> <!--scripts模板结束--> </body> </html>