两年前的NET通用系统代码审计

admin 2024年4月25日01:16:05评论5 views字数 1211阅读4分2秒阅读模式

java审计都快一年多了,忽然发现公众号里没有net审计文章,又翻了翻电脑乱七八糟的文件,发现了23年1月,初次审计net系统的经历,当时也不会c#,直接反编译开干,最后发现多个方法都存在sql注入,成就感还是很高的。然后水了一个cnnvd。

本次审计是net form框架,先来看下文件类型

文件类型

ASPX.cs是页面后的代码,aspx负责显示,服务器端的动作就是在aspx.cs定义的。

.cs是类文件,公共类

.ashx是一般处理程序,主要用于写web handler,可以理解成不会显示的aspx页面,不过效率更高

dll就是cs文件编译之后的程序集,审计代码就找dll文件

aspx:

Aspx是浏览器直接访问的页面,对应web page。有iis处理成html内容输出

ascx:

Ascx 是定义的Web的用户控件(UserControl),要插入aspx页面呈现.头部文件<%Control…%>声明为控件文件,用户控件继承自System.Web.UI.UserControl

ashx:

Ashx是一个专门用于处理http请求(HttpRequest)和修改(HttpResponse)响应(handling HttpRequests and modifying HttpResponses)的文件类型,用来处理自定义的Http请求,可以在web.config定义运行时针对ashx的Http请求处理方式。

asmx:

asms 是web服务文件,asmx.cs里有相关代码,属于B/S形式,用SOAP协议方式Http访问,用XML返回,可以返回基础类型和public结果类型。

ASP.net使用asmx文件来对WebServices的支持。    

反编译代码

使用dnspy.exe

两年前的NET通用系统代码审计

              

加载需要反编译的dll文件

比如说 我们审计sql注入,那么就选择要审计dll文件,然后编辑 搜索程序集,输入select,就会查找对应的代码    

两年前的NET通用系统代码审计

              

这里发现了update语句,获取text变量,然后if判断是否包含, 在接收arg参数,最后使用拼接的方式执行sql,那么参数肯定是存在注入的

两年前的NET通用系统代码审计

              

知道了这个方法存在注入,那么怎么寻找路径,我们找到他的上一层    

两年前的NET通用系统代码审计

              

这是一个request请求,通过上下文来获取相关参数

然后request从Method,获取,赋值给name变量

然后获取请求方法,并通过反射调用类中的某个方法。

那么他的请求方式就是

Method=xxxxxxxx?couponNoList&newEndValidi

然后主程序集的名字Xxxxx

Xxxxxx.ashx?Method=xxxxxxx?couponNoList=1&newEndValidi=1

最后拼接路径就可以访问了,都过去两年了,竟然还没修~

两年前的NET通用系统代码审计

                  

两年前的NET通用系统代码审计

                  

原文始发于微信公众号(轩公子谈技术):两年前的NET通用系统代码审计

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年4月25日01:16:05
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   两年前的NET通用系统代码审计https://cn-sec.com/archives/2688010.html

发表评论

匿名网友 填写信息