小网站源码,明光网站,安阳文创设计,济南自助建站软件代码审计必备知识点#xff1a; 1、代码审计开始前准备#xff1a; 环境搭建使用#xff0c;工具插件安装使用#xff0c;掌握各种漏洞原理及利用,代码开发类知识点。 2、代码审计前信息收集#xff1a; 审计目标的程序名#xff0c;版本#xff0c;当前环境(系统,中间件… 代码审计必备知识点 1、代码审计开始前准备 环境搭建使用工具插件安装使用掌握各种漏洞原理及利用,代码开发类知识点。 2、代码审计前信息收集 审计目标的程序名版本当前环境(系统,中间件,脚本语言等信息),各种插件等。 3、代码审计挖掘漏洞根本 可控变量及特定函数不存在过滤或过滤不严谨可以绕过导致的安全漏洞。 4、代码审计展开计划 审计项目漏洞原理-审计思路-完整源码-应用框架-验证并利用漏洞。 代码审计两种方法 功能点或关键字分析可能存在的漏洞 -抓包或搜索关键字找到代码出处及对应文件。 -追踪过滤或接收的数据函数寻找触发此函数或代码的地方进行触发测试。 -常规或部分MVC模型源码可以采用关键字的搜索挖掘思路。 -框架 MVC 墨香源码一般会采用功能点分析抓包追踪挖掘思路。 1.搜索关键字找敏感函数 2.根据目标功能点判断可能存在的漏洞 常见漏洞关键字 SQL注入 select insert update mysql_query mysqli等 文件上传 $_FILEStypefile上传move_uploaded_file()等 XSS跨站 print print_r echo sprintf die var_dump var_export等 文件包含 include include_once require require_once等 代码执行 eval assert preg_replace call_user_func call_user_func_array等 命令执行 system exec shell_exec passthru pcntl_exec popen proc_open等 变量覆盖 extract() parse_str() import_request_variables() $$ 等 反序列化 serialize() unserialize() __construct __destruct等 文件读取 fopen file_get_contents fread fgets fgetss file fpassthru parse_ini_file readfile等 文件删除 unlink() remove()等 文件下载 download() download_file()等 通用关键字 $_GET,$_POST,$_REQUEST,$_FILES,$_SERVER等 案例.NET项目审计-启明星采购系统-未授权访问漏洞 .NET项目审计介绍 asp.net可以用C# VB.NET Jscript.net等等来开发但是通常首选都是C#和VB.NET 审计asp.net的时候首先得弄明白他的结构他并不像php那么单纯。 一般来说在asp.net应用中需要进行观察的文件有.aspx.cs.ashxdll文件 1、.aspx是页面后的代码aspx负责显示服务器端的动作就是在.cs定义的。 2、.cs是类文件公共类神马的就是这个了。 3、.ashx是一般处理程序主要用于写web handler,可以理解成不会显示的aspx页面。 4、.dll就是cs文件编译之后的程序集。 ASP.NET中Inherits、CodeFile、CodeBehind 三个属性指向解析 Inherits msdn解释定义提供给页继承的代码隐藏类。 它可以是从 Page 类派生的任何类。 此特性与 CodeFile 特性一起使用后者包含指向代码隐藏类的源文件的路径。 Inherits 特性在使用 C# 作为页面语言时区分大小写而在使用 Visual Basic 作为页面语言时不区分大小写。 CodeFile msdn解释指定指向页引用的代码隐藏文件的路径。 此特性与 Inherits 特性一起使用用于将代码隐藏源文件与网页相关联。 此特性仅对编译的页有效。 Codebehind msdn解释指定包含与页关联的类的已编译文件的名称。 该特性不能在运行时使用。此特性用于 Web 应用程序项目。 开始审计 1.下载源码搭建好网站。登录进入后台密码admin/123456。点击盘点单——新建复制地址 2.退出管理员登录再次访问地址跳转到了登录验证。说明pd.aspx文件存在登录检测代码。 3.使用Visual Sdudio Code打开源码找到pd.aspx文件审计发现pd.aspx文件中没有检测代码但是代码中引用了一个purchase.Master文件验证文件应该在其中。 4.打开purchase.Master文件发现里面还是没有检测代码代码中Inherits指向了一个pur类而Inherits提供的都是隐藏类(dll文件) 5.选择bin目录下的purchase.dll(因为Inherits指向的就是Purchase)使用ILSpy工具打开purchase.dll进行反编译。 ILSpy下载https://github.com/icsharpcode/ILSpy/releases 反编译成功根据Inherits指向的路径找到pur类在里面成功找到检测代码。 6.检测代码表示只要 GetUserId 0 就会跳转到登录验证只要GetUserId的值0 即可绕过验证。所以需要知道 GetUserId 的值是怎么来的。点击代码中的GetUserId成功定位到其定义代码处。 根据代码得知GetUserId的值是由请求包中Cookies中的 userinfo和userid 传递的 7.我们就可以在没有登录管理员账户的情况下访问未授权地址——进行抓包然后修改Cookie值实现绕过检测。 访问http://192.168.92.249:44/purchase/pd.aspx 抓包修改值Cookieuserinfouserid1 放包成功绕过登录验证访问到了管理员后台页面