asp代码审计

今天给大家带来的是asp程序的代码审计,asp和aspx代码审计来说,有很多相同的地方。 正好今天要交任务,最近的目标站的子域名使用了这个cms,但是版本不一定是这个,好累。

本文作者:i春秋签约作家——非主流

程序名称:自由策划

下载地址:http://down.chinaz.com/soft/32891.htm

目录截图:

先随便打开一个

比如so/index.asp

写的很简洁。。。

包含了两个配置文件,有什么用暂时先不说,先接着下看,通过get方式获取了两个参数,一个是key,一个是topsortid,其中topsortid使用isnumeric函数判断是否为数字,即我们常说的int型变量,多一个字符都不行。曾经小编居然想绕过这个函数去进行注入想想真是年轻。。。

不感叹了,我们继续吧。asp文件的代码审计其实比php那些简单很多,因为asp很少有框架再加之asp的函数就只有那么几个,所以通过白盒审计asp代码比较好入门,同时也可以学到一些挖洞的姿势。继续吧我仿佛看到了各位看官的拖鞋在朝我飞来(●ˇ?ˇ●)

在so/index.asp文件中,我们看到最后一句:

echo ob_get_contents(zych_templatedir&”So.asp”)

那么问题来了,这个zych_templatedir全局变量是从哪里定义的?当然你也可以说,这个变量名称一看就是模板目录啦(是是是,你是看官,你最大,你说是就是)既然这个页面中没有定义这个变量,那就说明这个变量是个全局变量,所以,我们需要在include来的文件中进行查找,先看conn.asp吧。

双目如炬的我们一眼就看到了这个变量是从哪里来的?(对,从数据库中取的),将数据库打开,进入config表,我们便可以看到了。

然后呢?我们的so/index.asp页面是将数据传递到模板目录下的so.asp中去显示和查询的,所以,接着看呗。

我们着重看一下,刚才那个页面没有过滤的key变量。

由此处可以看到key变量就是页面中的变量,这里的<%=key%>语法等同于request(“key”),意即为,无论get来的,post来的亦或是cookie传过来的,都接收。接着往下看:

画红线的地方就是这个页面唯一对key变量的检查,仅仅只是检查是否为空?我们直接在url里面提交万能的单引号试试吧。

http://xxxxx/so/index.asp?key=1’

Oho,报错啦,请不要在参数中包含非法字符尝试注入!

我擦泪,看看为什么,是谁在这装逼,拦我注入!一通找,发现是这个文件。

看看是怎么写的呢?我们有没有绕过的可能性呢?

算你厉害,我我我…我打不过你不成嘛。。(小编技术有限,暂时没点满正则表达式的天赋点)

接下来就只剩admin目录和user目录下的文件没看了。

先看user目录下的吧,也很简单。

先看login.asp,文件里面有写:

当login变量=ok时,便接收一个post来的参数username和任意取值的password,其中password在取值后,先经过md5()函数进行处理。

接着可以看到,只检查username和password的值是否为空,然后(这是重点!!!)通过一条sql语句进行select查询。大家都知道,有一种所谓的漏洞叫”万能密码”,其实在我眼里,万能密码就是账户登陆时,开发人员使用一条select语句同时将账号和密码带入数据库查询,碰巧username或password并没有经过特殊字符处理,所以,我们便可以通过提交’ or ‘1’=’1进行绕过,这就是万能密码漏洞。

还是举个栗子,第一张图是常规登陆,第二张图就是我闭合sql语句的截图:

好吧,这里的username参数也检查单引号,接着看user/index.asp,作为该cms的会员中心的主文件,我们可以试试看,有没有cookie欺骗或是未授权访问。

从上面两个图,可以看到,cookie欺骗?未授权访问?不存在的,好吗。但是,万事都应该有一个but,会员中心存在多个越权,hhhhh….笑死在电脑前….

我们随便挑一个来看看吧。就看修改密码处:

可以看到,修改密码的操作是访问user/index.asp?action=password,接着编辑器直接ctrl+f搜索password吧,相关的操作在文件的294行开始。

第300行,这里告诉我们,修改密码这个操作先验证用户是否登陆,接着发送post请求到user/index.asp?action=password&xiugai=pass,接着搜索xiugai,发现在文件的第621行开始。

从下面的源码图,我们可以看的很明白,这是一处越权漏洞。

果你不懂什么叫越权漏洞,我们不妨来回想一下这个cms的修改密码功能,做了哪些操作。

第一步:验证用户是否登陆;

第二步:验证post包中的id是否为int型;

第三步:验证两次输入的新密码是否为空且是否相等;

第四步,根据我们提供的id值去数据库进行update更新。

注:这里的id是request哦~~所以,完全是我们可控的变量。所以这就导致了越权漏洞,这一处是逻辑漏洞这个分类下的任意密码修改。

写在最后,下次给大家带来amdin目录下的代码审计。不知道为什么我写的文章都是2k+~3k+的浏览量,但是回复只有一点点。如果看官你有好的建议,可以提出来让我学习下啊~~

时间: 2024-10-13 16:31:08

asp代码审计的相关文章

ASP代码审计 -4.命令执行漏洞总结

命令执行漏洞: 保存为cmd.asp,提交链接: http://localhost/cmd.asp?ip=127.0.0.1 即可执行命令 <%ip=request("ip") response.write server.createobject("wscript.shell").exec("cmd.exe /c ping "&ip&"").stdout.readall %> 利用方式: http:

Web套路学习

Web套路解题步骤 首先要进行信息收集 题目类型 SQL注入 简单注入 宽字节注入(针对于jbk编码) 花式绕mysql 绕关键词检测拦截 MongoDB注入 http头注入 ip地址 二次注入 解题思路 简单注入,手工或sqlmap跑 判断注入点,是否是http头注入?是否在图片出注入?等等 利用报错信息注入 尝试各种绕过过滤的方法 查找是否是通用的某模板存在的注入漏洞 小方法: 插入数据截断,插入”admin      x”绕过或越权访问. 注意二次注入 有些username从session

大家好

http://www.yugaopian.com/people/259723 http://www.yugaopian.com/people/259744 http://www.yugaopian.com/people/259783 http://www.yugaopian.com/people/259824 http://www.yugaopian.com/people/259839 http://www.yugaopian.com/people/259933 http://www.yugao

阿哥吗卡怪每次哦阿哥看啦过啦嘎开吃麻辣个啊蓝光

http://www.xx186.com/web/web_kpic.asp?id=156613http://www.xx186.com/web/web_kpic.asp?id=156608http://www.xx186.com/web/web_kpic.asp?id=156605http://www.xx186.com/web/web_kpic.asp?id=156602http://www.xx186.com/web/web_kpic.asp?id=156600http://www.xx18

风格更家霍建华

http://www.9ku.com/fuyin/daogaoo.asp?dgid=119864http://www.9ku.com/fuyin/daogaoo.asp?dgid=119867http://www.9ku.com/fuyin/daogaoo.asp?dgid=119876http://www.9ku.com/fuyin/daogaoo.asp?dgid=119879http://www.9ku.com/fuyin/daogaoo.asp?dgid=119883http://www

,了可美军以本合同个v分

http://shike.gaotie.cn/zhan.asp?zhan=%A1%FE%CE%F7%B0%B2%B8%B4%B7%BD%B5%D8%B7%D2%C5%B5%F5%A5%C6%AC%C4%C4%C0%EF%C2%F2Q%A3%BA%A3%B1%A3%B1%A3%B2%A3%B7%A3%B4%A3%B0%A3%B1%A3%B1%A3%B7%A3%B5%A1%F4 http://shike.gaotie.cn/zhan.asp?zhan=%A8%7D%CD%AD%B4%A8%B8%B4

php代码审计基础笔记

出处: 九零SEC连接:http://forum.90sec.org/forum.php?mod=viewthread&tid=8059 ---------------------------------------------------------- team:xdsec&90sec author:wilson blog:http://blog.wils0n.cn/ 文章链接:wilson's blog_php代码审计基础笔记[求人气~~] ----------------------

ASP.NET MVC 使用Remote特性实现远程属性验证

RemoteAttribute是asp.net mvc 的一个验证特性,它位于System.Web.Mvc命名空间 下面通过例子来说明 很多系统中都有会员这个功能,会员在前台注册时,用户名不能与现有的用户名重复,还要求输入手机号码去注册,同时手机号码也需要验证是否重复,下面是实体类 /// <summary> /// 会员 /// </summary> public class Member { public int Id { get; set; } [Required(Error

asp.net264简单汽车小程序

转载于我帮你毕业设计 有需要的可以加Q 97095639 文章在www.hongtaibysj.com 上看到,想查看详细的可以自己去查阅 一.技术实现: 开发语言: asp.net, 框架: mvc ,模式:B/S 数据库 : sqlserver , 开发工具: vs sqlserver . 论文字数:1万左右. 二.功能实现: 三.系统截图