用户
搜索
  • TA的每日心情
    无聊
    昨天 00:26
  • 签到天数: 123 天

    连续签到: 4 天

    [LV.7]常住居民III

    i春秋作家

    Rank: 7Rank: 7Rank: 7

    15

    主题

    108

    帖子

    136

    魔法币
    收听
    0
    粉丝
    3
    注册时间
    2016-6-3

    i春秋签约作者

    发表于 2017-9-6 21:49:29 1524249
    今天给大家带来的是asp程序的代码审计aspaspx代码审计来说,有很多相同的地方。
    正好今天要交任务,最近的目标站的子域名使用了这个cms,但是版本不一定是这个,好累。
    程序名称:自由策划
    下载地址:http://down.chinaz.com/soft/32891.htm
    目录截图:
    asp代码审计147.png
    先随便打开一个
    asp代码审计157.png
    比如so/index.asp
    asp代码审计174.png
    写的很简洁。。。
    包含了两个配置文件,有什么用暂时先不说,先接着下看,通过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吧。
    asp代码审计676.png
    双目如炬的我们一眼就看到了这个变量是从哪里来的?(对,从数据库中取的),将数据库打开,进入config表,我们便可以看到了。
    asp代码审计741.png
    然后呢?我们的so/index.asp页面是将数据传递到模板目录下的so.asp中去显示和查询的,所以,接着看呗。
    asp代码审计801.png
    我们着重看一下,刚才那个页面没有过滤的key变量。
    asp代码审计829.png
    由此处可以看到key变量就是页面中的变量,这里的<%=key%>语法等同于request(key),意即为,无论get来的,post来的亦或是cookie传过来的,都接收。接着往下看:
    asp代码审计926.png
    画红线的地方就是这个页面唯一对key变量的检查,仅仅只是检查是否为空?我们直接在url里面提交万能的单引号试试吧。
    asp代码审计1067.png
    Oho,报错啦,请不要在参数中包含非法字符尝试注入!
    我擦泪,看看为什么,是谁在这装逼,拦我注入!一通找,发现是这个文件。
    asp代码审计1131.png
    看看是怎么写的呢?我们有没有绕过的可能性呢?
    asp代码审计1156.png
    算你厉害,我我我我打不过你不成嘛。。(小编技术有限,暂时没点满正则表达式的天赋点)
    接下来就只剩admin目录和user目录下的文件没看了。
    先看user目录下的吧,也很简单。
    asp代码审计1248.png
    先看login.asp,文件里面有写:
    asp代码审计1270.png
    login变量=ok时,便接收一个post来的参数username和任意取值的password,其中password在取值后,先经过md5()函数进行处理。
    接着可以看到,只检查usernamepassword的值是否为空,然后(这是重点!!!)通过一条sql语句进行select查询。大家都知道,有一种所谓的漏洞叫万能密码,其实在我眼里,万能密码就是账户登陆时,开发人员使用一条select语句同时将账号和密码带入数据库查询,碰巧usernamepassword并没有经过特殊字符处理,所以,我们便可以通过提交 or 1=1进行绕过,这就是万能密码漏洞。
    还是举个栗子,第一张图是常规登陆,第二张图就是我闭合sql语句的截图:
    asp代码审计1596.png
    asp代码审计1598.png
    好吧,这里的username参数也检查单引号,接着看user/index.asp,作为该cms的会员中心的主文件,我们可以试试看,有没有cookie欺骗或是未授权访问。
    asp代码审计1685.png
    asp代码审计1687.png
    从上面两个图,可以看到,cookie欺骗?未授权访问?不存在的,好吗。但是,万事都应该有一个but,会员中心存在多个越权,hhhhh.笑死在电脑前.
    我们随便挑一个来看看吧。就看修改密码处:
    asp代码审计1787.png
    可以看到,修改密码的操作是访问user/index.asp?action=password,接着编辑器直接ctrl+f搜索password吧,相关的操作在文件的294行开始。
    asp代码审计1877.png
    300行,这里告诉我们,修改密码这个操作先验证用户是否登陆,接着发送post请求到user/index.asp?action=password&xiugai=pass,接着搜索xiugai发现在文件的第621行开始。
    asp代码审计1990.png
    从下面的源码图,我们可以看的很明白,这是一处越权漏洞。
    asp代码审计2020.png
    如果你不懂什么叫越权漏洞,我们不妨来回想一下这个cms的修改密码功能,做了哪些操作。
    第一步:验证用户是否登陆;
    第二步:验证post包中的id是否为int型;
    第三步:验证两次输入的新密码是否为空且是否相等;
    第四步,根据我们提供的id值去数据库进行update更新。
    注:这里的idrequest~~所以,完全是我们可控的变量。所以这就导致了越权漏洞,这一处是逻辑漏洞这个分类下的任意密码修改。
    写在最后,下次给大家带来amdin目录下的代码审计。不知道为什么我写的文章都是2k+~3k+的浏览量,但是回复只有一点点。如果看官你有好的建议,可以提出来让我学习下啊~~

    评分

    参与人数 1魔法币 +2 收起 理由
    crZh + 2 感谢你的分享,i春秋论坛有你更精彩!.

    查看全部评分

    发表于 2017-9-7 14:29:04
    写的不错 …上传控件看看分析下呗…注入拦截…一个逻辑漏洞貌似没有什么用吧?能xss打管理么?
    使用道具 举报 回复
    发表于 2017-9-7 15:58:31
    本帖最后由 非主流 于 2017-9-7 22:25 编辑
    职业养狐人 发表于 2017-9-7 14:29
    写的不错 …上传控件看看分析下呗…注入拦截…一个逻辑漏洞貌似没有什么用吧?能xss打管理么? ...

    看过了,白名单验证的。就没写出来,这是一处水平越权。xss,忘记看了。我现在去看完再回复你                                                                                                 --------------------四个小时后---------------------------------
    我刚才看了下,xss并不能打,有filter
    使用道具 举报 回复
    然而我觉得 asp aspx 比 php 难呀  
    使用道具 举报 回复
    发表于 2017-9-9 01:10:18
    非主流 发表于 2017-9-7 15:58
    看过了,白名单验证的。就没写出来,这是一处水平越权。xss,忘记看了。我现在去看完再回复你             ...

    现在的asp的防注入太猛了…
    使用道具 举报 回复
    发表于 2017-9-9 21:39:10
    既然老大哥都这么说了!作为来学习的我!有必要找个板凳坐下学习学习
    用代码将梦想照进现实!
    使用道具 举报 回复
    发表于 2017-9-9 23:04:10
    凉风有信 发表于 2017-9-9 00:57
    然而我觉得 asp aspx 比 php 难呀

    并不是的。。。asp的函数是出了名的少,这个你没有办法否认,而且asp作为一个古董级的脚本语言,掌握起来很方便。至于aspx,目前以我的经验和见识来说,我没有见到过代码执行、命令执行等漏洞,我的技术能挖到的就是xss、sql注入以及文件上传和逻辑漏洞。毕竟你想,既然你都有源码了,实在看不下代码的话,你还不能黑盒吗?黑盒出漏洞了再带回到代码里面去看,不就很好看了嘛?
    使用道具 举报 回复
    发表于 2017-9-9 23:05:14
    职业养狐人 发表于 2017-9-9 01:10
    现在的asp的防注入太猛了…

    有吗??可能我没遇到吧,其实遇到防注入的时候呢,你可以考虑看看他的传参方式,试试cookie传参呢?
    使用道具 举报 回复
    发表于 2017-9-9 23:07:03
    AShe 发表于 2017-9-9 21:39
    既然老大哥都这么说了!作为来学习的我!有必要找个板凳坐下学习学习

    谢谢啦,阅读这篇文章有什么不懂的,可以问我。
    使用道具 举报 回复
    表示很多图很模糊,看不太清楚
    使用道具 举报 回复
    发表于 2017-9-11 11:22:49
    写的不错,可以继续分析下去的
    不服你TMD来打我啊!
    使用道具 举报 回复
    非主流 发表于 2017-9-9 23:05
    有吗??可能我没遇到吧,其实遇到防注入的时候呢,你可以考虑看看他的传参方式,试试cookie传参呢? ...

    来吧 加个好友 讨论 base解密
    使用道具 举报 回复
    发表于 2017-9-11 16:45:22
    taro 发表于 2017-9-11 11:22
    写的不错,可以继续分析下去的

    其实,一开始在写aspx的代码审计的时候,就想把一些常见的漏洞,通过代码审计的方法展示出来。但是像这篇asp代码审计,在当时看代码的时候,就很心浮气躁,而且要交作业,所以就把自由策划cms这个cms分成两部分来写了,一篇是前台,一篇是后台。后台可能还没发出来。
    使用道具 举报 回复
    发表于 2017-9-19 03:46:18
    非主流 发表于 2017-9-11 16:45
    其实,一开始在写aspx的代码审计的时候,就想把一些常见的漏洞,通过代码审计的方法展示出来。但是像这篇 ...

    csrf都没有吗 有这么安全的程序吗 不信没xss
    使用道具 举报 回复
    发表于 2017-9-19 09:35:09
    adshy 发表于 2017-9-19 03:46
    csrf都没有吗 有这么安全的程序吗 不信没xss

    加油,来看看。然后我们一起再分析一波
    使用道具 举报 回复
    12下一页
    发新帖
    您需要登录后才可以回帖 登录 | 立即注册