aspx代码审计-1
今天和大家分享一下aspx网站的代码审计,漏洞类型就是SQL注入和cookie欺骗。
今天看的cms名字叫做:XX星员工请假系统

我们首先看一下网站的目录结构:

其中,很明显可以看到bin目录下面都是dll文件,也就是aspx网站的源码;install目录就是安装目录;admin目录就是后台目录…etc。
我们今天的目标是纯白盒审计,一切只看代码。下面就是正题咯
先看login.aspx吧,毕竟登录框,说不定就有注入呢?

其中inherits的值就是这个文件的相关代码的保存位置,说的可能有点复杂,如下图,我使用了IlSPY工具对appform.dll文件进行了反编译,界面的右边就是当前book.login的相关代码。

我们看到,有一个公共函数:LoginForm()

里面调用了UsersHelper模块的Login函数我们直接双击Login,应用程序自动搜索这个Login函数,接着跟踪:
发现对username和password进行了参数绑定,并不能导致SQL注入。
但因为本文并不是一个很全面的对某个系统进行代码审计,所以我们随机找了一个函数,例如此处:

其中的BindUsers函数,很明显是直接拼接在where条件查询语句后,所以便导致了注入。

接着是另一处有缺陷的地方:

通过引用得知,此处应该是admin目录下的具备管理员权限才可以使用的功能,那么通过代码,我们可以看到:

直接拼接引发注入,如下图便是我在官方的demo复现的截图:

Post的参数如下:
【
我们试着将cookie清空,重新访问此时发现,页面会跳转到deny.aspx上

这是为什么呢?原来代码里写的很清楚了,这是admin类,需要遵循如下规则:

当admin类下的所有功能模块在页面引导时,需要使用IsInRole()函数查询是否为administrators,那么跟踪发现。

这个函数好像没毛病啊,但是他的role参数时如何获取的呢?如下图所示,原来是从cookie中读取这个值。

那么意思我们只需要再cookie如此构造便可以绕过这里的验证,所以POC在哪里呢?

aspx代码审计-1的更多相关文章
- aspx代码审计-2
今天和大家分享一下aspx网站的代码审计,漏洞类型为:未授权访问和任意文件下载. 本文作者:i春秋签约作家——非主流 今天看的源码文件就不共享给大家了,本文只作学习只用. 还是先看我们的文件夹目录和d ...
- asp代码审计
今天给大家带来的是asp程序的代码审计,asp和aspx代码审计来说,有很多相同的地方. 正好今天要交任务,最近的目标站的子域名使用了这个cms,但是版本不一定是这个,好累. 本文作者:i春秋签约作家 ...
- PHPCMSV9版本代码审计学习
学习代码审计,自己简单记录一下.如有错误望师傅斧正. PHPCMS预备知识 PHPCMS是采用MVC设计模式开发,基于模块和操作的方式进行访问,采用单一入口模式进行项目部署和访问,无论访问任何一个模块 ...
- ajax请求和aspx返回数据
ajax请求: $(function () { $.ajax({ url: "index.aspx?method=send", ...
- Atitit.java c#.net php项目中的view复用(jsp,aspx,php的复用)
Atitit.java c#.net php项目中的view复用(jsp,aspx,php的复用) 1.1. Keyword1 1.2. 前言1 2. Java项目使用.Net的aspx页面view1 ...
- 多页的TIFF图片在aspx页面分页显示
一.逻辑实现:将数据库中的二进制TIFF图片读出并分页显示在页面上. 1.显示界面 public FrameDimension MyGuid; ; ; public static MemoryStre ...
- XP安装IIS来加载aspx页面(Web调用SAP数据)
1,安装IIS 在XP中安装IIS方法很简单,安装时需要提供安装光盘来加载I386文件,可以使用虚拟光驱或光盘.在此做个简单说明(控制面板-添加/删除 Windows组件-勾选Internet信息服务 ...
- 仅用aspx文件实现Ajax调用后台cs程序。(实例)
仅用aspx文件实现Ajax调用后台cs无刷新程序.(实例) 两个文件:aaa.aspx 和aaa.aspx.cs 一.aaa.aspx <script type="text/java ...
- http://www.microsoft.com/en-pk/download/details.aspx?id=40762
http://www.microsoft.com/en-pk/download/details.aspx?id=40762
随机推荐
- Android中asset文件夹与raw文件夹的区别深入解析(转)
*res/raw和assets的相同点:1.两者目录下的文件在打包后会原封不动的保存在apk包中,不会被编译成二进制.*res/raw和assets的不同点:1.res/raw中的文件会被映射到R.j ...
- Zend Studio使用综述
1.如何将zend studio 9的默认GBK编码设置为其它编码,例如UTF-8? 选 择window菜单->Preferences->General->Workspace,在界 ...
- jquery中的属性和样式设置
添加属性 $target.attr({"title":"one piece","name":"solgan"}); 为目 ...
- Golang之文件读写
读写文件,不添加文件路径,默认写入到GOPATH路径下 终端读写: 源码 func Sscanf func Sscanf(str string, format string, a ...interfa ...
- WSTMart商城系统数据字典
欢迎来到WSTMart官网 开源多用户商城 QQ交流群: 返回首页|返回首页| 开发手册 | 数据库字典 | 授权查询 | 授权用户登录 | 官方微信扫一扫 x QQ客服 服务热线 020-852 ...
- QTcpSocket-Qt使用Tcp通讯实现服务端和客户端
版权声明:若无来源注明,Techie亮博客文章均为原创. 转载请以链接形式标明本文标题和地址: 本文标题:QTcpSocket-Qt使用Tcp通讯实现服务端和客户端 本文地址:https:// ...
- ubuntu库文件路径pkgconfig
settings--->compiler and bug settings -->link settings 在左边添加libpthread.a ,右边添加 -lpthread即可. u ...
- Laravel 在哪些地方使用了 trait ?
laravel 框架大量使用了traits. 简单举几个例子: 在Eloquent中使用了trait .然后在model初始化的时候,有个boot方法,会自动判断当前的类用了哪些trait.然后得到一 ...
- Apache ab.exe压测工具使用
Apache的ab命令模拟多线程并发请求,测试服务器负载压力,也可以测试nginx.lighthttp.IIS等其它Web服务器的压力. 1,打开cmd,找到安装apache的目录,cd 目录进去, ...
- JScript 对象 <|> JSON
<script type="text/javascript"> function test(){ var array = [{"id":1},{&q ...