711人才网站管理系统V2.1安全解析[网络技术]
本文“711人才网站管理系统V2.1安全解析[网络技术]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
文/图 cn_判官(Summer)
===================================
9月金秋,天色真是舒服,一边享用美好的光阴,一边开着电脑在网上闲逛,无意间,发现一套"711人才网站管理系统V2.1"Web程序,看介绍上面说,有"人才求职"、"企业招聘"、"拜托招聘"、"高级人才"、"兼职频道"、"人才资讯"等栏目,功效固然算不上很强盛,但是一些有效的功效都有了,刚好近来我正在探求这样的程序帮朋友建站,趁便就检测一下它的安全性能吧.
在本地架设好IIS,把这套程序拖入虚拟目录,看上去外观还算大方,接下来当然就是读代码找漏洞了.
viewnews.asp注入漏洞
当我读到viewnews.asp,看到下面的代码时,发现程序只判断了request得到的变量能否为空,而没有举行其他的判断和过滤,很明显,一处注入漏洞产生了.
<%
if request("id")="" then
//获得变量id,并且判断能否为空
response.write"<SCRIPT language=JavaScript>alert('对不起,不法操作!');"
response.write"javascript:window.close();</SCRIPT>"
response.end
end if
set rs=server.createobject("adodb.recordset")
sql1="update companynews set click=click+1 where id")
rs.open sql1,conn,1,1
sql2="select * from companynews where id")
//放入数据库里履行
rs.open sql2,conn,1,1
%>
company.asp注入漏洞
和viewnews.asp的代码大同小异,只不过量了个对单引号的过滤功效,但是这对我们来说是无关紧急的,一样,注入漏洞产生了(我就烦闷了,管理员既然知道过滤单引号,怎么不过滤其他的危险字符呢?).
<%
uid=replace(trim(Request("uid")),"'","")
//获得变量uid的值,并过滤掉了字符"’"
id=request("id")
if request("uid")="" then
//假如提交的变量为空,就履行下面的语句
response.write"<SCRIPT language=JavaScript>alert('对不起,不法操作!');"
response.write"javascript:window.close();</SCRIPT>"
response.end
end if
set rs=server.createobject("adodb.recordset")
sql="select * from company where "
rs.open sql,conn,1,1
//放入数据库中履行
%>
person.asp、job.asp注入漏洞
person.asp、job.asp的代码我就不写出来了,和上面的漏洞文件是一本性质的,都是对提交的变量名未做严峻的查抄和过滤,招致产生注入漏洞.大家可以自己测试,原理可以参照从前的文章.
旁注入侵
下面要做的当然就是就是测试一下后台的功效.当我按照默许途径进入后台之后,发现后台的功效有很大一部份是不完好的,需求交费才可以拿到功效齐备的后台代码,如图1所示.
图1
真是忧郁死我了,我但是贫民啊!没有办法,去官方网站看看能不能有点但愿,在官方站点测试了几处方才发现的存在注入漏洞的文件,发现官方网站利用了通用防注入系统,并且数据库的默许地址也改正过了,毕竟是官方网站,又懒得去大规模扫描,那就是试试旁注喽.翻开domain,检测了一下,发现这个虚拟主机上有27个站点,如图2所示.
图2
这就有得玩了.当我一个一个看到第10个站时,发现一个网站利用的是动易2006,习惯性的在地址背面加上/database/PowerEasy2006.mdb,没想到忽然弹出了可爱的下载提醒框,在数据库中得到密码之后直冲后台,办法就简单地说一下,具体操纵大家可以参照从前的杂志.在后台改正下载栏目的的上传地址为xx.asp,然后在前台发表一篇关于下载的文章,把ASP木马假装成RAR举行上传,成功后查看自己发表的文章便可以得到完好的途径,比方/xx.asp/123456.rar,大概是我的品德对比高,服务器是Windows 2003的,所以123456.rar是按照.asp的格局来解析的,这样就拿到了服务器上的第一个Shell,本认为这样便可以旁注进目标网站的目录,下载完好的源代码了呢,没想到管理员设置的目录权限对比变态,不能举行目录跳转,WebShell也没有什么好操纵提权的地方,就在我预备放弃的时刻,想到了另一个办法Session拐骗.
Session拐骗进后台得到完好源代码
想要拿到目标网站的源代码,在目录权限设置对比严峻的情形下,Shell就必须在目标网站的根目录下才有权限拜候得到,又因为旁注的网站和目标网站必定是在一个服务器上,所以我们可以操纵前面旁注得到的Shell结合起来举行Session拐骗.前面在我测试的时刻,我就发现这套程序后台有一个数据库备份的地方可以操纵,目前的主要问题就是若何拿到目标网站的后台权限.翻开admin/chkadmin.asp,其关键代码以下.
……
rs.Open "select * from admin where admin='"&admin&"' and password='"&password&"' " ,conn,1,1
//假如输入的账号和密码精确,就履行下面的语句
if not(rs.bof and rs.eof) then
if password=rs("password") then
session("82940admin23")=trim(rs("admin"))
//持续履行这里的Session的语句
session("flag")=int(rs("flag"))
rs.Close
……
知道了Session是什么就好办了,操纵前面旁注得到的Shell,成立a.asp,写入以下内容.
<%
session("82940admin23")="admin"
response.Redirect "http://www.xxx.com/admin/index.asp"
%>
当我们拜候这个a.asp的时刻,便可以直接跳到目标网站的后台,很简单就实现了,简单吧?下面要做的当然就是在目标网站的目录下备份Shell了,发表一篇文章,上传假装的图片,然后直接备份便可以了,和大家熟习的动网备份都是大同小异的,我就不细说了,如图3所示.备份成功今后就顺利拿到了Shell,然后就是把完好的代码拿回来了,如图4所示.
图3
图4
总结
关于注入的防备,主要就是要对提交的变量举行细心过滤和查抄,其实选用一套完善的防注入系统是一个不错的挑选.把后台备份数据库的页面admin/database_menager.asp改名,需求的时刻再改回来,毕竟又不是每天都在做备份
以上是“711人才网站管理系统V2.1安全解析[网络技术]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |