【ASPX代码审计】SQL注入漏洞审计思路

文章目录

  • ASPX构成
  • ASPX程序分析
  • SQL注入漏洞挖掘

ASPX构成

这里我们可以先了解一下aspx网站的构成。一般asp.net是使用C#VB.NETJscript.net来开发,其中应重点查看的代码通常是.cs.dll文件,.cs类文件dllcs文件编译后的程序集.ashx是一般处理程序,主要用于写web handler,可以理解成不会显示的aspx页面,.aspx文件只是做显示,通常代码是一些html代码,第一行文件头会显示具体触发功能代码的位置,就可以通过这个位置进行漏洞跟踪跟踪的过程如下:

ASPX程序分析

首先看一下程序结构
【ASPX代码审计】SQL注入漏洞审计思路_第1张图片
通过目录翻阅和上述知识点所知,核心代码bin目录下的这些dll文件中
【ASPX代码审计】SQL注入漏洞审计思路_第2张图片
首先利用登录功能点来做个跟踪分析
【ASPX代码审计】SQL注入漏洞审计思路_第3张图片
直接打开login.aspx文件,看一下第一行

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Login.aspx.cs" Inherits="Book.Login" %>

可以看到这个Inherits="Book.Login"参数的值就是用来控制访问核心代码类

这个时候就可以通过dnspy工具对bin目录下的dll文件进行反编译,通过Inherits定位功能点位置
【ASPX代码审计】SQL注入漏洞审计思路_第4张图片
可以看到用户名或者密码错误等字段,可以确定这里就是判断登录是否成功的代码,也可以看到判断用户名密码等操作,这个时候大概对aspx有一些了解了,开始审计程序中的sql注入漏洞

SQL注入漏洞挖掘

搭建网站后,使用sqlsever监控一些sql语句
【ASPX代码审计】SQL注入漏洞审计思路_第5张图片
进行登陆尝试
【ASPX代码审计】SQL注入漏洞审计思路_第6张图片
可以看到我们监控到了这一条sql语句
【ASPX代码审计】SQL注入漏洞审计思路_第7张图片
再跟进一下这里看一下存在sql语句的地方
【ASPX代码审计】SQL注入漏洞审计思路_第8张图片
发现如下,使用了预编译方法来防止sql注入
【ASPX代码审计】SQL注入漏洞审计思路_第9张图片
这个点就可以放弃了,而且dnspy是不能全局搜索的,这个时候我们就可以导出一下代码文件,用一些别的工具进行全局代码搜索sql注入关键字

导出文件到visual studio进行查看
【ASPX代码审计】SQL注入漏洞审计思路_第10张图片
可以看到和我们在那里看到的是一样的

全局搜索select
【ASPX代码审计】SQL注入漏洞审计思路_第11张图片
可以看到这里搜索出了很多文件

这里快速的过一遍,最终发现这里是没有过滤的
【ASPX代码审计】SQL注入漏洞审计思路_第12张图片
接下来看一下这个文件的位置
【ASPX代码审计】SQL注入漏洞审计思路_第13张图片

通过上述Inherits="Book.Login"的位置可以知道,源代码中全局搜索Appform.AddLeaveData就可以找到测试位置
【ASPX代码审计】SQL注入漏洞审计思路_第14张图片
最终通过这个位置可以确定漏洞存在点
http://192.168.80.161/appform/appform/AddLeaveData.aspx
进行访问
【ASPX代码审计】SQL注入漏洞审计思路_第15张图片
sql语句监控一下随便输入字符
【ASPX代码审计】SQL注入漏洞审计思路_第16张图片
可以看到员工名、号还有年份被带入执行

测试sql注入,加’报错
【ASPX代码审计】SQL注入漏洞审计思路_第17张图片
使用延时注入poc进行验证,发现此处存在sql注入漏洞
【ASPX代码审计】SQL注入漏洞审计思路_第18张图片

你可能感兴趣的:(ASPX代码审计,渗透测试)