代码审计基础知识

这篇具有很好参考价值的文章主要介绍了代码审计基础知识。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、代码审计简介

二、源代码泄露

1.常见的备份文件

(1)文本备份文件

(2)整站源代码备份文件

2.Git泄露

(1)通过特征搜索

(2).git泄露

3.svn泄露

4.利用漏洞泄露

三、代码审计的方法与技巧

1.小型代码

2.大型代码

3.审计工具


一、代码审计简介

代码审计就是检查源代码汇总的安全缺陷,检查程序源代码是否存在安全隐患和代码不规范的地方。可以通过自动化检测或者人工审查的方式进行。

二、源代码泄露

源代码泄露是代码审计的内容之一。

1.常见的备份文件

备份文件是由于运维人员的疏忽,忘记删除而留在服务器中的文件,这个时候,攻击者就能通过穷举常见的备份文件名来得到关键代码,从而进行源代码审计。为了能够找到这些备份文件,我们可以使用敏感文件扫描工具来进行探测。常见的备份文件如下:

(1)文本备份文件

一般运维人员会在Linux系统下使用vim或者gedit等文本编辑器,当编辑器崩溃或者因为异常时会自动备份当前文件,有时候程序开发者在编写代码的时候,也可能会将实现某功能后的代码备份再继续后续开发工作。下面一index.php为例列出一些可能的备份文件

代码审计基础知识

(2)整站源代码备份文件

有些网站会把整站源代码打包,放在网站的根目录之下,这时候只要找到这个包,就能进行源代码审计,常见的整站备份文件名如下:

代码审计基础知识

 有时候还能利用其他可能会泄露目录结构或文件名的铭感文件来获取备份文件的位置,如:.DS_Store等。

2.Git泄露

Github是一款很好的软件,上面有各种开源工具,自己开发的项目等等,是一个获取源代码的途径。

(1)通过特征搜索

当某个网站存在明显特征字符串时,可以通过GitHub的搜索功能来搜索这个项目。

(2).git泄露

每个git项目的根目录下都存在一个.git文件夹,这个文件夹的作用就是存储项目的相关信息。

3.svn泄露

svn泄露与git泄露类似,同样是项目初始化时会生成一个“.svn”目录,所以也可以用工具来解决,这里推荐使用svn-extractor,内容与git差不多。

4.利用漏洞泄露

如果能发现任意文件包含漏洞或者任意文件存在下载漏洞,就有可能下载到源代码进行审计。

任意文件包含和下载的漏洞的表现形式包含但不限于一下几种:

http://www.csd.com/download.php?file=abc.pdf

http://www.csd.com/show_image.php?file=1.jpg

http://www.csd.com/read.aspx?file=./upload/1.txt

将file参数修改为../index.php这种形式,就可以利用漏洞下载源代码。

三、代码审计的方法与技巧

1.小型代码

小型代码的代码量一般都不算大,还是比较容易找到漏洞,通常可以利用下面几个方法来找到。

找到各个输入点。

找到针对输入的过滤并尝试绕过。

找到处理输入的函数并查看有无漏洞。

找到漏洞后进行最充分的利用。

2.大型代码

一般来说,大型代码主要是对CMS型的框架进行审计,主要难点还是在大量的代码中定位这些漏洞,一般由一下几个方法。

找到危险函数。

向上回溯寻找有无可利用输入点。

尝试绕过针对输入点的过滤。

寻找触发漏洞的方法

这里利用phpok之前存在的一个注入例子,首选寻找危险函数,可以找到一个通用的插入数据库的函数,代码如下:

代码审计基础知识

 然后,查找是否有调用次函数并且有输入点的地方,在framework/mode/weaith/wealth.php中发现wealth_autosave满足条件,其中存在$_SERVER['QUERY_STRING']可以让我们输入。$_SERVER['QUERY_STRING']是直接取出来的,没有经过过滤,代码如下:

代码审计基础知识

最后看看如何触发这个漏洞就可以了,发现在framework/api/register_control.php中存在调用,代码如下:

代码审计基础知识

 

3.审计工具

目前还没有比较完美的自动化代码审计工具,代码审计工具仍然需要人工处理,目前比较流行的代码审计工具是“RIPS”和“Seay远源码审计系统”。

除了上面这些工具,还可以借助安全狗,D盾,护卫神等webshell的工具来扫描代码。文章来源地址https://www.toymoban.com/news/detail-404663.html

到了这里,关于代码审计基础知识的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • PyTorch学习笔记(二):PyTorch简介与基础知识

      👨‍💻 作者简介: 大数据专业硕士在读,CSDN人工智能领域博客专家,阿里云专家博主,专注大数据与人工智能知识分享, 公众号: GoAI的学习小屋,免费分享书籍、简历、导图等资料,更有交流群分享AI和大数据,加群方式公众号回复“加群”或➡️点击链接。 🎉 专栏

    2023年04月09日
    浏览(47)
  • 51单片机的基础知识——单片机简介

    仅用于学习交流!!! 仅用于学习交流!!! 仅用于学习交流!!! 单片机,即单片微型计算器,简称为单片机。用专业术语来讲单片机就是在一块硅片上集成了微处理器、存储器以及各种输入/输出(I/O,I指的是input,O指的是output)口的芯片。通俗点讲,单片机是一块集

    2024年02月03日
    浏览(61)
  • 【STM32】基础知识 第一课 单片机简介

    单片机 (Single-Chip Microcomputer) 单品微型计算机, 是一种集成电路芯片. 电脑 vs 单片机: 电脑 单片机 CPU CPU 内存 SRAM 硬盘 Flash 主板 外设 SRAM 静态随机读取器 (Static Random-Access Memory): SRAM 是随机存储器的一种, 属于静态数据, 这类存储器要是维持电源, 里面存储的信息就可以恒常维持

    2024年02月11日
    浏览(99)
  • 【前端知识】React 基础巩固(三十一)——Redux的简介

    概念 纯函数(确定的输入一定产生确定的输出,函数在执行过程中不产生副作用): 在程序设计中,若一个函数符合以下条件,那么这个函数就被称为纯函数 此函数在相同的输入值时,需产生相同的输出 函数的输出和输入值以外的其他隐藏信息或状态无关,也和由I/O设备产

    2024年02月16日
    浏览(53)
  • 【VUE2】VUE2基础知识和原理--超详细--超简介--零基础(一)

    想让Vue工作,就必须创建一个Vue实例,且要传入一个配置对象 demo容器里的代码依然符合html规范,只不过混入了一些特殊的Vue语法 demo容器里的代码被称为【Vue模板】 Vue实例和容器是一一对应的 真实开发中只有一个Vue实例,并且会配合着组件一起使用 {{xxx}}是Vue的语法:插值

    2024年02月16日
    浏览(38)
  • C#,入门教程(28)——文件夹(目录)、文件读(Read)与写(Write)的基础知识

    上一篇:   C#,入门教程(27)——应用程序(Application)的基础知识 https://blog.csdn.net/beijinghorn/article/details/125094837 C#知识比你的预期简单的多,但也远远超乎你的想象! 与 文件 相关的知识,不算多。 作为初学者,先学习 文本文件 的读写,就足够应付好几年了。 文件 自然是

    2024年01月23日
    浏览(59)
  • HBase基础知识(一):HBase简介、HBase数据模型与基本架构

    HBase是一种分布式、可扩展、支持海量数据存储的NoSQL数据库。 逻辑上,HBase的数据模型同关系型数据库很类似,数据存储在一张表中,有行有列。但从HBase的底层物理存储结构(K-V)来看,HBase更像是一个 multi-dimensionalmap 。 1.2.1HBase逻辑结构 字典序:按位比较。 下图是一张表

    2024年02月03日
    浏览(40)
  • 爬虫进阶-反爬破解1(反爬技术简介、HTTP网络基础知识、搭建代理服务)

    目录 一、反爬技术简介 二、HTTP网络基础知识 三、搭建代理服务 (一)破解Web端反爬技术 1.常见的反爬策略方向:同一时间的请求数量、请求的身份信息、浏览器和爬虫的区别 2.浏览器和爬虫的不同:异步数据加载、前端的渲染技术、逆向分析JS函数代码、浏览器调度和调试

    2024年02月10日
    浏览(99)
  • 明德扬FPGA至简设计原理与应用 第一篇 FPGA基础知识 第一章 FPGA简介

    FPGA 的全称为 Field-Programmable Gate Array, 即现场可编程门阵列。FPGA 就是一个可以“改变”内部结构的芯片,而让这个芯片来实现怎样的功能,就需要通过编程即设计HDL,经过 EDA工具编译、综合、布局布线成后转换为可烧录的文件,最终加载到 FPGA 器件中去,改变 FPGA 内部的连

    2024年01月16日
    浏览(79)
  • 快进来,带你了解FPGA基础知识---lattice莱迪斯深力科MachXO2 FPGA系列简介

    FPGA基础知识---lattice莱迪斯深力科MachXO2 LCMXO2-4000HC-4TG144I FPGA简介 FPGA基础知识:FPGA是英文Field-Programmable Gate Array的缩写,即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,

    2024年02月03日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包