代码审计-SQL注入类+文件对比技术
2024-1-15 08:39:56 Author: 格格巫和蓝精灵(查看原文) 阅读量:37 收藏

代码审计必备知识点:

1代码审计开始前准备:

环境搭建使用,工具插件安装使用,掌握各种漏洞原理及利用,代码开发类知识点。

2、代码审计前信息收集:

审计目标的程序名,版本,当前环境(系统,中间件,脚本语言等信息),各种插件等。

3、代码审计挖掘漏洞根本:

可控变量及特定函数,不存在过滤或过滤不严谨可以绕过导致的安全漏洞。

4、代码审计展开计划:

审计项目漏洞原理->审计思路->完整源码->应用框架->验证并利用漏洞。

代码审计两种方法

1.根据关键字找到敏感函数

2.根据目标功能判断可能存在的漏洞

案例:审计- Bluecms 1.6源码系统存在sql注入漏洞-正则表达式

1.搭建好环境

2.将源码导入到phpstorm代码审计工具中

3.使用正则表达式 全局搜索(Ctrl+Shift+F) sql注入关键字

正则表达式:(update|select|insert|delete|).*?where.*=

4.根据正则表达式搜索到的信息成功找到一处sql查询语句,且语句中有变量可控

5.查看getone函数的声明,发现是用来执行sql语句的。说明这段sql语句会被执行。

6.通关追踪(Ctrl+F)可控变量,发现对其没有进行过滤。说明存在sql注入漏洞

7.网站访问出现漏洞的文件路径并且传递参数,验证漏洞是否可用。测试后发现无回显

8.getone函数声明处将sql语句输出,看看$ad_id变量是否和代码中表现的一样可控

访问地址,传递参数为1。发现$ad_id变量成功接收了传递的参数值变为了1,变量可控

9.确认了变量确实可控,因为无回显需要使用延时盲注或者布尔盲注,为了不浪费时间直接使用sqlmap进行检测

输入:python sqlmap.py -u 注入点地址 -p 注入点

成功检测出目标数据库信息——漏洞存在!!!

输入:python sqlmap.py -u 注入点地址 -p 注入点 --dbs

成功检测出目标数据库名:

案例:文件对比技术-确认漏洞产生位置

cnvd等漏洞信息共享平台经常会发布一些某某cms爆出了某某漏洞,但是就是不公开漏洞具体信息。

如下:梦想cms后台存在sql注入漏洞。只爆出了产生漏洞的版本信息,并没有漏洞具体产生位置。

我们就可以使用存在漏洞的版本和更新的版本进行对比,因为更新的目的就是解决之前的问题。

查看cms官网更新情况,可以看到漏洞版本后又更新了一个版本,就可以下载漏洞版本和更新版本进行对比。

使用文件对比工具Beyond_Compare进行对比

工具下载:https://www.beyondcomparepro.com/download

打开工具,选择文件夹对比,拖入两个版本的cms。有颜色标识的就是更新后作出过更改的文件

打开有颜色表示的文件,可以看到更新后修改代码的情况。我们就可以根据代码的修改情况确认漏洞的产生位置。


文章来源: http://mp.weixin.qq.com/s?__biz=MzI5NDg0ODkwMQ==&mid=2247485745&idx=1&sn=f2043779d2ee5cf20d904cfb2c8c10e9&chksm=ed11b5f26f832c35f084db90de029c42db197bdd63fc88c1bd6ec5ed99bd16a0c849f7141043&scene=0&xtrack=1#rd
如有侵权请联系:admin#unsafe.sh